Bug 227795 - background /who information ends up in log if /who is used without arguments
Summary: background /who information ends up in log if /who is used without arguments
Status: RESOLVED FIXED
Alias: None
Product: konversation
Classification: Applications
Component: general (show other bugs)
Version: 1.2.3
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Konversation Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-02-20 11:46 UTC by Martin Herkt
Modified: 2010-02-20 13:53 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Martin Herkt 2010-02-20 11:46:23 UTC
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.
Comment 1 Eike Hein 2010-02-20 13:53:35 UTC
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);