diff src/protocols/msn/session.c @ 10602:f52ab405f1ab

[gaim-migrate @ 12032] This is patch 1112281 from Felipe Contreras, it prevents file transfers being cancelled when closing a conversation window with the sender/recipient. committer: Tailor Script <tailor@pidgin.im>
author Stu Tomlinson <stu@nosnilmot.com>
date Wed, 16 Feb 2005 20:14:12 +0000
parents 0f7452b1f777
children fe919915fceb
line wrap: on
line diff
--- a/src/protocols/msn/session.c	Wed Feb 16 03:57:23 2005 +0000
+++ b/src/protocols/msn/session.c	Wed Feb 16 20:14:12 2005 +0000
@@ -144,7 +144,8 @@
 
 /* TODO: This must go away when conversation is redesigned */
 MsnSwitchBoard *
-msn_session_find_swboard(MsnSession *session, const char *username)
+msn_session_find_swboard(MsnSession *session, const char *username,
+						 MsnSBFlag flag)
 {
 	GList *l;
 
@@ -157,16 +158,17 @@
 
 		swboard = l->data;
 
-		if (swboard->im_user != NULL)
-			if (!strcmp(username, swboard->im_user))
-				return swboard;
+		if ((swboard->im_user != NULL) &&
+			!strcmp(username, swboard->im_user) && (swboard->flag & flag))
+			return swboard;
 	}
 
 	return NULL;
 }
 
 MsnSwitchBoard *
-msn_session_find_switch_with_id(const MsnSession *session, int chat_id)
+msn_session_find_swboard_with_id(const MsnSession *session, int chat_id,
+								 MsnSBFlag flag)
 {
 	GList *l;
 
@@ -179,7 +181,7 @@
 
 		swboard = l->data;
 
-		if (swboard->chat_id == chat_id)
+		if ((swboard->chat_id == chat_id) && (swboard->flag & flag))
 			return swboard;
 	}
 
@@ -187,16 +189,18 @@
 }
 
 MsnSwitchBoard *
-msn_session_get_swboard(MsnSession *session, const char *username)
+msn_session_get_swboard(MsnSession *session, const char *username,
+						MsnSBFlag flag)
 {
 	MsnSwitchBoard *swboard;
 
-	swboard = msn_session_find_swboard(session, username);
+	swboard = msn_session_find_swboard(session, username, flag);
 
 	if (swboard == NULL)
 	{
 		swboard = msn_switchboard_new(session);
 		swboard->im_user = g_strdup(username);
+		swboard->flag = flag;
 		msn_switchboard_request(swboard);
 		msn_switchboard_request_add_user(swboard, username);
 	}