mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-13 07:29:30 +01:00
client: Show real IP and whether the target's using TLS in WHOIS
This commit is contained in:
parent
1c0c4841a1
commit
23a26f83fe
@ -150,6 +150,15 @@ func (client *Client) IP() net.IP {
|
|||||||
return net.ParseIP(IPString(client.socket.conn.RemoteAddr()))
|
return net.ParseIP(IPString(client.socket.conn.RemoteAddr()))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// IPString returns the IP address of this client as a string.
|
||||||
|
func (client *Client) IPString() string {
|
||||||
|
ip := client.IP().String()
|
||||||
|
if 0 < len(ip) && ip[0] == ':' {
|
||||||
|
ip = "0" + ip
|
||||||
|
}
|
||||||
|
return ip
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// command goroutine
|
// command goroutine
|
||||||
//
|
//
|
||||||
|
@ -72,6 +72,7 @@ const (
|
|||||||
RPL_NOTOPIC = "331"
|
RPL_NOTOPIC = "331"
|
||||||
RPL_TOPIC = "332"
|
RPL_TOPIC = "332"
|
||||||
RPL_TOPICTIME = "333"
|
RPL_TOPICTIME = "333"
|
||||||
|
RPL_WHOISACTUALLY = "338"
|
||||||
RPL_INVITING = "341"
|
RPL_INVITING = "341"
|
||||||
RPL_SUMMONING = "342"
|
RPL_SUMMONING = "342"
|
||||||
RPL_INVITELIST = "346"
|
RPL_INVITELIST = "346"
|
||||||
@ -158,6 +159,7 @@ const (
|
|||||||
ERR_USERSDONTMATCH = "502"
|
ERR_USERSDONTMATCH = "502"
|
||||||
ERR_HELPNOTFOUND = "524"
|
ERR_HELPNOTFOUND = "524"
|
||||||
ERR_CANNOTSENDRP = "573"
|
ERR_CANNOTSENDRP = "573"
|
||||||
|
RPL_WHOISSECURE = "671"
|
||||||
RPL_HELPSTART = "704"
|
RPL_HELPSTART = "704"
|
||||||
RPL_HELPTXT = "705"
|
RPL_HELPTXT = "705"
|
||||||
RPL_ENDOFHELP = "706"
|
RPL_ENDOFHELP = "706"
|
||||||
|
@ -1273,6 +1273,12 @@ func (client *Client) getWhoisOf(target *Client) {
|
|||||||
if target.class != nil {
|
if target.class != nil {
|
||||||
client.Send(nil, client.server.name, RPL_WHOISOPERATOR, client.nick, target.nick, target.whoisLine)
|
client.Send(nil, client.server.name, RPL_WHOISOPERATOR, client.nick, target.nick, target.whoisLine)
|
||||||
}
|
}
|
||||||
|
if client.flags[Operator] || client == target {
|
||||||
|
client.Send(nil, client.server.name, RPL_WHOISACTUALLY, client.nick, target.nick, fmt.Sprintf("%s@%s", target.username, LookupHostname(target.IPString())), target.IPString(), "Actual user@host, Actual IP")
|
||||||
|
}
|
||||||
|
if target.flags[TLS] {
|
||||||
|
client.Send(nil, client.server.name, RPL_WHOISSECURE, client.nick, target.nick, "is using a secure connection")
|
||||||
|
}
|
||||||
if target.certfp != "" && (client.flags[Operator] || client == target) {
|
if target.certfp != "" && (client.flags[Operator] || client == target) {
|
||||||
client.Send(nil, client.server.name, RPL_WHOISCERTFP, client.nick, target.nick, fmt.Sprintf("has client certificate fingerprint %s", target.certfp))
|
client.Send(nil, client.server.name, RPL_WHOISCERTFP, client.nick, target.nick, fmt.Sprintf("has client certificate fingerprint %s", target.certfp))
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user