comparison src/ft.c @ 9788:1e9ecca6c97e

[gaim-migrate @ 10656] "ixes sending declines when we would decline a request to an MSN file xfer. Fixes accidentally having 2 xfers of the same file in the transfer dialog when sending through MSN and SILC. Fixes crash when cancelling MSN file transfers. Should fix crash when removing old MSN transfers from the xfer window in MSN. Fixes MSN crash when the remote side sends a decline after we've canceled locally." --Dave West committer: Tailor Script <tailor@pidgin.im>
author Luke Schierer <lschiere@pidgin.im>
date Fri, 20 Aug 2004 03:44:46 +0000
parents 2356d2153c94
children 51a6a98d276b
comparison
equal deleted inserted replaced
9787:904b757835ca 9788:1e9ecca6c97e
75 ui_ops = gaim_xfer_get_ui_ops(xfer); 75 ui_ops = gaim_xfer_get_ui_ops(xfer);
76 76
77 if (ui_ops != NULL && ui_ops->destroy != NULL) 77 if (ui_ops != NULL && ui_ops->destroy != NULL)
78 ui_ops->destroy(xfer); 78 ui_ops->destroy(xfer);
79 79
80 g_free(xfer->who); 80 if( xfer->who != NULL )
81 g_free(xfer->filename); 81 g_free(xfer->who);
82 82
83 if (xfer->remote_ip != NULL) g_free(xfer->remote_ip); 83 if( xfer->filename != NULL )
84 g_free(xfer->filename);
85
86 if (xfer->remote_ip != NULL)
87 g_free(xfer->remote_ip);
84 88
85 if (xfer->local_filename != NULL) 89 if (xfer->local_filename != NULL)
86 g_free(xfer->local_filename); 90 g_free(xfer->local_filename);
87 91
88 g_free(xfer); 92 g_free(xfer);
104 xfer->ref--; 108 xfer->ref--;
105 109
106 if (xfer->ref == 0) 110 if (xfer->ref == 0)
107 gaim_xfer_destroy(xfer); 111 gaim_xfer_destroy(xfer);
108 } 112 }
113
114 static void
115 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status)
116 {
117 g_return_if_fail(xfer != NULL);
118
119 xfer->status = status;
120 }
121
109 122
110 static void gaim_xfer_show_file_error(const char *filename) 123 static void gaim_xfer_show_file_error(const char *filename)
111 { 124 {
112 char *msg = NULL; 125 char *msg = NULL;
113 126
214 static void 227 static void
215 gaim_xfer_choose_file_cancel_cb(void *user_data, const char *filename) 228 gaim_xfer_choose_file_cancel_cb(void *user_data, const char *filename)
216 { 229 {
217 GaimXfer *xfer = (GaimXfer *)user_data; 230 GaimXfer *xfer = (GaimXfer *)user_data;
218 231
232 gaim_xfer_set_status(xfer, GAIM_XFER_STATUS_CANCEL_LOCAL);
219 gaim_xfer_request_denied(xfer); 233 gaim_xfer_request_denied(xfer);
220 } 234 }
221 235
222 static int 236 static int
223 gaim_xfer_choose_file(GaimXfer *xfer) 237 gaim_xfer_choose_file(GaimXfer *xfer)
231 } 245 }
232 246
233 static int 247 static int
234 cancel_recv_cb(GaimXfer *xfer) 248 cancel_recv_cb(GaimXfer *xfer)
235 { 249 {
250 gaim_xfer_set_status(xfer, GAIM_XFER_STATUS_CANCEL_LOCAL);
236 gaim_xfer_request_denied(xfer); 251 gaim_xfer_request_denied(xfer);
237 gaim_xfer_unref(xfer); 252 gaim_xfer_unref(xfer);
238 253
239 return 0; 254 return 0;
240 } 255 }
498 g_return_val_if_fail(xfer != NULL, -1); 513 g_return_val_if_fail(xfer != NULL, -1);
499 514
500 return xfer->remote_port; 515 return xfer->remote_port;
501 } 516 }
502 517
503 static void
504 gaim_xfer_set_status(GaimXfer *xfer, GaimXferStatusType status)
505 {
506 g_return_if_fail(xfer != NULL);
507
508 xfer->status = status;
509 }
510
511 void 518 void
512 gaim_xfer_set_completed(GaimXfer *xfer, gboolean completed) 519 gaim_xfer_set_completed(GaimXfer *xfer, gboolean completed)
513 { 520 {
514 GaimXferUiOps *ui_ops; 521 GaimXferUiOps *ui_ops;
515 522
923 g_return_if_fail(xfer != NULL); 930 g_return_if_fail(xfer != NULL);
924 931
925 gaim_request_close_with_handle(xfer); 932 gaim_request_close_with_handle(xfer);
926 933
927 msg = g_strdup_printf(_("%s canceled the transfer of %s"), 934 msg = g_strdup_printf(_("%s canceled the transfer of %s"),
928 xfer->who, gaim_xfer_get_filename(xfer)); 935 xfer->who, gaim_xfer_get_filename(xfer));
929 gaim_xfer_error(gaim_xfer_get_type(xfer), xfer->who, msg); 936 gaim_xfer_error(gaim_xfer_get_type(xfer), xfer->who, msg);
930 g_free(msg); 937 g_free(msg);
931 938
932 gaim_xfer_set_status(xfer, GAIM_XFER_STATUS_CANCEL_REMOTE); 939 gaim_xfer_set_status(xfer, GAIM_XFER_STATUS_CANCEL_REMOTE);
933 940