libpurple/protocols/oscar/peer.c

branch
soc.2013.gobjectification
changeset 34529
68cf25486001
parent 33894
7e3ea8475aad
child 34622
753f46dd000f
--- a/libpurple/protocols/oscar/peer.c	Wed Jun 12 10:20:03 2013 +0530
+++ b/libpurple/protocols/oscar/peer.c	Wed Jun 12 18:58:24 2013 +0530
@@ -115,7 +115,7 @@
 	conn->od = od;
 	conn->type = type;
 	conn->bn = g_strdup(bn);
-	conn->buffer_outgoing = purple_circ_buffer_new(0);
+	conn->buffer_outgoing = purple_circular_buffer_new(0);
 	conn->listenerfd = -1;
 	conn->fd = -1;
 	conn->lastactivity = time(NULL);
@@ -189,8 +189,8 @@
 	conn->buffer_incoming.len = 0;
 	conn->buffer_incoming.offset = 0;
 
-	purple_circ_buffer_destroy(conn->buffer_outgoing);
-	conn->buffer_outgoing = purple_circ_buffer_new(0);
+	g_object_unref(G_OBJECT(conn->buffer_outgoing));
+	conn->buffer_outgoing = purple_circular_buffer_new(0);
 
 	conn->flags &= ~PEER_CONNECTION_FLAG_IS_INCOMING;
 }
@@ -234,7 +234,7 @@
 	g_free(conn->clientip);
 	g_free(conn->verifiedip);
 	g_free(conn->xferdata.name);
-	purple_circ_buffer_destroy(conn->buffer_outgoing);
+	g_object_unref(G_OBJECT(conn->buffer_outgoing));
 
 	conn->od->peer_connections = g_slist_remove(conn->od->peer_connections, conn);
 
@@ -408,9 +408,10 @@
 	PeerConnection *conn;
 	gsize writelen;
 	gssize wrotelen;
+	const gchar *output = NULL;
 
 	conn = data;
-	writelen = purple_circ_buffer_get_max_read(conn->buffer_outgoing);
+	writelen = purple_circular_buffer_get_max_read(conn->buffer_outgoing);
 
 	if (writelen == 0)
 	{
@@ -433,12 +434,13 @@
 		 * file transfer.  Somebody should teach those guys how to
 		 * write good TCP code.
 		 */
-		conn->buffer_outgoing->inptr = conn->buffer_outgoing->buffer;
-		conn->buffer_outgoing->outptr = conn->buffer_outgoing->buffer;
+		purple_circular_buffer_reset(conn->buffer_outgoing);
 		return;
 	}
 
-	wrotelen = send(conn->fd, conn->buffer_outgoing->outptr, writelen, 0);
+	output = purple_circular_buffer_get_output(conn->buffer_outgoing);
+
+	wrotelen = send(conn->fd, output, writelen, 0);
 	if (wrotelen <= 0)
 	{
 		if (wrotelen < 0 && ((errno == EAGAIN) || (errno == EWOULDBLOCK)))
@@ -465,7 +467,7 @@
 		return;
 	}
 
-	purple_circ_buffer_mark_read(conn->buffer_outgoing, wrotelen);
+	purple_circular_buffer_mark_read(conn->buffer_outgoing, wrotelen);
 	conn->lastactivity = time(NULL);
 }
 
@@ -478,7 +480,7 @@
 peer_connection_send(PeerConnection *conn, ByteStream *bs)
 {
 	/* Add everything to our outgoing buffer */
-	purple_circ_buffer_append(conn->buffer_outgoing, bs->data, bs->len);
+	purple_circular_buffer_append(conn->buffer_outgoing, bs->data, bs->len);
 
 	/* If we haven't already started writing stuff, then start the cycle */
 	if ((conn->watcher_outgoing == 0) && (conn->fd >= 0))

mercurial