X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=daemon.go;h=b795a0c3410e87d5a9dbb61d0753ce5e9d59fa57;hb=f93640a33547bad6537d2f490e1123c76720f7ff;hp=3afda4fb0a3d8b69897e8e160cf09e4c77af6ab4;hpb=4f1a1012b252f0090b150672bb55268621368498;p=goircd.git diff --git a/daemon.go b/daemon.go index 3afda4f..b795a0c 100644 --- a/daemon.go +++ b/daemon.go @@ -162,6 +162,7 @@ func ClientRegister(client *Client, cmd string, cols []string) { nickname := cols[1] // Compatibility with some clients prepending colons to nickname nickname = strings.TrimPrefix(nickname, ":") + nickname = strings.ToLower(nickname) for existingClient := range clients { if *existingClient.nickname == nickname { client.ReplyParts("433", "*", nickname, "Nickname is already in use") @@ -308,6 +309,14 @@ func Processor(events chan ClientEvent, finished chan struct{}) { } } } + for rn, r := range rooms { + if *statedir == "" && len(r.members) == 0 { + log.Println(rn, "emptied room") + delete(rooms, rn) + close(roomSinks[r]) + delete(roomSinks, r) + } + } case EventTerm: for _, sink := range roomSinks { sink <- ClientEvent{eventType: EventTerm}