diff src/protocols/msn/msn.c @ 12143:cbebda5f019c

[gaim-migrate @ 14444] SF Patch #1360399 from Evan Schoenberg (evands) "I discussed this previously with Mark and he said it'd be fine. This factors out the part of the send_file function which creates a new GaimXfer into a separate prpl function, new_xfer. It's called in each of the existing send_file functions. This is needed so that another client (okay, Adium) can get a new outgoing GaimXfer from a prpl without depending upon the specific ft.c logic of send_file; previously I was adding a duplicate method to each prpl and then calling it directly." I fixed a couple small bugs in this. Otherwise, it looks good, and seems like a reasonable libgaim request. committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Sat, 19 Nov 2005 00:26:12 +0000
parents c824e39db0e7
children 58685e2d472b
line wrap: on
line diff
--- a/src/protocols/msn/msn.c	Sat Nov 19 00:16:45 2005 +0000
+++ b/src/protocols/msn/msn.c	Sat Nov 19 00:26:12 2005 +0000
@@ -422,22 +422,30 @@
 	msn_slplink_request_ft(slplink, xfer);
 }
 
-static void
-msn_send_file(GaimConnection *gc, const char *who, const char *file)
+static GaimXfer*
+msn_new_xfer(GaimConnection *gc, const char *who)
 {
 	MsnSession *session;
 	MsnSlpLink *slplink;
 	GaimXfer *xfer;
-
+	
 	session = gc->proto_data;
-
+	
 	xfer = gaim_xfer_new(gc->account, GAIM_XFER_SEND, who);
+	
+	slplink = msn_session_get_slplink(session, who);
+	
+	xfer->data = slplink;
+	
+	gaim_xfer_set_init_fnc(xfer, t_msn_xfer_init);	
+	
+	return xfer;
+}
 
-	slplink = msn_session_get_slplink(session, who);
-
-	xfer->data = slplink;
-
-	gaim_xfer_set_init_fnc(xfer, t_msn_xfer_init);
+static void
+msn_send_file(GaimConnection *gc, const char *who, const char *file)
+{
+	GaimXfer *xfer = msn_new_xfer(gc, who);
 
 	if (file)
 		gaim_xfer_request_accepted(xfer, file);
@@ -1905,7 +1913,8 @@
 	NULL,					/* roomlist_cancel */
 	NULL,					/* roomlist_expand_category */
 	msn_can_receive_file,	/* can_receive_file */
-	msn_send_file			/* send_file */
+	msn_send_file,			/* send_file */
+	msn_new_xfer			/* new_xfer */
 };
 
 static GaimPluginInfo info =