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 | |||
| @@ -69,18 +69,35 @@ Client::Client(const JID& jid, const SafeString& password, NetworkFactories* net | |||
| 69 | 69 | ||
| 70 | blindCertificateTrustChecker = new BlindCertificateTrustChecker(); | 70 | blindCertificateTrustChecker = new BlindCertificateTrustChecker(); |
| 71 | 71 | ||
| 72 | jingleSessionManager = new JingleSessionManager(getIQRouter()); | 72 | jingleSessionManager = new JingleSessionManager(getIQRouter()); |
| 73 | blockListManager = new ClientBlockListManager(getIQRouter()); | 73 | blockListManager = new ClientBlockListManager(getIQRouter()); |
| 74 | fileTransferManager = NULL; | ||
| 75 | 74 | ||
| 76 | whiteboardSessionManager = NULL; | 75 | whiteboardSessionManager = NULL; |
| 77 | #ifdef SWIFT_EXPERIMENTAL_WB | 76 | #ifdef SWIFT_EXPERIMENTAL_WB |
| 78 | whiteboardSessionManager = new WhiteboardSessionManager(getIQRouter(), getStanzaChannel(), presenceOracle, getEntityCapsProvider()); | 77 | whiteboardSessionManager = new WhiteboardSessionManager(getIQRouter(), getStanzaChannel(), presenceOracle, getEntityCapsProvider()); |
| 79 | #endif | 78 | #endif |
| 80 | 79 | ||
| 81 | pubsubManager = new PubSubManagerImpl(getStanzaChannel(), getIQRouter()); | 80 | pubsubManager = new PubSubManagerImpl(getStanzaChannel(), getIQRouter()); |
| 81 | |||
| 82 | #ifdef SWIFT_EXPERIMENTAL_FT | ||
| 83 | fileTransferManager = new FileTransferManagerImpl( | ||
| 84 | getJID(), | ||
| 85 | jingleSessionManager, | ||
| 86 | getIQRouter(), | ||
| 87 | getEntityCapsProvider(), | ||
| 88 | presenceOracle, | ||
| 89 | getNetworkFactories()->getConnectionFactory(), | ||
| 90 | getNetworkFactories()->getConnectionServerFactory(), | ||
| 91 | getNetworkFactories()->getTimerFactory(), | ||
| 92 | getNetworkFactories()->getDomainNameResolver(), | ||
| 93 | getNetworkFactories()->getNetworkEnvironment(), | ||
| 94 | getNetworkFactories()->getNATTraverser(), | ||
| 95 | getNetworkFactories()->getCryptoProvider()); | ||
| 96 | #else | ||
| 97 | fileTransferManager = new DummyFileTransferManager(); | ||
| 98 | #endif | ||
| 82 | } | 99 | } |
| 83 | 100 | ||
| 84 | Client::~Client() { | 101 | Client::~Client() { |
| 85 | delete pubsubManager; | 102 | delete pubsubManager; |
| 86 | delete whiteboardSessionManager; | 103 | delete whiteboardSessionManager; |
| @@ -124,28 +141,10 @@ XMPPRoster* Client::getRoster() const { | |||
| 124 | void Client::setSoftwareVersion(const std::string& name, const std::string& version, const std::string& os) { | 141 | void Client::setSoftwareVersion(const std::string& name, const std::string& version, const std::string& os) { |
| 125 | softwareVersionResponder->setVersion(name, version, os); | 142 | softwareVersionResponder->setVersion(name, version, os); |
| 126 | } | 143 | } |
| 127 | 144 | ||
| 128 | void Client::handleConnected() { | 145 | void Client::handleConnected() { |
| 129 | delete fileTransferManager; | ||
| 130 | #ifdef SWIFT_EXPERIMENTAL_FT | ||
| 131 | fileTransferManager = new FileTransferManagerImpl( | ||
| 132 | getJID(), | ||
| 133 | jingleSessionManager, | ||
| 134 | getIQRouter(), | ||
| 135 | getEntityCapsProvider(), | ||
| 136 | presenceOracle, | ||
| 137 | getNetworkFactories()->getConnectionFactory(), | ||
| 138 | getNetworkFactories()->getConnectionServerFactory(), | ||
| 139 | getNetworkFactories()->getTimerFactory(), | ||
| 140 | getNetworkFactories()->getDomainNameResolver(), | ||
| 141 | getNetworkFactories()->getNetworkEnvironment(), | ||
| 142 | getNetworkFactories()->getNATTraverser(), | ||
| 143 | getNetworkFactories()->getCryptoProvider()); | ||
| 144 | #else | ||
| 145 | fileTransferManager = new DummyFileTransferManager(); | ||
| 146 | #endif | ||
| 147 | discoManager->handleConnected(); | 146 | discoManager->handleConnected(); |
| 148 | } | 147 | } |
| 149 | 148 | ||
| 150 | void Client::requestRoster() { | 149 | void Client::requestRoster() { |
| 151 | // FIXME: We should set this once when the session is finished, but there | 150 | // FIXME: We should set this once when the session is finished, but there |
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 | |||
| @@ -11,38 +11,38 @@ | |||
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #include <Swiften/FileTransfer/FileTransferManagerImpl.h> | 13 | #include <Swiften/FileTransfer/FileTransferManagerImpl.h> |
| 14 | 14 | ||
| 15 | #include <boost/bind.hpp> | 15 | #include <boost/bind.hpp> |
| 16 | #include <boost/filesystem.hpp> | ||
| 17 | #include <boost/cstdint.hpp> | 16 | #include <boost/cstdint.hpp> |
| 17 | #include <boost/filesystem.hpp> | ||
| 18 | 18 | ||
| 19 | #include <Swiften/Base/foreach.h> | 19 | #include "Swiften/Disco/EntityCapsProvider.h" |
| 20 | #include <Swiften/Base/BoostFilesystemVersion.h> | ||
| 20 | #include <Swiften/Base/Log.h> | 21 | #include <Swiften/Base/Log.h> |
| 21 | #include <Swiften/Base/Path.h> | 22 | #include <Swiften/Base/Path.h> |
| 22 | #include "Swiften/Disco/EntityCapsProvider.h" | 23 | #include <Swiften/Base/foreach.h> |
| 23 | #include <Swiften/JID/JID.h> | ||
| 24 | #include <Swiften/Elements/JingleFileTransferFileInfo.h> | 24 | #include <Swiften/Elements/JingleFileTransferFileInfo.h> |
| 25 | #include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h> | 25 | #include <Swiften/Elements/Presence.h> |
| 26 | #include <Swiften/FileTransfer/OutgoingFileTransferManager.h> | ||
| 27 | #include <Swiften/FileTransfer/IncomingFileTransferManager.h> | ||
| 28 | #include <Swiften/FileTransfer/DefaultFileTransferTransporterFactory.h> | 26 | #include <Swiften/FileTransfer/DefaultFileTransferTransporterFactory.h> |
| 29 | #include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h> | 27 | #include <Swiften/FileTransfer/IncomingFileTransferManager.h> |
| 28 | #include <Swiften/FileTransfer/OutgoingFileTransferManager.h> | ||
| 30 | #include <Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.h> | 29 | #include <Swiften/FileTransfer/SOCKS5BytestreamProxiesManager.h> |
| 31 | #include <Swiften/Presence/PresenceOracle.h> | 30 | #include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h> |
| 32 | #include <Swiften/Elements/Presence.h> | 31 | #include <Swiften/FileTransfer/SOCKS5BytestreamServerManager.h> |
| 32 | #include <Swiften/JID/JID.h> | ||
| 33 | #include <Swiften/Network/ConnectionFactory.h> | 33 | #include <Swiften/Network/ConnectionFactory.h> |
| 34 | #include <Swiften/Network/ConnectionServerFactory.h> | 34 | #include <Swiften/Network/ConnectionServerFactory.h> |
| 35 | #include <Swiften/Network/HostAddress.h> | 35 | #include <Swiften/Network/HostAddress.h> |
| 36 | #include <Swiften/Network/NATTraverser.h> | 36 | #include <Swiften/Network/NATTraverser.h> |
| 37 | 37 | #include <Swiften/Presence/PresenceOracle.h> | |
| 38 | #include <Swiften/Base/BoostFilesystemVersion.h> | 38 | #include <Swiften/Queries/IQRouter.h> |
| 39 | 39 | ||
| 40 | namespace Swift { | 40 | namespace Swift { |
| 41 | 41 | ||
| 42 | FileTransferManagerImpl::FileTransferManagerImpl( | 42 | FileTransferManagerImpl::FileTransferManagerImpl( |
| 43 | const JID& ownFullJID, | 43 | const JID& ownJID, |
| 44 | JingleSessionManager* jingleSessionManager, | 44 | JingleSessionManager* jingleSessionManager, |
| 45 | IQRouter* router, | 45 | IQRouter* router, |
| 46 | EntityCapsProvider* capsProvider, | 46 | EntityCapsProvider* capsProvider, |
| 47 | PresenceOracle* presOracle, | 47 | PresenceOracle* presOracle, |
| 48 | ConnectionFactory* connectionFactory, | 48 | ConnectionFactory* connectionFactory, |
| @@ -50,20 +50,17 @@ FileTransferManagerImpl::FileTransferManagerImpl( | |||
| 50 | TimerFactory* timerFactory, | 50 | TimerFactory* timerFactory, |
| 51 | DomainNameResolver* domainNameResolver, | 51 | DomainNameResolver* domainNameResolver, |
| 52 | NetworkEnvironment* networkEnvironment, | 52 | NetworkEnvironment* networkEnvironment, |
| 53 | NATTraverser* natTraverser, | 53 | NATTraverser* natTraverser, |
| 54 | CryptoProvider* crypto) : | 54 | CryptoProvider* crypto) : |
| 55 | ownJID(ownFullJID), | ||
| 56 | iqRouter(router), | 55 | iqRouter(router), |
| 57 | capsProvider(capsProvider), | 56 | capsProvider(capsProvider), |
| 58 | presenceOracle(presOracle) { | 57 | presenceOracle(presOracle) { |
| 59 | assert(!ownFullJID.isBare()); | ||
| 60 | |||
| 61 | bytestreamRegistry = new SOCKS5BytestreamRegistry(); | 58 | bytestreamRegistry = new SOCKS5BytestreamRegistry(); |
| 62 | s5bServerManager = new SOCKS5BytestreamServerManager( | 59 | s5bServerManager = new SOCKS5BytestreamServerManager( |
| 63 | bytestreamRegistry, connectionServerFactory, networkEnvironment, natTraverser); | 60 | bytestreamRegistry, connectionServerFactory, networkEnvironment, natTraverser); |
| 64 | bytestreamProxy = new SOCKS5BytestreamProxiesManager(connectionFactory, timerFactory, domainNameResolver, iqRouter, JID(ownFullJID.getDomain())); | 61 | bytestreamProxy = new SOCKS5BytestreamProxiesManager(connectionFactory, timerFactory, domainNameResolver, iqRouter, JID(ownJID.getDomain())); |
| 65 | 62 | ||
| 66 | transporterFactory = new DefaultFileTransferTransporterFactory( | 63 | transporterFactory = new DefaultFileTransferTransporterFactory( |
| 67 | bytestreamRegistry, | 64 | bytestreamRegistry, |
| 68 | s5bServerManager, | 65 | s5bServerManager, |
| 69 | bytestreamProxy, | 66 | bytestreamProxy, |
| @@ -164,10 +161,12 @@ OutgoingFileTransfer::ref FileTransferManagerImpl::createOutgoingFileTransfer( | |||
| 164 | receipient = fullJID.get(); | 161 | receipient = fullJID.get(); |
| 165 | } else { | 162 | } else { |
| 166 | return OutgoingFileTransfer::ref(); | 163 | return OutgoingFileTransfer::ref(); |
| 167 | } | 164 | } |
| 168 | } | 165 | } |
| 169 | 166 | ||
| 170 | return outgoingFTManager->createOutgoingFileTransfer(ownJID, receipient, bytestream, fileInfo, config); | 167 | assert(!iqRouter->getJID().isBare()); |
| 168 | |||
| 169 | return outgoingFTManager->createOutgoingFileTransfer(iqRouter->getJID(), receipient, bytestream, fileInfo, config); | ||
| 171 | } | 170 | } |
| 172 | 171 | ||
| 173 | } | 172 | } |
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 | |||
| @@ -10,37 +10,37 @@ | |||
| 10 | * See the COPYING file for more information. | 10 | * See the COPYING file for more information. |
| 11 | */ | 11 | */ |
| 12 | 12 | ||
| 13 | #pragma once | 13 | #pragma once |
| 14 | 14 | ||
| 15 | #include <vector> | ||
| 16 | #include <string> | 15 | #include <string> |
| 16 | #include <vector> | ||
| 17 | 17 | ||
| 18 | #include <boost/filesystem/path.hpp> | ||
| 19 | #include <boost/date_time/posix_time/posix_time.hpp> | 18 | #include <boost/date_time/posix_time/posix_time.hpp> |
| 19 | #include <boost/filesystem/path.hpp> | ||
| 20 | #include <boost/optional.hpp> | 20 | #include <boost/optional.hpp> |
| 21 | 21 | ||
| 22 | #include <Swiften/Base/API.h> | 22 | #include <Swiften/Base/API.h> |
| 23 | #include <Swiften/Base/IDGenerator.h> | ||
| 23 | #include <Swiften/Base/Override.h> | 24 | #include <Swiften/Base/Override.h> |
| 25 | #include <Swiften/Base/boost_bsignals.h> | ||
| 26 | #include <Swiften/Elements/S5BProxyRequest.h> | ||
| 24 | #include <Swiften/FileTransfer/FileTransferManager.h> | 27 | #include <Swiften/FileTransfer/FileTransferManager.h> |
| 25 | #include <Swiften/FileTransfer/FileTransferOptions.h> | 28 | #include <Swiften/FileTransfer/FileTransferOptions.h> |
| 26 | #include <Swiften/Base/boost_bsignals.h> | ||
| 27 | #include <Swiften/Base/IDGenerator.h> | ||
| 28 | #include <Swiften/JID/JID.h> | ||
| 29 | #include <Swiften/FileTransfer/OutgoingFileTransfer.h> | ||
| 30 | #include <Swiften/FileTransfer/IncomingFileTransfer.h> | 29 | #include <Swiften/FileTransfer/IncomingFileTransfer.h> |
| 31 | #include <Swiften/Elements/S5BProxyRequest.h> | 30 | #include <Swiften/FileTransfer/OutgoingFileTransfer.h> |
| 32 | 31 | ||
| 33 | namespace Swift { | 32 | namespace Swift { |
| 34 | class ConnectionFactory; | 33 | class ConnectionFactory; |
| 35 | class ConnectionServerFactory; | 34 | class ConnectionServerFactory; |
| 36 | class CryptoProvider; | 35 | class CryptoProvider; |
| 37 | class DomainNameResolver; | 36 | class DomainNameResolver; |
| 38 | class EntityCapsProvider; | 37 | class EntityCapsProvider; |
| 39 | class FileTransferTransporterFactory; | 38 | class FileTransferTransporterFactory; |
| 40 | class IQRouter; | 39 | class IQRouter; |
| 41 | class IncomingFileTransferManager; | 40 | class IncomingFileTransferManager; |
| 41 | class JID; | ||
| 42 | class JingleSessionManager; | 42 | class JingleSessionManager; |
| 43 | class NATTraverser; | 43 | class NATTraverser; |
| 44 | class NetworkEnvironment; | 44 | class NetworkEnvironment; |
| 45 | class OutgoingFileTransferManager; | 45 | class OutgoingFileTransferManager; |
| 46 | class PresenceOracle; | 46 | class PresenceOracle; |
| @@ -87,12 +87,10 @@ namespace Swift { | |||
| 87 | 87 | ||
| 88 | private: | 88 | private: |
| 89 | boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID); | 89 | boost::optional<JID> highestPriorityJIDSupportingFileTransfer(const JID& bareJID); |
| 90 | 90 | ||
| 91 | private: | 91 | private: |
| 92 | JID ownJID; | ||
| 93 | |||
| 94 | OutgoingFileTransferManager* outgoingFTManager; | 92 | OutgoingFileTransferManager* outgoingFTManager; |
| 95 | IncomingFileTransferManager* incomingFTManager; | 93 | IncomingFileTransferManager* incomingFTManager; |
| 96 | FileTransferTransporterFactory* transporterFactory; | 94 | FileTransferTransporterFactory* transporterFactory; |
| 97 | IQRouter* iqRouter; | 95 | IQRouter* iqRouter; |
| 98 | EntityCapsProvider* capsProvider; | 96 | EntityCapsProvider* capsProvider; |
Swift