X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=daemon.go;h=0896add8c5b00539b6a4d454c5d1664a8dde773e;hb=b640107b1fd5f1013d59e26ff0102aeb0b3f5f99;hp=80a3229b4f7ec9735617d5b9835c5a76f7c4c80f;hpb=e657ffd2ab2cd5fae8c1d19e39b2268fa758153e;p=goircd.git diff --git a/daemon.go b/daemon.go index 80a3229..0896add 100644 --- a/daemon.go +++ b/daemon.go @@ -67,7 +67,7 @@ func SendMotd(client *Client) { return } client.ReplyNicknamed("375", "- "+*hostname+" Message of the day -") - for _, s := range strings.Split(strings.Trim(string(motdText), "\n"), "\n") { + for _, s := range strings.Split(strings.TrimSuffix(string(motdText), "\n"), "\n") { client.ReplyNicknamed("372", "- "+s) } client.ReplyNicknamed("376", "End of /MOTD command") @@ -258,7 +258,7 @@ func HandlerJoin(client *Client, cmd string) { } for roomExisting, roomSink = range roomSinks { if room == *roomExisting.name { - if (roomExisting.key != nil) && (*roomExisting.key != key) { + if (*roomExisting.key != "") && (*roomExisting.key != key) { goto Denied } roomSink <- ClientEvent{client, EventNew, ""} @@ -308,6 +308,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}