SASL support
[quassel.git] / src / core / corenetwork.cpp
index bc7b848..959b3c4 100644 (file)
@@ -26,7 +26,7 @@
 #include "corenetworkconfig.h"
 
 #include "ircserverhandler.h"
-#include "userinputhandler.h"
+#include "coreuserinputhandler.h"
 #include "ctcphandler.h"
 
 INIT_SYNCABLE_OBJECT(CoreNetwork)
@@ -34,7 +34,7 @@ CoreNetwork::CoreNetwork(const NetworkId &networkid, CoreSession *session)
   : Network(networkid, session),
     _coreSession(session),
     _ircServerHandler(new IrcServerHandler(this)),
-    _userInputHandler(new UserInputHandler(this)),
+    _userInputHandler(new CoreUserInputHandler(this)),
     _ctcpHandler(new CtcpHandler(this)),
     _autoReconnectCount(0),
     _quitRequested(false),
@@ -333,6 +333,9 @@ void CoreNetwork::socketInitialized() {
   _tokenBucket = _burstSize; // init with a full bucket
   _tokenBucketTimer.start(_messageDelay);
 
+  if(networkInfo().useSasl) {
+    putRawLine(serverEncode(QString("CAP REQ :sasl")));
+  }
   if(!server.password.isEmpty()) {
     putRawLine(serverEncode(QString("PASS %1").arg(server.password)));
   }
@@ -369,6 +372,7 @@ void CoreNetwork::socketDisconnected() {
   setConnected(false);
   emit disconnected(networkId());
   if(_quitRequested) {
+    _quitRequested = false;
     setConnectionState(Network::Disconnected);
     Core::setNetworkConnected(userId(), networkId(), false);
   } else if(_autoReconnectCount != 0) {