diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-09-29 18:55:02 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-09-29 18:55:02 (GMT) |
commit | 06a49ccc9554f2ce9e6d7b381543819590ea30ed (patch) | |
tree | 3b2c6931176633b99afcf40729e2923ecaa1e151 /Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp | |
parent | 4b4ab66118545e55e69e15cd340d0ddf92adcc2d (diff) | |
download | swift-contrib-06a49ccc9554f2ce9e6d7b381543819590ea30ed.zip swift-contrib-06a49ccc9554f2ce9e6d7b381543819590ea30ed.tar.bz2 |
Allow to set 'from' on Request & IBB classes.
Diffstat (limited to 'Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp')
-rw-r--r-- | Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp b/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp index 9b71165..5e2a1c3 100644 --- a/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp +++ b/Swiften/FileTransfer/OutgoingJingleFileTransfer.cpp @@ -33,24 +33,25 @@ #include <Swiften/Base/Log.h> namespace Swift { OutgoingJingleFileTransfer::OutgoingJingleFileTransfer(JingleSession::ref session, RemoteJingleTransportCandidateSelectorFactory* remoteFactory, LocalJingleTransportCandidateGeneratorFactory* localFactory, IQRouter* router, IDGenerator *idGenerator, + const JID& fromJID, const JID& toJID, boost::shared_ptr<ReadBytestream> readStream, const StreamInitiationFileInfo &fileInfo, SOCKS5BytestreamRegistry* bytestreamRegistry, SOCKS5BytestreamProxy* bytestreamProxy) : - session(session), remoteFactory(remoteFactory), localFactory(localFactory), router(router), idGenerator(idGenerator), toJID(toJID), readStream(readStream), fileInfo(fileInfo), s5bRegistry(bytestreamRegistry), s5bProxy(bytestreamProxy), serverSession(NULL), contentID(JingleContentID(idGenerator->generateID(), JingleContentPayload::InitiatorCreator)), canceled(false) { + session(session), remoteFactory(remoteFactory), localFactory(localFactory), router(router), idGenerator(idGenerator), fromJID(fromJID), toJID(toJID), readStream(readStream), fileInfo(fileInfo), s5bRegistry(bytestreamRegistry), s5bProxy(bytestreamProxy), serverSession(NULL), contentID(JingleContentID(idGenerator->generateID(), JingleContentPayload::InitiatorCreator)), canceled(false) { session->onSessionAcceptReceived.connect(boost::bind(&OutgoingJingleFileTransfer::handleSessionAcceptReceived, this, _1, _2, _3)); session->onSessionTerminateReceived.connect(boost::bind(&OutgoingJingleFileTransfer::handleSessionTerminateReceived, this, _1)); session->onTransportInfoReceived.connect(boost::bind(&OutgoingJingleFileTransfer::handleTransportInfoReceived, this, _1, _2)); session->onTransportAcceptReceived.connect(boost::bind(&OutgoingJingleFileTransfer::handleTransportAcceptReceived, this, _1, _2)); fileSizeInBytes = fileInfo.getSize(); filename = fileInfo.getName(); localCandidateGenerator = localFactory->createCandidateGenerator(); localCandidateGenerator->onLocalTransportCandidatesGenerated.connect(boost::bind(&OutgoingJingleFileTransfer::handleLocalTransportCandidatesGenerated, this, _1)); @@ -103,19 +104,19 @@ void OutgoingJingleFileTransfer::cancel() { void OutgoingJingleFileTransfer::handleSessionAcceptReceived(const JingleContentID& id, JingleDescription::ref /* decription */, JingleTransportPayload::ref transportPayload) { if (canceled) { return; } onStateChange(FileTransfer::State(FileTransfer::State::Negotiating)); JingleIBBTransportPayload::ref ibbPayload; JingleS5BTransportPayload::ref s5bPayload; if ((ibbPayload = boost::dynamic_pointer_cast<JingleIBBTransportPayload>(transportPayload))) { - ibbSession = boost::make_shared<IBBSendSession>(ibbPayload->getSessionID(), toJID, readStream, router); + ibbSession = boost::make_shared<IBBSendSession>(ibbPayload->getSessionID(), fromJID, toJID, readStream, router); ibbSession->setBlockSize(ibbPayload->getBlockSize()); ibbSession->onBytesSent.connect(boost::bind(boost::ref(onProcessedBytes), _1)); ibbSession->onFinished.connect(boost::bind(&OutgoingJingleFileTransfer::handleTransferFinished, this, _1)); ibbSession->start(); onStateChange(FileTransfer::State(FileTransfer::State::Transferring)); } else if ((s5bPayload = boost::dynamic_pointer_cast<JingleS5BTransportPayload>(transportPayload))) { fillCandidateMap(theirCandidates, s5bPayload); remoteCandidateSelector->setRequesterTargtet(toJID, session->getInitiator()); @@ -157,19 +158,19 @@ void OutgoingJingleFileTransfer::handleSessionTerminateReceived(boost::optional< canceled = true; } void OutgoingJingleFileTransfer::handleTransportAcceptReceived(const JingleContentID& /* contentID */, JingleTransportPayload::ref transport) { if (canceled) { return; } if (JingleIBBTransportPayload::ref ibbPayload = boost::dynamic_pointer_cast<JingleIBBTransportPayload>(transport)) { - ibbSession = boost::make_shared<IBBSendSession>(ibbPayload->getSessionID(), toJID, readStream, router); + ibbSession = boost::make_shared<IBBSendSession>(ibbPayload->getSessionID(), fromJID, toJID, readStream, router); ibbSession->setBlockSize(ibbPayload->getBlockSize()); ibbSession->onBytesSent.connect(boost::bind(boost::ref(onProcessedBytes), _1)); ibbSession->onFinished.connect(boost::bind(&OutgoingJingleFileTransfer::handleTransferFinished, this, _1)); ibbSession->start(); onStateChange(FileTransfer::State(FileTransfer::State::Transferring)); } else { // error handling SWIFT_LOG(debug) << "Replacing with anything other than IBB isn't supported yet." << std::endl; session->sendTerminate(JinglePayload::Reason::FailedTransport); |