Version: 1.2.3 (using Devel) OS: Linux Installed from: Compiled sources How to reproduce: Use the /who command (without arguments) Result: The /who information that is gathered by Konversation as a background process now ends up in the log until the network connection is closed.
commit 72fb97be5988451527479d09441f1240a27da8c1 Author: Eike Hein <hein@kde.org> Date: Sat Feb 20 13:38:07 2010 +0100 Fix auto-who responses becoming visible after parameterless '/who.' Fixes a bug causing the server responses to background data gather- ing via WHO (to keep the app's idea of its own hostmask up to date, as well as optionally channel user info) to be displayed in tabs as if the user had made the requests manually after sending a '/who' command without parameters. For background, 76f47cde1 introduced a change adding a parameterless '/who' as a 'WHO *' to InputFilter's WHO request tracking list, claiming that servers interpret a parameterless WHO as a 'WHO *', which doesn't hold up in reality. While RFC 1459 and RFC 2812 claim the parameter to be optional, the servers I have tested with don't allow it in practice, presumably for load reasons: ircd 2.11.1p1 and ircd-seven 1.0.1 reply with a 461 with "Not enough parameters" and bahamut 1.8(0.3) with a set of 334's providing a human-readable usage description of the WHO command. Thus the behavior of 'WHO' and 'WHO *' differ in reality, and this commit changes things so that a parameterless '/who' no longer results in a 'WHO *' being put on In- putFilter'S WHO request tracking list. BUG:227795 diff --git a/ChangeLog b/ChangeLog index 109b610..ca47a0b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,11 @@ Changes since 1.2.3: * The "Clear All Windows" action will now also resets the notification state of all tabs (i.e. removes active new message or highlight no- tifications from the tab bar). +* Fixed a bug causing the server responses to background data gather- + ing via WHO (to keep the app's idea of its own hostmask up to date, + as well as optionally channel user info) to be displayed in tabs as + if the user had made the requests manually after sending a '/who' + command without parameters. Changes from 1.2.2 to 1.2.3: diff --git a/src/irc/server.cpp b/src/irc/server.cpp index 8664fc1..0c74f85 100644 --- a/src/irc/server.cpp +++ b/src/irc/server.cpp @@ -1162,13 +1162,8 @@ int Server::_send_internal(QString outputLine) } // remember the first arg of /WHO to identify responses - if (outboundCommand == 0) //"WHO" - { - if (outputLineSplit.count() >= 2) - m_inputFilter.addWhoRequest(outputLineSplit[1]); - else // no argument (servers recognize it as "*") - m_inputFilter.addWhoRequest("*"); - } + if (outboundCommand == 0 && outputLineSplit.count() >= 2) //"WHO" + m_inputFilter.addWhoRequest(outputLineSplit[1]); else if (outboundCommand == 1) //"QUIT" updateConnectionState(Konversation::SSDeliberatelyDisconnected);