]> Cypherpunks.ru repositories - goircd.git/blobdiff - daemon.go
Do not prepend unnecessary ':' to person-to-person PRIVMSGs
[goircd.git] / daemon.go
index 1f979ce6ea4f7c4dd295c5f4924b8ab477bdd845..30d458bd83a10b3a19c716a3081e8e88edb250b9 100644 (file)
--- a/daemon.go
+++ b/daemon.go
@@ -21,6 +21,7 @@ import (
        "fmt"
        "io/ioutil"
        "log"
+       "net"
        "regexp"
        "sort"
        "strings"
@@ -98,7 +99,13 @@ func (daemon *Daemon) SendWhois(client *Client, nicknames []string) {
                                continue
                        }
                        found = true
-                       client.ReplyNicknamed("311", c.nickname, c.username, c.conn.RemoteAddr().String(), "*", c.realname)
+                       h := c.conn.RemoteAddr().String()
+                       h, _, err := net.SplitHostPort(h)
+                       if err != nil {
+                               log.Printf("Can't parse RemoteAddr %q: %v", h, err)
+                               h = "Unknown"
+                       }
+                       client.ReplyNicknamed("311", c.nickname, c.username, h, "*", c.realname)
                        client.ReplyNicknamed("312", c.nickname, daemon.hostname, daemon.hostname)
                        subscriptions := []string{}
                        for _, room := range daemon.rooms {
@@ -370,7 +377,7 @@ func (daemon *Daemon) Processor(events <-chan ClientEvent) {
                                target := strings.ToLower(cols[0])
                                for c := range daemon.clients {
                                        if c.nickname == target {
-                                               msg = fmt.Sprintf(":%s %s %s :%s", client, command, c.nickname, cols[1])
+                                               msg = fmt.Sprintf(":%s %s %s %s", client, command, c.nickname, cols[1])
                                                c.Msg(msg)
                                                break
                                        }