summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Swiften/Client/Client.cpp37
-rw-r--r--Swiften/FileTransfer/FileTransferManagerImpl.cpp37
-rw-r--r--Swiften/FileTransfer/FileTransferManagerImpl.h16
3 files changed, 43 insertions, 47 deletions
diff --git a/Swiften/Client/Client.cpp b/Swiften/Client/Client.cpp
index 613249b..3bfdd3f 100644
--- a/Swiften/Client/Client.cpp
+++ b/Swiften/Client/Client.cpp
@@ -68,20 +68,37 @@ Client::Client(const JID& jid, const SafeString& password, NetworkFactories* net
nickResolver = new NickResolver(jid.toBare(), roster, vcardManager, mucRegistry);
blindCertificateTrustChecker = new BlindCertificateTrustChecker();
jingleSessionManager = new JingleSessionManager(getIQRouter());
blockListManager = new ClientBlockListManager(getIQRouter());
- fileTransferManager = NULL;
whiteboardSessionManager = NULL;
#ifdef SWIFT_EXPERIMENTAL_WB
whiteboardSessionManager = new WhiteboardSessionManager(getIQRouter(), getStanzaChannel(), presenceOracle, getEntityCapsProvider());
#endif
pubsubManager = new PubSubManagerImpl(getStanzaChannel(), getIQRouter());
+
+#ifdef SWIFT_EXPERIMENTAL_FT
+ fileTransferManager = new FileTransferManagerImpl(
+ getJID(),
+ jingleSessionManager,
+ getIQRouter(),
+ getEntityCapsProvider(),
+ presenceOracle,
+ getNetworkFactories()->getConnectionFactory(),
+ getNetworkFactories()->getConnectionServerFactory(),
+ getNetworkFactories()->getTimerFactory(),
+ getNetworkFactories()->getDomainNameResolver(),
+ getNetworkFactories()->getNetworkEnvironment(),
+ getNetworkFactories()->getNATTraverser(),
+ getNetworkFactories()->getCryptoProvider());
+#else
+ fileTransferManager = new DummyFileTransferManager();
+#endif
}
Client::~Client() {
delete pubsubManager;
delete whiteboardSessionManager;
@@ -123,30 +140,12 @@ XMPPRoster* Client::getRoster() const {
void Client::setSoftwareVersion(const std::string& name, const std::string& version, const std::string& os) {
softwareVersionResponder->setVersion(name, version, os);
}
void Client::handleConnected() {
- delete fileTransferManager;
-#ifdef SWIFT_EXPERIMENTAL_FT
- fileTransferManager = new FileTransferManagerImpl(
- getJID(),
- jingleSessionManager,
- getIQRouter(),
- getEntityCapsProvider(),
- presenceOracle,
- getNetworkFactories()->getConnectionFactory(),
- getNetworkFactories()->getConnectionServerFactory(),
- getNetworkFactories()->getTimerFactory(),
- getNetworkFactories()->getDomainNameResolver(),
- getNetworkFactories()->getNetworkEnvironment(),
- getNetworkFactories()->getNATTraverser(),
- getNetworkFactories()->getCryptoProvider());
-#else
- fileTransferManager = new DummyFileTransferManager();
-#endif
discoManager->handleConnected();
}
void Client::requestRoster() {
// FIXME: We should set this once when the session is finished, but there
// is currently no callback for this
diff --git a/Swiften/FileTransfer/FileTransferManagerImpl.cpp b/Swiften/FileTransfer/FileTransferManagerImpl.cpp
index ab08c45..f4f9517 100644
--- a/Swiften/FileTransfer/FileTransferManagerImpl.cpp
+++ b/Swiften/FileTransfer/FileTransferManagerImpl.cpp
@@ -10,61 +10,58 @@
* See the COPYING file for more information.
*/
#include <Swiften/FileTransfer/FileTransferManagerImpl.h>
#include <boost/bind.hpp>
-#include <boost/filesystem.hpp>
#include <boost/cstdint.hpp>
+#include <boost/filesystem.hpp>
-#include <Swiften/Base/foreach.h>
+#include "Swiften/Disco/EntityCapsProvider.h"
+#include <Swiften/Base/BoostFilesystemVersion.h>
#include <Swiften/Base/Log.h>
#include <Swiften/Base/Path.h>
-#include "Swiften/Disco/EntityCapsProvider.h"
-#include <Swiften/JID/JID.h>
+#include <Swiften/Base/foreach.h>
#include <Swiften/Elements/JingleFileTransferFileInfo.h>
-#include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h>
-#include <Swiften/FileTransfer/OutgoingFileTransferManager.h>
-#include <Swiften/FileTransfer/IncomingFileTransferManager.h>
+#include <Swiften/Elements/Presence.h>
#include <Swiften/FileTransfer/DefaultFileTransferTransporterFactory.h>
-#include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h>
+#include <Swiften/FileTransfer/IncomingFileTransferManager.h>
+#include <Swiften/FileTransfer/OutgoingFileTransferManager.h>
#include <Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.h>
-#include <Swiften/Presence/PresenceOracle.h>
-#include <Swiften/Elements/Presence.h>
+#include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h>
+#include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h>
+#include <Swiften/JID/JID.h>
#include <Swiften/Network/ConnectionFactory.h>
#include <Swiften/Network/ConnectionServerFactory.h>
#include <Swiften/Network/HostAddress.h>
#include <Swiften/Network/NATTraverser.h>
-
-#include <Swiften/Base/BoostFilesystemVersion.h>
+#include <Swiften/Presence/PresenceOracle.h>
+#include <Swiften/Queries/IQRouter.h>
namespace Swift {
FileTransferManagerImpl::FileTransferManagerImpl(
- const JID& ownFullJID,
+ const JID& ownJID,
JingleSessionManager* jingleSessionManager,
IQRouter* router,
EntityCapsProvider* capsProvider,
PresenceOracle* presOracle,
ConnectionFactory* connectionFactory,
ConnectionServerFactory* connectionServerFactory,
TimerFactory* timerFactory,
DomainNameResolver* domainNameResolver,
NetworkEnvironment* networkEnvironment,
NATTraverser* natTraverser,
CryptoProvider* crypto) :
- ownJID(ownFullJID),
iqRouter(router),
capsProvider(capsProvider),
presenceOracle(presOracle) {
- assert(!ownFullJID.isBare());
-
bytestreamRegistry = new SOCKS5BytestreamRegistry();
s5bServerManager = new SOCKS5BytestreamServerManager(
bytestreamRegistry, connectionServerFactory, networkEnvironment, natTraverser);
- bytestreamProxy = new SOCKS5BytestreamProxiesManager(connectionFactory, timerFactory, domainNameResolver, iqRouter, JID(ownFullJID.getDomain()));
+ bytestreamProxy = new SOCKS5BytestreamProxiesManager(connectionFactory, timerFactory, domainNameResolver, iqRouter, JID(ownJID.getDomain()));
transporterFactory = new DefaultFileTransferTransporterFactory(
bytestreamRegistry,
s5bServerManager,
bytestreamProxy,
&idGenerator,
@@ -163,11 +160,13 @@ OutgoingFileTransfer::ref FileTransferManagerImpl::createOutgoingFileTransfer(
if (fullJID.is_initialized()) {
receipient = fullJID.get();
} else {
return OutgoingFileTransfer::ref();
}
}
-
- return outgoingFTManager->createOutgoingFileTransfer(ownJID, receipient, bytestream, fileInfo, config);
+
+ assert(!iqRouter->getJID().isBare());
+
+ return outgoingFTManager->createOutgoingFileTransfer(iqRouter->getJID(), receipient, bytestream, fileInfo, config);
}
}
diff --git a/Swiften/FileTransfer/FileTransferManagerImpl.h b/Swiften/FileTransfer/FileTransferManagerImpl.h
index de6e857..7a77564 100644
--- a/Swiften/FileTransfer/FileTransferManagerImpl.h
+++ b/Swiften/FileTransfer/FileTransferManagerImpl.h
@@ -9,39 +9,39 @@
* All rights reserved.
* See the COPYING file for more information.
*/
#pragma once
-#include <vector>
#include <string>
+#include <vector>
-#include <boost/filesystem/path.hpp>
#include <boost/date_time/posix_time/posix_time.hpp>
+#include <boost/filesystem/path.hpp>
#include <boost/optional.hpp>
#include <Swiften/Base/API.h>
+#include <Swiften/Base/IDGenerator.h>
#include <Swiften/Base/Override.h>
+#include <Swiften/Base/boost_bsignals.h>
+#include <Swiften/Elements/S5BProxyRequest.h>
#include <Swiften/FileTransfer/FileTransferManager.h>
#include <Swiften/FileTransfer/FileTransferOptions.h>
-#include <Swiften/Base/boost_bsignals.h>
-#include <Swiften/Base/IDGenerator.h>
-#include <Swiften/JID/JID.h>
-#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
#include <Swiften/FileTransfer/IncomingFileTransfer.h>
-#include <Swiften/Elements/S5BProxyRequest.h>
+#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
namespace Swift {
class ConnectionFactory;
class ConnectionServerFactory;
class CryptoProvider;
class DomainNameResolver;
class EntityCapsProvider;
class FileTransferTransporterFactory;
class IQRouter;
class IncomingFileTransferManager;
+ class JID;
class JingleSessionManager;
class NATTraverser;
class NetworkEnvironment;
class OutgoingFileTransferManager;
class PresenceOracle;
class ReadBytestream;
@@ -86,14 +86,12 @@ namespace Swift {
void stop();
private:
boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID);
private:
- JID ownJID;
-
OutgoingFileTransferManager* outgoingFTManager;
IncomingFileTransferManager* incomingFTManager;
FileTransferTransporterFactory* transporterFactory;
IQRouter* iqRouter;
EntityCapsProvider* capsProvider;
PresenceOracle* presenceOracle;