X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.cpp;h=02f384223ff0f689a1b9fbad5bd3c7a08fe7f42f;hp=534199e30ad956ed83fbaa21e3a82288b48b4f9a;hb=dd653b781619e2de71c710eafab7af6911ee89ed;hpb=393ac8b4bca9db98f297cb4756ef2e79364bf6f0 diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index 534199e3..02f38422 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -77,6 +77,12 @@ CoreNetwork::CoreNetwork(const NetworkId &networkid, CoreSession *session) connect(&socket, SIGNAL(encrypted()), this, SLOT(socketInitialized())); connect(&socket, SIGNAL(sslErrors(const QList &)), this, SLOT(sslErrors(const QList &))); #endif + connect(this, SIGNAL(newEvent(Event *)), coreSession()->eventManager(), SLOT(postEvent(Event *))); + + if(Quassel::isOptionSet("oidentd")) { + connect(this, SIGNAL(socketInitialized(const CoreIdentity*,QHostAddress,quint16,QHostAddress,quint16)), Core::instance()->oidentdConfigGenerator(), SLOT(addSocket(const CoreIdentity*,QHostAddress,quint16,QHostAddress,quint16)), Qt::BlockingQueuedConnection); + connect(this, SIGNAL(socketDisconnected(const CoreIdentity*,QHostAddress,quint16,QHostAddress,quint16)), Core::instance()->oidentdConfigGenerator(), SLOT(removeSocket(const CoreIdentity*,QHostAddress,quint16,QHostAddress,quint16))); + } } CoreNetwork::~CoreNetwork() { @@ -330,7 +336,7 @@ void CoreNetwork::socketHasData() { #else event->setTimestamp(QDateTime::currentDateTime().toUTC()); #endif - coreSession()->eventManager()->sendEvent(event); + emit newEvent(event); } } @@ -362,6 +368,8 @@ void CoreNetwork::socketInitialized() { return; } + emit socketInitialized(identity, localAddress(), localPort(), peerAddress(), peerPort()); + // TokenBucket to avoid sending too much at once _messageDelay = 2200; // this seems to be a safe value (2.2 seconds delay) _burstSize = 5; @@ -406,6 +414,7 @@ void CoreNetwork::socketDisconnected() { setConnected(false); emit disconnected(networkId()); + emit socketDisconnected(identityPtr(), localAddress(), localPort(), peerAddress(), peerPort()); if(_quitRequested) { _quitRequested = false; setConnectionState(Network::Disconnected);