3
0
mirror of https://github.com/ergochat/ergo.git synced 2024-11-10 22:19:31 +01:00

WHOIS: Use inbuilt functionality to force trailing, as suggested by @vegax87

This commit is contained in:
Daniel Oaks 2017-01-23 09:03:49 +10:00
parent ccae0cf7cd
commit c8b5fb65e0
2 changed files with 6 additions and 3 deletions

View File

@ -535,10 +535,14 @@ func (client *Client) SendFromClient(msgid string, from *Client, tags *map[strin
} }
var ( var (
// these are all the output commands that MUST have their last param be a trailing // these are all the output commands that MUST have their last param be a trailing.
// this is needed because silly clients like to treat trailing as separate from the
// other params in messages.
commandsThatMustUseTrailing = map[string]bool{ commandsThatMustUseTrailing = map[string]bool{
"PRIVMSG": true, "PRIVMSG": true,
"NOTICE": true, "NOTICE": true,
RPL_WHOISCHANNELS: true,
} }
) )

View File

@ -1093,8 +1093,7 @@ func (client *Client) getWhoisOf(target *Client) {
whoischannels := client.WhoisChannelsNames(target) whoischannels := client.WhoisChannelsNames(target)
if whoischannels != nil { if whoischannels != nil {
// the dodgy +" " hack here is to work around some silly clients that don't parse trailing params correctly. This forces last param to be a trailing always. client.Send(nil, client.server.name, RPL_WHOISCHANNELS, client.nick, target.nick, strings.Join(whoischannels, " "))
client.Send(nil, client.server.name, RPL_WHOISCHANNELS, client.nick, target.nick, strings.Join(whoischannels, " ")+" ")
} }
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)