From 39fb4bfb5383a972f581ae78b99a8236d2a3c18d Mon Sep 17 00:00:00 2001 From: Jeremy Latt Date: Fri, 21 Feb 2014 17:19:02 -0800 Subject: [PATCH] restrict new channels to channel regex --- irc/server.go | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/irc/server.go b/irc/server.go index 6a8bdda5..2596426e 100644 --- a/irc/server.go +++ b/irc/server.go @@ -165,17 +165,6 @@ func (s *Server) listen(config ListenerConfig) { } } -func (s *Server) GetOrMakeChannel(name string) *Channel { - channel, ok := s.channels[name] - - if !ok { - channel = NewChannel(s, name) - s.channels[name] = channel - } - - return channel -} - func (s *Server) GenerateGuestNick() string { bytes := make([]byte, 8) for { @@ -393,7 +382,16 @@ func (m *JoinCommand) HandleServer(s *Server) { } for name, key := range m.channels { - channel := s.GetOrMakeChannel(name) + if !IsChannel(name) { + client.ErrNoSuchChannel(name) + continue + } + + channel := s.channels[name] + if channel == nil { + channel = NewChannel(s, name) + s.channels[name] = channel + } channel.Join(client, key) } }