Changeset - 50bcfbf84cb1
[Not reviewed]
0 4 0
HanzZ - 14 years ago 2011-04-03 21:15:14
hanzz.k@gmail.com
Don't store passwords to DB in server mode. Fixed disconnecting from legacy network
4 files changed with 44 insertions and 6 deletions:
0 comments (0 inline, 0 general)
include/transport/user.h
Show inline comments
 
@@ -31,6 +31,7 @@ namespace Transport {
 
class Component;
 
class RosterManager;
 
class ConversationManager;
 
class UserManager;
 
struct UserInfo;
 

	
 
/// Represents online XMPP user.
 
@@ -41,7 +42,7 @@ class User {
 
		/// \param userInfo UserInfo struct with informations needed to connect
 
		/// this user to legacy network
 
		/// \param component Component associated with this user
 
		User(const Swift::JID &jid, UserInfo &userInfo, Component * component);
 
		User(const Swift::JID &jid, UserInfo &userInfo, Component * component, UserManager *userManager);
 

	
 
		/// Destroyes User.
 
		virtual ~User();
 
@@ -72,7 +73,10 @@ class User {
 
		/// \return language
 
		const char *getLang() { return "en"; }
 

	
 
		void handleDisconnected(const std::string &error);
 

	
 
		boost::signal<void ()> onReadyToConnect;
 
		boost::signal<void ()> onDisconnected;
 

	
 
	private:
 
		void onConnectingTimeout();
 
@@ -80,6 +84,7 @@ class User {
 
		Swift::JID m_jid;
 
		Component *m_component;
 
		RosterManager *m_rosterManager;
 
		UserManager *m_userManager;
 
		ConversationManager *m_conversationManager;
 
		Swift::EntityCapsManager *m_entityCapsManager;
 
		Swift::PresenceOracle *m_presenceOracle;
spectrum/src/main.cpp
Show inline comments
 
@@ -204,6 +204,30 @@ static PurpleConversationUiOps conversation_ui_ops =
 
	NULL
 
};
 

	
 
static void connection_report_disconnect(PurpleConnection *gc, PurpleConnectionError reason, const char *text){
 
	PurpleAccount *account = purple_connection_get_account(gc);
 
	User *user = (User *) account->ui_data;
 

	
 
	if (!user)
 
		return;
 
	user->handleDisconnected(text);
 
}
 

	
 
static PurpleConnectionUiOps conn_ui_ops =
 
{
 
	NULL,
 
	NULL,
 
	NULL,//connection_disconnected,
 
	NULL,
 
	NULL,
 
	NULL,
 
	NULL,
 
	connection_report_disconnect,
 
	NULL,
 
	NULL,
 
	NULL
 
};
 

	
 
static void transport_core_ui_init(void)
 
{
 
	purple_blist_set_ui_ops(&blistUiOps);
 
@@ -211,7 +235,7 @@ static void transport_core_ui_init(void)
 
// 	purple_notify_set_ui_ops(&notifyUiOps);
 
// 	purple_request_set_ui_ops(&requestUiOps);
 
// 	purple_xfers_set_ui_ops(getXferUiOps());
 
// 	purple_connections_set_ui_ops(&conn_ui_ops);
 
	purple_connections_set_ui_ops(&conn_ui_ops);
 
	purple_conversations_set_ui_ops(&conversation_ui_ops);
 
// #ifndef WIN32
 
// 	purple_dnsquery_set_ui_ops(getDNSUiOps());
src/user.cpp
Show inline comments
 
@@ -22,17 +22,19 @@
 
#include "transport/transport.h"
 
#include "transport/storagebackend.h"
 
#include "transport/rostermanager.h"
 
#include "transport/usermanager.h"
 
#include "transport/conversationmanager.h"
 
#include "Swiften/Swiften.h"
 

	
 
namespace Transport {
 

	
 
User::User(const Swift::JID &jid, UserInfo &userInfo, Component *component) {
 
User::User(const Swift::JID &jid, UserInfo &userInfo, Component *component, UserManager *userManager) {
 
	m_jid = jid;
 

	
 
	m_component = component;
 
	m_presenceOracle = component->m_presenceOracle;
 
	m_entityCapsManager = component->m_entityCapsManager;
 
	m_userManager = userManager;
 
	m_userInfo = userInfo;
 
	m_connected = false;
 
	m_readyForConnect = false;
 
@@ -45,6 +47,7 @@ User::User(const Swift::JID &jid, UserInfo &userInfo, Component *component) {
 
}
 

	
 
User::~User(){
 
	m_reconnectTimer->stop();
 
	delete m_rosterManager;
 
	delete m_conversationManager;
 
}
 
@@ -100,4 +103,9 @@ void User::onConnectingTimeout() {
 
	onReadyToConnect();
 
}
 

	
 
void User::handleDisconnected(const std::string &error) {
 
	onDisconnected();
 
	m_userManager->removeUser(this);
 
}
 

	
 
}
src/usermanager.cpp
Show inline comments
 
@@ -102,8 +102,9 @@ void UserManager::handlePresence(Swift::Presence::ref presence) {
 
			if (res.uin.find_last_of("%") != std::string::npos) {
 
				res.uin.replace(res.uin.find_last_of("%"), 1, "@");
 
			}
 
			m_storageBackend->setUser(res);
 
			registered = m_storageBackend->getUser(userkey, res);
 
// 			m_storageBackend->setUser(res);
 
// 			registered = m_storageBackend->getUser(userkey, res);
 
			registered = true;
 
		}
 

	
 
		if (!registered) {
 
@@ -120,7 +121,7 @@ void UserManager::handlePresence(Swift::Presence::ref presence) {
 
// // 			}
 
// // 
 
// // 
 
				user = new User(presence->getFrom(), res, m_component);
 
				user = new User(presence->getFrom(), res, m_component, this);
 
				// TODO: handle features somehow
 
// // 			user->setFeatures(isVip ? CONFIG().VIPFeatures : CONFIG().transportFeatures);
 
// // // 				if (c != NULL)
0 comments (0 inline, 0 general)