# HG changeset patch # User Mikael Hallendal # Date 1215903289 -7200 # Node ID 5dd3b432c53ec12c61255d5e9fbca9e9f0a18122 # Parent 33224064e97a5ec92fc3be17254a6d5f68d90d84 Moved output buffer creation/addition to LmOldSocket where it belongs. diff -r 33224064e97a -r 5dd3b432c53e loudmouth/lm-connection.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; } diff -r 33224064e97a -r 5dd3b432c53e loudmouth/lm-old-socket.c --- 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