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 (
// 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{
"PRIVMSG": true,
"NOTICE": true,
RPL_WHOISCHANNELS: true,
}
)

View File

@ -1093,8 +1093,7 @@ func (client *Client) getWhoisOf(target *Client) {
whoischannels := client.WhoisChannelsNames(target)
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 {
client.Send(nil, client.server.name, RPL_WHOISOPERATOR, client.nick, target.nick, target.whoisLine)