X-Git-Url: http://www.git.cypherpunks.ru/?p=goircd.git;a=blobdiff_plain;f=client.go;h=fbaf8a326e8d6e3137f50e9ed2ee202013846497;hp=a43cc1efc1eb781a1de8b7f07667857402550480;hb=66eaa48372228e098b464e8eac64d15a8582e9ef;hpb=158ab243b29e99bfbe7a78ee48662fb132b47704 diff --git a/client.go b/client.go index a43cc1e..fbaf8a3 100644 --- a/client.go +++ b/client.go @@ -51,8 +51,19 @@ type Client struct { sync.Mutex } +func (c Client) Host() string { + addr := c.conn.RemoteAddr().String() + if host, _, err := net.SplitHostPort(addr); err == nil { + addr = host + } + if domains, err := net.LookupAddr(addr); err == nil { + addr = strings.TrimSuffix(domains[0], ".") + } + return addr +} + func (c Client) String() string { - return *c.nickname + "!" + *c.username + "@" + c.conn.RemoteAddr().String() + return *c.nickname + "!" + *c.username + "@" + c.Host() } func NewClient(conn net.Conn) *Client {