libpurple/protocols/mxit/filexfer.c

branch
soc.2013.gobjectification
changeset 34915
499ffff1e77c
parent 34912
539b7b4d1949
child 34920
2df7191f56ea
--- a/libpurple/protocols/mxit/filexfer.c	Fri Sep 06 00:39:40 2013 +0530
+++ b/libpurple/protocols/mxit/filexfer.c	Fri Sep 06 01:08:25 2013 +0530
@@ -167,7 +167,7 @@
 		filesize = purple_xfer_get_bytes_remaining( xfer );
 		buffer = g_malloc( filesize );
 
-		if ( fread( buffer, filesize, 1, xfer->dest_fp ) > 0 ) {
+		if ( purple_xfer_read_file( xfer, buffer, filesize ) > 0 ) {
 			/* send data */
 			wrote = purple_xfer_write( xfer, buffer, filesize );
 			if ( wrote > 0 )
@@ -282,6 +282,21 @@
  * Callbacks from libPurple
  */
 
+
+static PurpleXferIoOps send_ops =
+{
+	mxit_xfer_init,         /* init */
+	NULL,                   /* request_denied */
+	mxit_xfer_start,        /* start */
+	mxit_xfer_end,          /* end */
+	mxit_xfer_cancel_send,  /* cancel_send */
+	NULL,                   /* cancel_recv */
+	NULL,                   /* read */
+	mxit_xfer_write,        /* write */
+	NULL,                   /* ack */
+};
+
+
 /*------------------------------------------------------------------------
  * Indicate if file transfers are supported to this contact.
  * For MXit file transfers are always supported.
@@ -315,13 +330,7 @@
 	mx = g_new0( struct mxitxfer, 1 );
 	mx->session = session;
 	purple_xfer_set_protocol_data( xfer, mx );
-
-	/* configure callbacks (reference: "libpurple/xfer.h") */
-	purple_xfer_set_init_fnc( xfer, mxit_xfer_init );
-	purple_xfer_set_start_fnc( xfer, mxit_xfer_start );
-	purple_xfer_set_end_fnc( xfer, mxit_xfer_end );
-	purple_xfer_set_cancel_send_fnc( xfer, mxit_xfer_cancel_send );
-	purple_xfer_set_write_fnc( xfer, mxit_xfer_write );
+	purple_xfer_set_io_ops( xfer, &send_ops );
 
 	return xfer;
 }
@@ -349,6 +358,21 @@
  * Calls from the MXit Protocol layer
  */
 
+
+static PurpleXferIoOps recieve_ops =
+{
+	mxit_xfer_init,            /* init */
+	mxit_xfer_request_denied,  /* request_denied */
+	NULL,                      /* start */
+	mxit_xfer_end,             /* end */
+	NULL,                      /* cancel_send */
+	mxit_xfer_cancel_recv,     /* cancel_recv */
+	NULL,                      /* read */
+	NULL,                      /* write */
+	NULL,                      /* ack */
+};
+
+
 /*------------------------------------------------------------------------
  * A file transfer offer has been received from the MXit server.
  *
@@ -377,11 +401,7 @@
 		if( filesize > 0 )
 			purple_xfer_set_size( xfer, filesize );
 
-		/* register file transfer callback functions */
-		purple_xfer_set_init_fnc( xfer, mxit_xfer_init );
-		purple_xfer_set_request_denied_fnc( xfer, mxit_xfer_request_denied );
-		purple_xfer_set_cancel_recv_fnc( xfer, mxit_xfer_cancel_recv );
-		purple_xfer_set_end_fnc( xfer, mxit_xfer_end );
+		purple_xfer_set_io_ops( xfer, &recieve_ops );
 
 		/* give the request to the user to accept/deny */
 		purple_xfer_request( xfer );
@@ -443,7 +463,7 @@
 		g_object_ref( xfer );
 		purple_xfer_start( xfer, -1, NULL, 0 );
 
-		if ( fwrite( data, datalen, 1, xfer->dest_fp ) > 0 ) {
+		if ( purple_xfer_write_file( xfer, (const guchar *)data, datalen ) ) {
 			g_object_unref( xfer );
 			purple_xfer_set_completed( xfer, TRUE );
 			purple_xfer_end( xfer );

mercurial