Moved output buffer creation/addition to LmOldSocket where it belongs.
authorMikael Hallendal <micke@imendio.com>
Sun, 13 Jul 2008 00:54:49 +0200
changeset 443 5dd3b432c53e
parent 442 33224064e97a
child 444 57c59cfdd77c
Moved output buffer creation/addition to LmOldSocket where it belongs.
loudmouth/lm-connection.c
loudmouth/lm-old-socket.c
--- a/loudmouth/lm-connection.c	Sun Jul 13 00:50:26 2008 +0200
+++ b/loudmouth/lm-connection.c	Sun Jul 13 00:54:49 2008 +0200
@@ -483,10 +483,6 @@
 	/* Check to see if there already is an output buffer, if so, add to the
 	   buffer and return */
 
-	if (lm_old_socket_output_is_buffered (connection->socket, str, len)) {
-		return TRUE;
-	}
-
 	b_written = lm_old_socket_do_write (connection->socket, str, len);
 
 	if (b_written < 0) {
@@ -497,12 +493,6 @@
 		return FALSE;
 	}
 
-	if (b_written < len) {
-		lm_old_socket_setup_output_buffer (connection->socket, 
-                                                   str + b_written, 
-                                                   len - b_written);
-	}
-
 	return TRUE;
 }
 
--- a/loudmouth/lm-old-socket.c	Sun Jul 13 00:50:26 2008 +0200
+++ b/loudmouth/lm-old-socket.c	Sun Jul 13 00:54:49 2008 +0200
@@ -152,6 +152,10 @@
 {
 	gint b_written;
 
+	if (lm_old_socket_output_is_buffered (socket, buf, len)) {
+                return len;
+        }
+
 	if (socket->ssl_started) {
 		b_written = _lm_ssl_send (socket->ssl, buf, len);
 	} else {
@@ -172,7 +176,14 @@
 		}
 	}
 
-	return b_written;
+        if (b_written < len && b_written != -1) {
+                lm_old_socket_setup_output_buffer (socket,
+                                                   buf + b_written,
+                                                   len - b_written);
+                return len;
+        }
+        
+        return b_written;
 }
 
 static gboolean