X-Git-Url: http://www.git.cypherpunks.ru/?p=goircd.git;a=blobdiff_plain;f=daemon.go;h=1af9712616a383ad1a3b869bf3143e85756dd037;hp=b795a0c3410e87d5a9dbb61d0753ce5e9d59fa57;hb=7770e09e68f8dd0991ecd5a32383a89ac3e50857;hpb=f93640a33547bad6537d2f490e1123c76720f7ff diff --git a/daemon.go b/daemon.go index b795a0c..1af9712 100644 --- a/daemon.go +++ b/daemon.go @@ -486,6 +486,22 @@ func Processor(events chan ClientEvent, finished chan struct{}) { cols := strings.Split(cols[1], " ") nicknames := strings.Split(cols[len(cols)-1], ",") SendWhois(client, nicknames) + case "ISON": + if len(cols) == 1 || len(cols[1]) < 1 { + client.ReplyNotEnoughParameters("ISON") + continue + } + nicksKnown := make(map[string]struct{}) + for c := range clients { + nicksKnown[*c.nickname] = struct{}{} + } + var nicksExists []string + for _, nickname := range strings.Split(cols[1], " ") { + if _, exists := nicksKnown[nickname]; exists { + nicksExists = append(nicksExists, nickname) + } + } + client.ReplyNicknamed("303", strings.Join(nicksExists, " ")) case "VERSION": var debug string if *verbose {