Changeset - 941bba0427fe
[Not reviewed]
2 10 0
HanzZ - 14 years ago 2011-09-30 10:00:44
hanzz.k@gmail.com
Fixed compilation with latest swiften
12 files changed with 130 insertions and 118 deletions:
0 comments (0 inline, 0 general)
CMakeLists.txt
Show inline comments
 
@@ -108,7 +108,7 @@ else()
 
endif()
 

	
 
if(CMAKE_BUILD_TYPE MATCHES Debug)
 
	ADD_DEFINITIONS(-O3)
 
	ADD_DEFINITIONS(-O0)
 
	ADD_DEFINITIONS(-ggdb)
 
	ADD_DEFINITIONS(-DDEBUG)
 
	ADD_DEFINITIONS(-Wall)
backends/libpurple/main.cpp
Show inline comments
 
@@ -1340,8 +1340,12 @@ static void newXfer(PurpleXfer *xfer) {
 
	PurpleAccount *account = purple_xfer_get_account(xfer);
 
	std::string filename(xfer ? purple_xfer_get_filename(xfer) : "");
 
	purple_xfer_ref(xfer);
 
	np->m_xfers[np->m_accounts[account] + filename + xfer->who] = xfer;
 
	np->handleFTStart(np->m_accounts[account], xfer->who, filename, purple_xfer_get_size(xfer));
 
	std::string w = xfer->who;
 
	size_t pos = w.find("/");
 
	if (pos != std::string::npos)
 
		w.erase((int) pos, w.length() - (int) pos);
 
	np->m_xfers[np->m_accounts[account] + filename + w] = xfer;
 
	np->handleFTStart(np->m_accounts[account], w, filename, purple_xfer_get_size(xfer));
 
}
 

	
 
static void XferReceiveComplete(PurpleXfer *xfer) {
include/transport/filetransfer.h
Show inline comments
 
deleted file
include/transport/networkpluginserver.h
Show inline comments
 
@@ -41,6 +41,35 @@ class VCardResponder;
 
class RosterResponder;
 
class BlockResponder;
 

	
 
class DummyReadBytestream : public Swift::ReadBytestream {
 
	public:
 
		DummyReadBytestream() {m_finished = false;}
 
		virtual ~DummyReadBytestream() {}
 
		void appendData(const std::string &data) {
 
			m_data += data;
 
			onDataAvailable();
 
		}
 

	
 
		virtual std::vector<unsigned char> read(size_t size) {
 
			if (m_data.empty()) {
 
				return std::vector<unsigned char>();
 
			}
 

	
 
			if (m_data.size() < size) {
 
				m_finished = true;
 
				return std::vector<unsigned char>(m_data.begin(), m_data.end());
 
			}
 
			std::string ret = m_data.substr(0, size);
 
			m_data.erase(m_data.begin(), m_data.begin() + size);
 
			return std::vector<unsigned char>(ret.begin(), ret.end());
 
		}
 
		virtual bool isFinished() const { return m_finished; }
 

	
 
	private:
 
		bool m_finished;
 
		std::string m_data;
 
};
 

	
 
class NetworkPluginServer {
 
	public:
 
		struct Backend {
 
@@ -129,6 +158,7 @@ class NetworkPluginServer {
 
		Component *m_component;
 
		std::list<User *> m_waitingUsers;
 
		bool m_isNextLongRun;
 
		std::map<unsigned long, boost::shared_ptr<DummyReadBytestream> > m_bytestreams;
 
};
 

	
 
}
include/transport/transport.h
Show inline comments
 
@@ -94,8 +94,6 @@ namespace Transport {
 
			/// \return Swift::PresenceOracle associated with this Transport::Component.
 
			Swift::PresenceOracle *getPresenceOracle();
 

	
 
			Swift::JingleSessionManager *getJingleSessionManager() { return m_jingleSessionManager; }
 

	
 
			/// Returns True if the component is in server mode.
 

	
 
			/// \return True if the component is in server mode.
 
@@ -184,7 +182,7 @@ namespace Transport {
 
			Swift::PresenceOracle *m_presenceOracle;
 
			Swift::StanzaChannel *m_stanzaChannel;
 
			Swift::IQRouter *m_iqRouter;
 
			Swift::JingleSessionManager *m_jingleSessionManager;
 
			></i>
 
			Transport::UserRegistry *m_userRegistry;
 
			StorageBackend *m_storageBackend;
 
 			DiscoInfoResponder *m_discoInfoResponder;
include/transport/user.h
Show inline comments
 
@@ -26,6 +26,7 @@
 
#include "Swiften/Disco/EntityCapsManager.h"
 
#include "Swiften/Disco/EntityCapsProvider.h"
 
#include "storagebackend.h"
 
#include <Swiften/FileTransfer/OutgoingFileTransfer.h>
 

	
 
namespace Transport {
 

	
 
@@ -108,14 +109,18 @@ class User : public Swift::EntityCapsProvider {
 
			return m_connected;
 
		}
 

	
 
		void sendFile(const Swift::JID& from, boost::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info, unsigned long id);
 

	
 
		boost::signal<void ()> onReadyToConnect;
 
		boost::signal<void (Swift::Presence::ref presence)> onPresenceChanged;
 
		boost::signal<void (const std::string &room, const std::string &nickname, const std::string &password)> onRoomJoined;
 
		boost::signal<void (const std::string &room)> onRoomLeft;
 
		boost::signal<void ()> onDisconnected;
 
		boost::signal<void (const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long id)> onFTAccepted;
 

	
 
	private:
 
		void onConnectingTimeout();
 
		void handleFTStateChanged(Swift::FileTransfer::State state, const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long id);
 

	
 
		Swift::JID m_jid;
 
		Component *m_component;
 
@@ -133,6 +138,7 @@ class User : public Swift::EntityCapsProvider {
 
		boost::shared_ptr<Swift::Connection> connection;
 
		time_t m_lastActivity;
 
		std::map<Swift::JID, Swift::DiscoInfo::ref> m_legacyCaps;
 
		std::vector<boost::shared_ptr<Swift::OutgoingFileTransfer> > m_filetransfers;
 
};
 

	
 
}
include/transport/usermanager.h
Show inline comments
 
@@ -25,6 +25,17 @@
 
#include "Swiften/Swiften.h"
 
#include "transport/userregistry.h"
 

	
 
// FT STUFF TODO: move me
 
#include <Swiften/Elements/StreamInitiationFileInfo.h>
 
#include <Swiften/FileTransfer/ConnectivityManager.h>
 
#include <Swiften/FileTransfer/CombinedOutgoingFileTransferManager.h>
 
#include <Swiften/FileTransfer/IncomingFileTransferManager.h>
 
#include <Swiften/FileTransfer/DefaultLocalJingleTransportCandidateGeneratorFactory.h>
 
#include <Swiften/FileTransfer/DefaultRemoteJingleTransportCandidateSelectorFactory.h>
 
#include <Swiften/FileTransfer/SOCKS5BytestreamRegistry.h>
 
#include <Swiften/FileTransfer/SOCKS5BytestreamServer.h>
 
#include <Swiften/FileTransfer/SOCKS5BytestreamProxy.h>
 

	
 
namespace Transport {
 

	
 
class User;
 
@@ -112,6 +123,10 @@ class UserManager : public Swift::EntityCapsProvider {
 
		/// \param user JID of user.
 
		void disconnectUser(const Swift::JID &user);
 

	
 
		Swift::CombinedOutgoingFileTransferManager *getOutgoingFileTransferManager() {
 
			return m_outgoingFTManager;
 
		}
 

	
 
	private:
 
		void handlePresence(Swift::Presence::ref presence);
 
		void handleMessageReceived(Swift::Message::ref message);
 
@@ -131,6 +146,17 @@ class UserManager : public Swift::EntityCapsProvider {
 
		UserRegistry *m_userRegistry;
 
		Swift::Timer::ref m_removeTimer;
 
		friend class RosterResponder;
 

	
 
		// FT stuff TODO: move to separate class once we will now what will be here
 
		Swift::CombinedOutgoingFileTransferManager* m_outgoingFTManager;
 
		Swift::RemoteJingleTransportCandidateSelectorFactory* m_remoteCandidateSelectorFactory;
 
		Swift::LocalJingleTransportCandidateGeneratorFactory* m_localCandidateGeneratorFactory;
 
		Swift::JingleSessionManager *m_jingleSessionManager;
 
		Swift::SOCKS5BytestreamRegistry* m_bytestreamRegistry;
 
		Swift::SOCKS5BytestreamServer* m_bytestreamServer;
 
		Swift::SOCKS5BytestreamProxy* m_bytestreamProxy;
 
		Swift::SOCKS5BytestreamServer *bytestreamServer;
 
		Swift::ConnectivityManager* m_connectivityManager;
 
};
 

	
 
}
src/filetransfer.cpp
Show inline comments
 
deleted file
src/networkpluginserver.cpp
Show inline comments
 
@@ -41,6 +41,9 @@
 
#include "pbnetwork.pb.h"
 
#include "log4cxx/logger.h"
 

	
 
#include <Swiften/FileTransfer/ReadBytestream.h>
 
#include <Swiften/Elements/StreamInitiationFileInfo.h>
 

	
 
#ifdef _WIN32
 
#include "windows.h"
 
#else
 
@@ -54,6 +57,7 @@ using namespace log4cxx;
 
namespace Transport {
 

	
 
static unsigned long backend_id;
 
static unsigned long bytestream_id;
 

	
 
static LoggerPtr logger = Logger::getLogger("NetworkPluginServer");
 

	
 
@@ -583,8 +587,26 @@ void NetworkPluginServer::handleFTStartPayload(const std::string &data) {
 
	if (!user)
 
		return;
 

	
 
	LOG4CXX_INFO(logger, "handleFTStartPayload " << payload.filename());
 
	handleFTAccepted(user, payload.buddyname(), payload.filename(), payload.size(), 255);
 
	LOG4CXX_INFO(logger, "handleFTStartPayload " << payload.filename() << " " << payload.buddyname());
 
	
 
	LocalBuddy *buddy = (LocalBuddy *) user->getRosterManager()->getBuddy(payload.buddyname());
 
	if (!buddy) {
 
		// TODO: escape? reject?
 
		return;
 
	}
 

	
 
	Swift::StreamInitiationFileInfo fileInfo;
 
	fileInfo.setSize(payload.size());
 
	fileInfo.setName(payload.filename());
 

	
 
	boost::shared_ptr<DummyReadBytestream> bytestream(new DummyReadBytestream());
 

	
 
	LOG4CXX_INFO(logger, "jid=" << buddy->getJID());
 

	
 
	m_bytestreams[++bytestream_id] = bytestream;
 

	
 
	user->sendFile(buddy->getJID(), bytestream, fileInfo, bytestream_id);
 
// 	handleFTAccepted(user, payload.buddyname(), payload.filename(), payload.size());
 
}
 

	
 
void NetworkPluginServer::handleFTDataPayload(const std::string &data) {
 
@@ -598,6 +620,8 @@ void NetworkPluginServer::handleFTDataPayload(const std::string &data) {
 
// 	if (!user)
 
// 		return;
 

	
 
	m_bytestreams[payload.ftid()]->appendData(payload.data());
 

	
 
	LOG4CXX_INFO(logger, "handleFTDataPayload size=" << payload.data().size());
 
}
 

	
 
@@ -839,6 +863,7 @@ void NetworkPluginServer::handleUserCreated(User *user) {
 
	user->onPresenceChanged.connect(boost::bind(&NetworkPluginServer::handleUserPresenceChanged, this, user, _1));
 
	user->onRoomJoined.connect(boost::bind(&NetworkPluginServer::handleRoomJoined, this, user, _1, _2, _3));
 
	user->onRoomLeft.connect(boost::bind(&NetworkPluginServer::handleRoomLeft, this, user, _1));
 
	user->onFTAccepted.connect(boost::bind(&NetworkPluginServer::handleFTAccepted, this, user, _1, _2, _3, _4));
 
}
 

	
 
void NetworkPluginServer::handleUserReadyToConnect(User *user) {
src/transport.cpp
Show inline comments
 
@@ -125,8 +125,6 @@ Component::Component(Swift::EventLoop *loop, Swift::NetworkFactories *factories,
 
	m_discoItemsResponder = new DiscoItemsResponder(m_iqRouter);
 
	m_discoItemsResponder->start();
 

	
 
	m_jingleSessionManager = new Swift::JingleSessionManager(m_iqRouter);
 

	
 
// 
 
// 	m_registerHandler = new SpectrumRegisterHandler(m_component);
 
// 	m_registerHandler->start();
src/user.cpp
Show inline comments
 
@@ -309,4 +309,19 @@ void User::handleDisconnected(const std::string &error) {
 
	}
 
}
 

	
 
void User::handleFTStateChanged(Swift::FileTransfer::State state, const std::string &buddyName, const std::string &fileName, unsigned long size, unsigned long id) {
 
	if (state.state == Swift::FileTransfer::State::Transferring) {
 
		onFTAccepted(buddyName, fileName, size, id);
 
	}
 
}
 

	
 
void User::sendFile(const Swift::JID& from, boost::shared_ptr<Swift::ReadBytestream> byteStream, const Swift::StreamInitiationFileInfo &info, unsigned long id) {
 
	boost::shared_ptr<Swift::OutgoingFileTransfer> ft = m_userManager->getOutgoingFileTransferManager()->createOutgoingFileTransfer(from, m_jid, byteStream, info);
 
	if (ft) {
 
		m_filetransfers.push_back(ft);
 
		ft->onStateChange.connect(boost::bind(&User::handleFTStateChanged, this, _1, Buddy::JIDToLegacyName(from), info.getName(), info.getSize(), id));
 
		ft->start();
 
	}
 
}
 

	
 
}
src/usermanager.cpp
Show inline comments
 
@@ -61,6 +61,24 @@ UserManager::UserManager(Component *component, UserRegistry *userRegistry, Stora
 
	m_userRegistry->onDisconnectUser.connect(bind(&UserManager::disconnectUser, this, _1));
 

	
 
	m_removeTimer = m_component->getNetworkFactories()->getTimerFactory()->createTimer(1);
 

	
 
	// FT STUFF
 
	m_jingleSessionManager = new Swift::JingleSessionManager(m_component->getIQRouter());
 
	m_connectivityManager = new Swift::ConnectivityManager(m_component->getNetworkFactories()->getNATTraverser());
 
	m_bytestreamRegistry = new Swift::SOCKS5BytestreamRegistry();
 
	m_bytestreamProxy = new Swift::SOCKS5BytestreamProxy(m_component->getNetworkFactories()->getConnectionFactory(), m_component->getNetworkFactories()->getTimerFactory());
 

	
 
	m_localCandidateGeneratorFactory = new Swift::DefaultLocalJingleTransportCandidateGeneratorFactory(m_connectivityManager, m_bytestreamRegistry, m_bytestreamProxy, "thishouldnotbeused");
 
	m_remoteCandidateSelectorFactory = new Swift::DefaultRemoteJingleTransportCandidateSelectorFactory(m_component->getNetworkFactories()->getConnectionFactory(), m_component->getNetworkFactories()->getTimerFactory());
 

	
 
	boost::shared_ptr<Swift::ConnectionServer> server = m_component->getNetworkFactories()->getConnectionServerFactory()->createConnectionServer(19645);
 
	server->start();
 
	bytestreamServer = new Swift::SOCKS5BytestreamServer(server, m_bytestreamRegistry);
 
	bytestreamServer->start();
 

	
 
	m_outgoingFTManager = new Swift::CombinedOutgoingFileTransferManager(m_jingleSessionManager, m_component->getIQRouter(), this, m_remoteCandidateSelectorFactory, m_localCandidateGeneratorFactory, m_bytestreamRegistry, m_bytestreamProxy, m_component->getPresenceOracle(), bytestreamServer);
 

	
 
// 	m_connectivityManager->addListeningPort(19645);
 
}
 

	
 
UserManager::~UserManager(){
0 comments (0 inline, 0 general)