summaryrefslogtreecommitdiff
path: root/libsoup/soup-session.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <cgarcia@igalia.com>2020-10-28 09:41:36 +0100
committerCarlos Garcia Campos <cgarcia@igalia.com>2020-11-04 06:25:02 +0100
commit446dc26155638c1b8b187119ae35d1f527d90fed (patch)
tree18521ef30bf53df088b1ef4a5686032ff75dc822 /libsoup/soup-session.c
parent3485d82b7fc4451006f9b5a94fe143efab9b2a9d (diff)
downloadlibsoup-446dc26155638c1b8b187119ae35d1f527d90fed.tar.gz
connection: move client side impl from SoupSocket to SoupConnection
Diffstat (limited to 'libsoup/soup-session.c')
-rw-r--r--libsoup/soup-session.c48
1 files changed, 22 insertions, 26 deletions
diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
index 76f3ea88..6e9e4aca 100644
--- a/libsoup/soup-session.c
+++ b/libsoup/soup-session.c
@@ -1360,15 +1360,13 @@ tunnel_complete (SoupMessageQueueItem *tunnel_item,
}
static void
-tunnel_handshake_complete (GObject *object,
- GAsyncResult *result,
- gpointer user_data)
+tunnel_handshake_complete (SoupConnection *conn,
+ GAsyncResult *result,
+ SoupMessageQueueItem *tunnel_item)
{
- SoupConnection *conn = SOUP_CONNECTION (object);
- SoupMessageQueueItem *tunnel_item = user_data;
GError *error = NULL;
- soup_connection_start_ssl_finish (conn, result, &error);
+ soup_connection_tunnel_handshake_finish (conn, result, &error);
tunnel_complete (tunnel_item, 0, error);
}
@@ -1404,13 +1402,17 @@ tunnel_message_completed (SoupMessage *msg, SoupMessageIOCompletion completion,
}
if (tunnel_item->async) {
- soup_connection_start_ssl_async (item->conn, item->cancellable,
- tunnel_handshake_complete,
- tunnel_item);
+ soup_connection_tunnel_handshake_async (item->conn,
+ item->task ?
+ g_task_get_priority (item->task) :
+ G_PRIORITY_DEFAULT,
+ item->cancellable,
+ (GAsyncReadyCallback)tunnel_handshake_complete,
+ tunnel_item);
} else {
GError *error = NULL;
- soup_connection_start_ssl_sync (item->conn, item->cancellable, &error);
+ soup_connection_tunnel_handshake (item->conn, item->cancellable, &error);
tunnel_complete (tunnel_item, 0, error);
}
}
@@ -1643,13 +1645,17 @@ get_connection (SoupMessageQueueItem *item, gboolean *should_cleanup)
if (item->async) {
soup_message_queue_item_ref (item);
- soup_connection_connect_async (item->conn, item->cancellable,
+ soup_connection_connect_async (item->conn,
+ item->task ?
+ g_task_get_priority (item->task) :
+ G_PRIORITY_DEFAULT,
+ item->cancellable,
connect_async_complete, item);
return FALSE;
} else {
GError *error = NULL;
- soup_connection_connect_sync (item->conn, item->cancellable, &error);
+ soup_connection_connect (item->conn, item->cancellable, &error);
connect_complete (item, conn, error);
return TRUE;
@@ -3934,7 +3940,6 @@ steal_connection (SoupSession *session,
{
SoupSessionPrivate *priv = soup_session_get_instance_private (session);
SoupConnection *conn;
- SoupSocket *sock;
SoupSessionHost *host;
GIOStream *stream;
@@ -3947,19 +3952,10 @@ steal_connection (SoupSession *session,
drop_connection (session, host, conn);
g_mutex_unlock (&priv->conn_lock);
- sock = soup_connection_get_socket (conn);
- g_object_set (sock,
- "timeout", 0,
- NULL);
-
- if (item->connect_only)
- stream = g_object_ref (soup_socket_get_connection (sock));
- else
- stream = soup_message_io_steal (item->msg);
- g_object_set_data_full (G_OBJECT (stream), "GSocket",
- soup_socket_steal_gsocket (sock),
- g_object_unref);
- g_object_unref (conn);
+ stream = soup_connection_steal_iostream (conn);
+ if (!item->connect_only)
+ soup_message_io_stolen (item->msg);
+ g_object_unref (conn);
return stream;
}