summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonh Wendell <jonh.wendell@oiwifi.com.br>2013-02-04 21:52:26 -0200
committerJonh Wendell <jonh.wendell@oiwifi.com.br>2013-02-06 11:32:08 -0200
commit326f5d45d7dd6bf72c07b0c37ffdbc509a9c5a91 (patch)
tree1c6391fa0b2b064f2554d99d8aa11951c28b1478
parentfe6d744b68dc118271ca95f7c6a9f989726881e1 (diff)
downloadlibsoup-326f5d45d7dd6bf72c07b0c37ffdbc509a9c5a91.tar.gz
SoupSocket: Move the creation of socket clients to a single place
Thus avoiding duplication of code in sync and async functions.
-rw-r--r--libsoup/soup-socket.c38
1 files changed, 20 insertions, 18 deletions
diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
index 6b485bab..fd70dc8f 100644
--- a/libsoup/soup-socket.c
+++ b/libsoup/soup-socket.c
@@ -697,6 +697,24 @@ socket_connected (SoupSocket *sock, GSocketConnection *conn, GError *error)
return SOUP_STATUS_OK;
}
+static GSocketClient *
+new_socket_client (SoupSocket *sock)
+{
+ SoupSocketPrivate *priv = SOUP_SOCKET_GET_PRIVATE (sock);
+ GSocketClient *client = g_socket_client_new ();
+
+ g_signal_connect (client, "event",
+ G_CALLBACK (proxy_socket_client_event), sock);
+ if (priv->use_proxy)
+ g_socket_client_add_application_proxy (client, "http");
+ else
+ g_socket_client_set_enable_proxy (client, FALSE);
+ if (priv->timeout)
+ g_socket_client_set_timeout (client, priv->timeout);
+
+ return client;
+}
+
/**
* SoupSocketCallback:
* @sock: the #SoupSocket
@@ -770,15 +788,7 @@ soup_socket_connect_async (SoupSocket *sock, GCancellable *cancellable,
if (priv->async_context && !priv->use_thread_context)
g_main_context_push_thread_default (priv->async_context);
- client = g_socket_client_new ();
- g_signal_connect (client, "event",
- G_CALLBACK (proxy_socket_client_event), sock);
- if (priv->use_proxy)
- g_socket_client_add_application_proxy (client, "http");
- else
- g_socket_client_set_enable_proxy (client, FALSE);
- if (priv->timeout)
- g_socket_client_set_timeout (client, priv->timeout);
+ client = new_socket_client (sock);
g_socket_client_connect_async (client,
G_SOCKET_CONNECTABLE (priv->remote_addr),
priv->connect_cancel,
@@ -819,15 +829,7 @@ soup_socket_connect_sync (SoupSocket *sock, GCancellable *cancellable)
cancellable = g_cancellable_new ();
priv->connect_cancel = cancellable;
- client = g_socket_client_new ();
- g_signal_connect (client, "event",
- G_CALLBACK (proxy_socket_client_event), sock);
- if (priv->use_proxy)
- g_socket_client_add_application_proxy (client, "http");
- else
- g_socket_client_set_enable_proxy (client, FALSE);
- if (priv->timeout)
- g_socket_client_set_timeout (client, priv->timeout);
+ client = new_socket_client (sock);
conn = g_socket_client_connect (client,
G_SOCKET_CONNECTABLE (priv->remote_addr),
priv->connect_cancel, &error);