aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppTransferManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-03-05 18:52:53 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-03-05 18:52:53 +0000
commit172d03f23cfb9e7b7d1c0d231f02903c289840aa (patch)
treebb33a52f54a77b3845201018164820eaeaadd4f5 /source/QXmppTransferManager.cpp
parent7968ce074dabb323fc8dc61d9525a123b3c81130 (diff)
downloadqxmpp-172d03f23cfb9e7b7d1c0d231f02903c289840aa.tar.gz
lower timeouts for SOCKS5 operations
Diffstat (limited to 'source/QXmppTransferManager.cpp')
-rw-r--r--source/QXmppTransferManager.cpp9
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;