X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=room.go;h=f92d0e6b08811f89758111420da09ba80204416c;hb=6d2c47a7af3afc09b3b8899d9b770b58e2792d31;hp=f58d70845d3a0277b43fc5181ffbfb43b408e422;hpb=b2f90fb412218973608b24a32eebadc60de9878a;p=goircd.git diff --git a/room.go b/room.go index f58d708..f92d0e6 100644 --- a/room.go +++ b/room.go @@ -25,12 +25,14 @@ import ( "strings" ) +var ( + RE_ROOM = regexp.MustCompile("^#[^\x00\x07\x0a\x0d ,:/]{1,200}$") +) + // Sanitize room's name. It can consist of 1 to 50 ASCII symbols // with some exclusions. All room names will have "#" prefix. -func RoomNameSanitize(name string) (n string, valid bool) { - n = strings.TrimLeft(strings.ToLower(name), "&#+!") - valid, _ = regexp.MatchString("^[^\x00\x07\x0a\x0d ,:/]{1,50}$", n) - return "#" + n, valid +func RoomNameValid(name string) bool { + return RE_ROOM.MatchString(name) } type Room struct { @@ -121,7 +123,7 @@ func (room *Room) Processor(events chan ClientEvent) { for m := range room.members { client.ReplyNicknamed("352", room.name, m.username, m.conn.RemoteAddr().String(), room.hostname, m.nickname, "H", "0 "+m.realname) } - client.ReplyNicknamed("315", room.name, "End of WHO list") + client.ReplyNicknamed("315", room.name, "End of /WHO list") case EVENT_MODE: if event.text == "" { mode := "+"