mirror of
https://github.com/ergochat/ergo.git
synced 2024-11-29 07:29:31 +01:00
fix #1730
`WHO #channel o` is supposed to return only server operators. This is RFC1459 cruft; just return an empty list in this case.
This commit is contained in:
parent
bd4f80586f
commit
bdff4e633f
@ -3341,12 +3341,18 @@ func whoHandler(server *Server, client *Client, msg ircmsg.Message, rb *Response
|
|||||||
fields = fields.Add(field)
|
fields = fields.Add(field)
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO(dan): is this used and would I put this param in the Modern doc?
|
// successfully parsed query, ensure we send the success response:
|
||||||
// if not, can we remove it?
|
defer func() {
|
||||||
//var operatorOnly bool
|
rb.Add(nil, server.name, RPL_ENDOFWHO, client.Nick(), origMask, client.t("End of WHO list"))
|
||||||
//if len(msg.Params) > 1 && msg.Params[1] == "o" {
|
}()
|
||||||
// operatorOnly = true
|
|
||||||
//}
|
// XXX #1730: https://datatracker.ietf.org/doc/html/rfc1459#section-4.5.1
|
||||||
|
// 'If the "o" parameter is passed only operators are returned according to
|
||||||
|
// the name mask supplied.'
|
||||||
|
// see discussion on #1730, we just return no results in this case.
|
||||||
|
if len(msg.Params) > 1 && msg.Params[1] == "o" {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
oper := client.Oper()
|
oper := client.Oper()
|
||||||
hasPrivs := oper.HasRoleCapab("sajoin")
|
hasPrivs := oper.HasRoleCapab("sajoin")
|
||||||
@ -3400,7 +3406,6 @@ func whoHandler(server *Server, client *Client, msg ircmsg.Message, rb *Response
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
rb.Add(nil, server.name, RPL_ENDOFWHO, client.nick, origMask, client.t("End of WHO list"))
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user