Moved output buffer creation/addition to LmOldSocket where it belongs.
--- 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