diff options
| author | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-05 18:52:53 +0000 |
|---|---|---|
| committer | Jeremy Lainé <jeremy.laine@m4x.org> | 2010-03-05 18:52:53 +0000 |
| commit | 172d03f23cfb9e7b7d1c0d231f02903c289840aa (patch) | |
| tree | bb33a52f54a77b3845201018164820eaeaadd4f5 /source/QXmppTransferManager.cpp | |
| parent | 7968ce074dabb323fc8dc61d9525a123b3c81130 (diff) | |
| download | qxmpp-172d03f23cfb9e7b7d1c0d231f02903c289840aa.tar.gz | |
lower timeouts for SOCKS5 operations
Diffstat (limited to 'source/QXmppTransferManager.cpp')
| -rw-r--r-- | source/QXmppTransferManager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/source/QXmppTransferManager.cpp b/source/QXmppTransferManager.cpp index 855cc2af..93b3634e 100644 --- a/source/QXmppTransferManager.cpp +++ b/source/QXmppTransferManager.cpp @@ -36,6 +36,9 @@ #include "QXmppTransferManager.h" #include "QXmppUtils.h" +// time to try to connect to a SOCKS host (7 seconds) +const int socksTimeout = 7000; + static QString streamHash(const QString &sid, const QString &initiatorJid, const QString &targetJid) { QCryptographicHash hash(QCryptographicHash::Sha1); @@ -287,7 +290,8 @@ void QXmppTransferManager::byteStreamResultReceived(const QXmppByteStreamIq &iq) QXmppSocksClient *socksClient = new QXmppSocksClient(streamHost.host(), streamHost.port(), job); socksClient->connectToHost(hostName, 0); - if (!socksClient->waitForReady()) + // FIXME : this should probably be made asynchronous as it blocks XMPP packet handling + if (!socksClient->waitForReady(socksTimeout)) { qWarning() << "Failed to connect to" << streamHost.host().toString() << streamHost.port() << ":" << socksClient->errorString(); delete socksClient; @@ -360,7 +364,8 @@ void QXmppTransferManager::byteStreamSetReceived(const QXmppByteStreamIq &iq) // try to connect to stream host QXmppSocksClient *socksClient = new QXmppSocksClient(streamHost.host(), streamHost.port(), job); socksClient->connectToHost(hostName, 0); - if (socksClient->waitForReady()) + // FIXME : this should probably be made asynchronous as it blocks XMPP packet handling + if (socksClient->waitForReady(socksTimeout)) { job->setState(QXmppTransferJob::TransferState); job->m_socksSocket = socksClient; |
