Split out old_socket_do_write from lm_old_socket_do_write.
The reason for having the buffer setup split out of lm_old_socket_do_write was
that it's also used internally in LmOldSocket. Split out the part that should
not care about buffered output into old_socket_do_write.
Also renamed lm_old_socket_do_write to lm_old_socket_write.
--- a/loudmouth/lm-connection.c Sun Jul 13 01:22:50 2008 +0200
+++ b/loudmouth/lm-connection.c Sun Jul 13 10:58:09 2008 +0200
@@ -483,7 +483,7 @@
/* Check to see if there already is an output buffer, if so, add to the
buffer and return */
- b_written = lm_old_socket_do_write (connection->socket, str, len);
+ b_written = lm_old_socket_write (connection->socket, str, len);
if (b_written < 0) {
g_set_error (error,
--- a/loudmouth/lm-old-socket.c Sun Jul 13 01:22:50 2008 +0200
+++ b/loudmouth/lm-old-socket.c Sun Jul 13 10:58:09 2008 +0200
@@ -153,16 +153,12 @@
g_free (socket);
}
-gint
-lm_old_socket_do_write (LmOldSocket *socket, const gchar *buf, gint len)
+static gint
+old_socket_do_write (LmOldSocket *socket, const gchar *buf, guint len)
{
- gint b_written;
+ gint b_written;
- if (old_socket_output_is_buffered (socket, buf, len)) {
- return len;
- }
-
- if (socket->ssl_started) {
+ if (socket->ssl_started) {
b_written = _lm_ssl_send (socket->ssl, buf, len);
} else {
GIOStatus io_status = G_IO_STATUS_AGAIN;
@@ -182,6 +178,20 @@
}
}
+ return b_written;
+}
+
+gint
+lm_old_socket_write (LmOldSocket *socket, const gchar *buf, gint len)
+{
+ gint b_written;
+
+ if (old_socket_output_is_buffered (socket, buf, len)) {
+ return len;
+ }
+
+ b_written = old_socket_do_write (socket, buf, len);
+
if (b_written < len && b_written != -1) {
old_socket_setup_output_buffer (socket,
buf + b_written,
@@ -712,7 +722,7 @@
return FALSE;
}
- b_written = lm_old_socket_do_write (socket, out_buf->str, out_buf->len);
+ b_written = old_socket_do_write (socket, out_buf->str, out_buf->len);
if (b_written < 0) {
(socket->closed_func) (socket, LM_DISCONNECT_REASON_ERROR,
@@ -978,7 +988,7 @@
req.ai_protocol = IPPROTO_TCP;
#ifdef HAVE_ASYNCNS
- if (!_asyncns_prep (socket, NULL))
+ if (!old_socket_asyncns_prep (socket, NULL))
return;
socket->resolv_query =
@@ -1074,7 +1084,7 @@
lm_verbose ("Performing a SRV lookup for %s\n", srv);
#ifdef HAVE_ASYNCNS
- if (!_asyncns_prep (socket, error))
+ if (!old_socket_asyncns_prep (socket, error))
return NULL;
socket->resolv_query =
@@ -1223,7 +1233,7 @@
if (socket->resolv_query)
asyncns_cancel (socket->asyncns_ctx, socket->resolv_query);
- _asyncns_done (socket);
+ old_so_asyncns_done (socket);
}
#else
return;
--- a/loudmouth/lm-old-socket.h Sun Jul 13 01:22:50 2008 +0200
+++ b/loudmouth/lm-old-socket.h Sun Jul 13 10:58:09 2008 +0200
@@ -27,43 +27,43 @@
typedef struct _LmOldSocket LmOldSocket;
-typedef void (* IncomingDataFunc) (LmOldSocket *socket,
- const gchar *buf,
- gpointer user_data);
-
-typedef void (* SocketClosedFunc) (LmOldSocket *socket,
- LmDisconnectReason reason,
- gpointer user_data);
+typedef void (* IncomingDataFunc) (LmOldSocket *socket,
+ const gchar *buf,
+ gpointer user_data);
-typedef void (* ConnectResultFunc) (LmOldSocket *socket,
- gboolean result,
- gpointer user_data);
+typedef void (* SocketClosedFunc) (LmOldSocket *socket,
+ LmDisconnectReason reason,
+ gpointer user_data);
-gint lm_old_socket_do_write (LmOldSocket *socket,
- const gchar *buf,
- gint len);
+typedef void (* ConnectResultFunc) (LmOldSocket *socket,
+ gboolean result,
+ gpointer user_data);
-LmOldSocket * lm_old_socket_create (GMainContext *context,
- IncomingDataFunc data_func,
- SocketClosedFunc closed_func,
- ConnectResultFunc connect_func,
- gpointer user_data,
- LmConnection *connection,
- gboolean blocking,
- const gchar *server,
- const gchar *domain,
- guint port,
- LmSSL *ssl,
- LmProxy *proxy,
- GError **error);
-void lm_old_socket_flush (LmOldSocket *socket);
-void lm_old_socket_close (LmOldSocket *socket);
-LmOldSocket * lm_old_socket_ref (LmOldSocket *socket);
-void lm_old_socket_unref (LmOldSocket *socket);
-gboolean lm_old_socket_starttls (LmOldSocket *socket);
-gboolean lm_old_socket_set_keepalive (LmOldSocket *socket, int delay);
-gchar * lm_old_socket_get_local_host (LmOldSocket *socket);
-void lm_old_socket_asyncns_cancel (LmOldSocket *socket);
+LmOldSocket * lm_old_socket_create (GMainContext *context,
+ IncomingDataFunc data_func,
+ SocketClosedFunc closed_func,
+ ConnectResultFunc connect_func,
+ gpointer user_data,
+ LmConnection *connection,
+ gboolean blocking,
+ const gchar *server,
+ const gchar *domain,
+ guint port,
+ LmSSL *ssl,
+ LmProxy *proxy,
+ GError **error);
+gint lm_old_socket_write (LmOldSocket *socket,
+ const gchar *buf,
+ gint len);
+void lm_old_socket_flush (LmOldSocket *socket);
+void lm_old_socket_close (LmOldSocket *socket);
+LmOldSocket * lm_old_socket_ref (LmOldSocket *socket);
+void lm_old_socket_unref (LmOldSocket *socket);
+gboolean lm_old_socket_starttls (LmOldSocket *socket);
+gboolean lm_old_socket_set_keepalive (LmOldSocket *socket,
+ int delay);
+gchar * lm_old_socket_get_local_host (LmOldSocket *socket);
+void lm_old_socket_asyncns_cancel (LmOldSocket *socket);
#endif /* __LM_OLD_SOCKET_H__ */