diff options
Diffstat (limited to 'Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp')
-rw-r--r-- | Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp b/Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp index 9ab097b..e3b6d34 100644 --- a/Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp +++ b/Swiften/FileTransfer/SOCKS5BytestreamServerPortForwardingUser.cpp @@ -15,14 +15,16 @@ namespace Swift { SOCKS5BytestreamServerPortForwardingUser::SOCKS5BytestreamServerPortForwardingUser(SOCKS5BytestreamServerManager* s5bServerManager) : s5bServerManager_(s5bServerManager) { // the server should be initialized, so we know what port to setup a forward for assert(s5bServerManager->isInitialized()); - assert(!s5bServerManager_->isPortForwardingReady()); - - s5bServerManager_->onPortForwardingSetup.connect(boost::bind(&SOCKS5BytestreamServerPortForwardingUser::handleServerManagerPortForwardingSetup, this, _1)); - s5bServerManager_->setupPortForwarding(); + if (s5bServerManager_->isPortForwardingReady()) { + onSetup(!s5bServerManager_->getAssistedHostAddressPorts().empty()); + } + else { + onPortForwardingSetupConnection_ = s5bServerManager_->onPortForwardingSetup.connect(boost::bind(&SOCKS5BytestreamServerPortForwardingUser::handleServerManagerPortForwardingSetup, this, _1)); + s5bServerManager_->setupPortForwarding(); + } } SOCKS5BytestreamServerPortForwardingUser::~SOCKS5BytestreamServerPortForwardingUser() { - s5bServerManager_->onPortForwardingSetup.disconnect(boost::bind(&SOCKS5BytestreamServerPortForwardingUser::handleServerManagerPortForwardingSetup, this, _1)); if (s5bServerManager_->isPortForwardingReady()) { s5bServerManager_->removePortForwarding(); } |