diff options
Diffstat (limited to 'protocols/purple/ft.c')
-rw-r--r-- | protocols/purple/ft.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/protocols/purple/ft.c b/protocols/purple/ft.c index e3a89524..c4efc657 100644 --- a/protocols/purple/ft.c +++ b/protocols/purple/ft.c @@ -74,6 +74,7 @@ static void prplcb_xfer_new( PurpleXfer *xfer ) px->xfer = xfer; px->fn = mktemp( g_strdup( "/tmp/bitlbee-purple-ft.XXXXXX" ) ); px->fd = -1; + px->ic = purple_ic_by_pa( xfer->account ); purple_xfer_set_local_filename( xfer, px->fn ); @@ -142,14 +143,14 @@ gboolean try_write_to_ui( gpointer data, gint fd, b_input_condition cond ) else { purple_xfer_cancel_local( px->xfer ); - imcb_file_canceled( ft, "Read error" ); + imcb_file_canceled( px->ic, ft, "Read error" ); } } if( lseek( px->fd, 0, SEEK_CUR ) == px->xfer->size ) { /*purple_xfer_end( px->xfer );*/ - imcb_file_finished( ft ); + imcb_file_finished( px->ic, ft ); } return FALSE; @@ -229,7 +230,7 @@ static void prplcb_xfer_cancel_remote( PurpleXfer *xfer ) struct prpl_xfer_data *px = xfer->ui_data; if( px->ft ) - imcb_file_canceled( px->ft, "Canceled by remote end" ); + imcb_file_canceled( px->ic, px->ft, "Canceled by remote end" ); else /* px->ft == NULL for sends, because of the two stages. :-/ */ imcb_error( px->ic, "File transfer cancelled by remote end" ); @@ -300,11 +301,12 @@ static void purple_transfer_forward( struct file_transfer *ft ) static gboolean purple_transfer_request_cb( gpointer data, gint fd, b_input_condition cond ) { file_transfer_t *ft = data; + struct prpl_xfer_data *px = ft->data; if( ft->write == NULL ) { ft->write = prpl_xfer_write; - imcb_file_recv_start( ft ); + imcb_file_recv_start( px->ic, ft ); } ft->write_request( ft ); @@ -318,7 +320,7 @@ static gboolean prpl_xfer_write( struct file_transfer *ft, char *buffer, unsigne if( write( px->fd, buffer, len ) != len ) { - imcb_file_canceled( ft, "Error while writing temporary file" ); + imcb_file_canceled( px->ic, ft, "Error while writing temporary file" ); return FALSE; } @@ -328,7 +330,7 @@ static gboolean prpl_xfer_write( struct file_transfer *ft, char *buffer, unsigne px->fd = -1; purple_transfer_forward( ft ); - imcb_file_finished( ft ); + imcb_file_finished( px->ic, ft ); px->ft = NULL; } else |