Mercurial > pidgin
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 |