summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/FileTransfer')
-rw-r--r--Swiften/FileTransfer/FileTransferManagerImpl.cpp37
-rw-r--r--Swiften/FileTransfer/FileTransferManagerImpl.h16
2 files changed, 25 insertions, 28 deletions
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
40namespace Swift { 40namespace Swift {
41 41
42FileTransferManagerImpl::FileTransferManagerImpl( 42FileTransferManagerImpl::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
33namespace Swift { 32namespace 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;