- CoreIdentity *identity = identityPtr();
- if(!identity) {
- qCritical() << "Identity invalid!";
- disconnectFromIrc();
- return;
- }
-
- // TokenBucket to avoid sending too much at once
- _messageDelay = 2200; // this seems to be a safe value (2.2 seconds delay)
- _burstSize = 5;
- _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)));
- }
- QString nick;
- if(identity->nicks().isEmpty()) {
- nick = "quassel";
- qWarning() << "CoreNetwork::socketInitialized(): no nicks supplied for identity Id" << identity->id();
- } else {
- nick = identity->nicks()[0];
- }
- putRawLine(serverEncode(QString("NICK :%1").arg(nick)));
- putRawLine(serverEncode(QString("USER %1 8 * :%2").arg(identity->ident(), identity->realName())));
-}
-
-void CoreNetwork::socketDisconnected() {
- disablePingTimeout();
- _msgQueue.clear();
-
- _autoWhoCycleTimer.stop();
- _autoWhoTimer.stop();
- _autoWhoQueue.clear();
- _autoWhoPending.clear();
-
- _socketCloseTimer.stop();
-
- _tokenBucketTimer.stop();
-
- IrcUser *me_ = me();
- if(me_) {
- foreach(QString channel, me_->channels())
- displayMsg(Message::Quit, BufferInfo::ChannelBuffer, channel, _quitReason, me_->hostmask());
- }
-
- setConnected(false);
- emit disconnected(networkId());
- if(_quitRequested) {
- _quitRequested = false;
- setConnectionState(Network::Disconnected);
- Core::setNetworkConnected(userId(), networkId(), false);
- } else if(_autoReconnectCount != 0) {
- setConnectionState(Network::Reconnecting);
- if(_autoReconnectCount == -1 || _autoReconnectCount == autoReconnectRetries())
- doAutoReconnect(); // first try is immediate
- else
- _autoReconnectTimer.start();
- }
+ CoreIdentity *identity = identityPtr();
+ if (!identity) {
+ qCritical() << "Identity invalid!";
+ disconnectFromIrc();
+ return;
+ }
+
+ emit socketInitialized(identity, localAddress(), localPort(), peerAddress(), peerPort());
+
+ enablePingTimeout();
+
+ // TokenBucket to avoid sending too much at once
+ _messageDelay = 2200; // this seems to be a safe value (2.2 seconds delay)
+ _burstSize = 5;
+ _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)));
+ }
+ QString nick;
+ if (identity->nicks().isEmpty()) {
+ nick = "quassel";
+ qWarning() << "CoreNetwork::socketInitialized(): no nicks supplied for identity Id" << identity->id();
+ }
+ else {
+ nick = identity->nicks()[0];
+ }
+ putRawLine(serverEncode(QString("NICK :%1").arg(nick)));
+ putRawLine(serverEncode(QString("USER %1 8 * :%2").arg(identity->ident(), identity->realName())));