aboutsummaryrefslogtreecommitdiff
path: root/source/QXmppTransferManager.cpp
diff options
context:
space:
mode:
authorJeremy Lainé <jeremy.laine@m4x.org>2010-02-25 13:03:01 +0000
committerJeremy Lainé <jeremy.laine@m4x.org>2010-02-25 13:03:01 +0000
commit54715fac4eb9fbbb4d3cdcf74e43e64b0c28598c (patch)
tree69916923846fcb3b1c6c92b64eef0076d6aeb40f /source/QXmppTransferManager.cpp
parent93b7c60780ccce1a52462fb6f8ba07e8f78e8f79 (diff)
downloadqxmpp-54715fac4eb9fbbb4d3cdcf74e43e64b0c28598c.tar.gz
rework order of ibb ops
Diffstat (limited to 'source/QXmppTransferManager.cpp')
-rw-r--r--source/QXmppTransferManager.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/source/QXmppTransferManager.cpp b/source/QXmppTransferManager.cpp
index 554820f9..ad9ae231 100644
--- a/source/QXmppTransferManager.cpp
+++ b/source/QXmppTransferManager.cpp
@@ -367,10 +367,11 @@ void QXmppTransferManager::ibbOpenIqReceived(const QXmppIbbOpenIq &iq)
response.setError(error);
m_client->sendPacket(response);
return;
- } else {
- job->m_blockSize = iq.getBlockSize();
}
+ job->m_blockSize = iq.getBlockSize();
+ job->setState(QXmppTransferJob::TransferState);
+
// accept transfer
response.setType(QXmppIq::Result);
m_client->sendPacket(response);
@@ -398,22 +399,21 @@ void QXmppTransferManager::ibbResponseReceived(const QXmppIq &iq)
QXmppIbbDataIq dataIq;
dataIq.setTo(job->m_jid);
dataIq.setSid(job->m_sid);
- dataIq.setSequence(job->m_ibbSequence);
+ dataIq.setSequence(job->m_ibbSequence++);
dataIq.setPayload(buffer);
+ job->m_requestId = dataIq.getId();
m_client->sendPacket(dataIq);
job->m_done += buffer.size();
- job->m_requestId = dataIq.getId();
- job->m_ibbSequence++;
job->progress(job->m_done, job->fileSize());
} else {
// close the bytestream
QXmppIbbCloseIq closeIq;
closeIq.setTo(job->m_jid);
closeIq.setSid(job->m_sid);
+ job->m_requestId = closeIq.getId();
m_client->sendPacket(closeIq);
- job->m_requestId = closeIq.getId();
job->terminate(QXmppTransferJob::NoError);
}
}
@@ -423,9 +423,9 @@ void QXmppTransferManager::ibbResponseReceived(const QXmppIq &iq)
QXmppIbbCloseIq closeIq;
closeIq.setTo(job->m_jid);
closeIq.setSid(job->m_sid);
+ job->m_requestId = closeIq.getId();
m_client->sendPacket(closeIq);
- job->m_requestId = closeIq.getId();
job->terminate(QXmppTransferJob::ProtocolError);
}
}