| 74 PurpleConnection *gc = xfer->sg->gc; |
74 PurpleConnection *gc = xfer->sg->gc; |
| 75 char tmp[256]; |
75 char tmp[256]; |
| 76 |
76 |
| 77 if (status == SILC_CLIENT_FILE_MONITOR_CLOSED) { |
77 if (status == SILC_CLIENT_FILE_MONITOR_CLOSED) { |
| 78 /* All started sessions terminate here */ |
78 /* All started sessions terminate here */ |
| 79 xfer->xfer->data = NULL; |
79 purple_xfer_set_protocol_data(xfer->xfer, NULL); |
| 80 purple_xfer_unref(xfer->xfer); |
80 purple_xfer_unref(xfer->xfer); |
| 81 silc_free(xfer); |
81 silc_free(xfer); |
| 82 return; |
82 return; |
| 83 } |
83 } |
| 84 |
84 |
| 210 } |
210 } |
| 211 |
211 |
| 212 static void |
212 static void |
| 213 silcpurple_ftp_request_result(PurpleXfer *x) |
213 silcpurple_ftp_request_result(PurpleXfer *x) |
| 214 { |
214 { |
| 215 SilcPurpleXfer xfer = x->data; |
215 SilcPurpleXfer xfer = purple_xfer_get_protocol_data(x); |
| 216 SilcClientFileError status; |
216 SilcClientFileError status; |
| 217 PurpleConnection *gc = xfer->sg->gc; |
217 PurpleConnection *gc = xfer->sg->gc; |
| 218 SilcClientConnectionParams params; |
218 SilcClientConnectionParams params; |
| 219 gboolean local = xfer->hostname ? FALSE : TRUE; |
219 gboolean local = xfer->hostname ? FALSE : TRUE; |
| 220 char *local_ip = NULL, *remote_ip = NULL; |
220 char *local_ip = NULL, *remote_ip = NULL; |
| 335 purple_xfer_set_init_fnc(xfer->xfer, silcpurple_ftp_request_result); |
335 purple_xfer_set_init_fnc(xfer->xfer, silcpurple_ftp_request_result); |
| 336 purple_xfer_set_request_denied_fnc(xfer->xfer, silcpurple_ftp_request_denied); |
336 purple_xfer_set_request_denied_fnc(xfer->xfer, silcpurple_ftp_request_denied); |
| 337 purple_xfer_set_cancel_recv_fnc(xfer->xfer, silcpurple_ftp_cancel); |
337 purple_xfer_set_cancel_recv_fnc(xfer->xfer, silcpurple_ftp_cancel); |
| 338 xfer->xfer->remote_ip = g_strdup(hostname); |
338 xfer->xfer->remote_ip = g_strdup(hostname); |
| 339 xfer->xfer->remote_port = port; |
339 xfer->xfer->remote_port = port; |
| 340 xfer->xfer->data = xfer; |
340 purple_xfer_set_protocol_data(xfer->xfer, xfer); |
| 341 |
341 |
| 342 /* File transfer request */ |
342 /* File transfer request */ |
| 343 purple_xfer_request(xfer->xfer); |
343 purple_xfer_request(xfer->xfer); |
| 344 } |
344 } |
| 345 |
345 |
| 346 static void |
346 static void |
| 347 silcpurple_ftp_send_cancel(PurpleXfer *x) |
347 silcpurple_ftp_send_cancel(PurpleXfer *x) |
| 348 { |
348 { |
| 349 SilcPurpleXfer xfer = x->data; |
349 SilcPurpleXfer xfer = purple_xfer_get_protocol_data(x); |
| 350 |
350 |
| 351 if (!xfer) |
351 if (!xfer) |
| 352 return; |
352 return; |
| 353 |
353 |
| 354 /* This call will free all resources */ |
354 /* This call will free all resources */ |
| 356 } |
356 } |
| 357 |
357 |
| 358 static void |
358 static void |
| 359 silcpurple_ftp_send(PurpleXfer *x) |
359 silcpurple_ftp_send(PurpleXfer *x) |
| 360 { |
360 { |
| 361 SilcPurpleXfer xfer = x->data; |
361 SilcPurpleXfer xfer = purple_xfer_get_protocol_data(x); |
| 362 const char *name; |
362 const char *name; |
| 363 char *local_ip = NULL, *remote_ip = NULL; |
363 char *local_ip = NULL, *remote_ip = NULL; |
| 364 gboolean local = TRUE; |
364 gboolean local = TRUE; |
| 365 SilcClientConnectionParams params; |
365 SilcClientConnectionParams params; |
| 366 SilcSocket sock; |
366 SilcSocket sock; |
| 465 return NULL; |
465 return NULL; |
| 466 } |
466 } |
| 467 purple_xfer_set_init_fnc(xfer->xfer, silcpurple_ftp_send); |
467 purple_xfer_set_init_fnc(xfer->xfer, silcpurple_ftp_send); |
| 468 purple_xfer_set_request_denied_fnc(xfer->xfer, silcpurple_ftp_request_denied); |
468 purple_xfer_set_request_denied_fnc(xfer->xfer, silcpurple_ftp_request_denied); |
| 469 purple_xfer_set_cancel_send_fnc(xfer->xfer, silcpurple_ftp_send_cancel); |
469 purple_xfer_set_cancel_send_fnc(xfer->xfer, silcpurple_ftp_send_cancel); |
| 470 xfer->xfer->data = xfer; |
470 purple_xfer_set_protocol_data(xfer->xfer, xfer); |
| 471 |
471 |
| 472 silc_free(clients); |
472 silc_free(clients); |
| 473 |
473 |
| 474 return xfer->xfer; |
474 return xfer->xfer; |
| 475 } |
475 } |