Sort IRCv3 capabilities before negotiation
authorShane Synan <digitalcircuit36939@gmail.com>
Wed, 29 Jun 2016 21:26:56 +0000 (17:26 -0400)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 7 Sep 2016 19:29:32 +0000 (21:29 +0200)
Sort capabilities before requesting for consistency among networks.
This may avoid unexpected cases when some networks offer capabilities
in a different order than others.  It also looks nicer in logs.

src/core/coresessioneventprocessor.cpp

index fa5fc36..ee66717 100644 (file)
@@ -174,6 +174,10 @@ void CoreSessionEventProcessor::processIrcEventCap(IrcEvent *e)
                 capListFinished = true;
                 availableCaps = e->params().at(2).split(' ');
             }
+            // Sort capabilities before requesting for consistency among networks.  This may avoid
+            // unexpected cases when some networks offer capabilities in a different order than
+            // others.  It also looks nicer in logs.  Not required.
+            availableCaps.sort();
             // Store what capabilities are available
             QString availableCapName, availableCapValue;
             for (int i = 0; i < availableCaps.count(); ++i) {