diff --git a/irc/getters.go b/irc/getters.go index fafd76f7..1672df27 100644 --- a/irc/getters.go +++ b/irc/getters.go @@ -76,7 +76,7 @@ type SessionData struct { sessionID int64 } -func (client *Client) AllSessionData(currentSession *Session) (data []SessionData, currentIndex int) { +func (client *Client) AllSessionData(currentSession *Session, hasPrivs bool) (data []SessionData, currentIndex int) { currentIndex = -1 client.stateMutex.RLock() defer client.stateMutex.RUnlock() @@ -93,13 +93,15 @@ func (client *Client) AllSessionData(currentSession *Session) (data []SessionDat certfp: session.certfp, deviceID: session.deviceID, sessionID: session.sessionID, - connInfo: utils.DescribeConn(session.socket.conn.UnderlyingConn().Conn), } if session.proxiedIP != nil { data[i].ip = session.proxiedIP } else { data[i].ip = session.realIP } + if hasPrivs { + data[i].connInfo = utils.DescribeConn(session.socket.conn.UnderlyingConn().Conn) + } } return } diff --git a/irc/nickserv.go b/irc/nickserv.go index e0f78065..d1e48116 100644 --- a/irc/nickserv.go +++ b/irc/nickserv.go @@ -1116,7 +1116,7 @@ func nsClientsListHandler(server *Server, client *Client, params []string, rb *R } } - sessionData, currentIndex := target.AllSessionData(rb.session) + sessionData, currentIndex := target.AllSessionData(rb.session, hasPrivs) nsNotice(rb, fmt.Sprintf(client.t("Nickname %[1]s has %[2]d attached clients(s)"), target.Nick(), len(sessionData))) for i, session := range sessionData { if currentIndex == i {