diff options
-rw-r--r-- | Swiften/Client/Client.cpp | 37 | ||||
-rw-r--r-- | Swiften/FileTransfer/FileTransferManagerImpl.cpp | 37 | ||||
-rw-r--r-- | Swiften/FileTransfer/FileTransferManagerImpl.h | 16 |
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; |