summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2014-07-01 22:51:39 +0100
committerRoss Lagerwall <rosslagerwall@gmail.com>2014-07-25 17:12:34 +0100
commitbe4fc6f8e8a33e5d6c84d4e2959b3f6d4377f442 (patch)
treee891d8e8876f8b2025cc88d6e4bcede0c08ed529
parent2744d498095aeca09308819bca42d0fe287523d0 (diff)
downloadgvfs-be4fc6f8e8a33e5d6c84d4e2959b3f6d4377f442.tar.gz
http: Remove use of SoupSessionSync/SoupSessionAsync
Since libsoup 2.42.0, SoupSessionSync/SoupSessionAsync are deprecated, and replaced by direct use of SoupSession as described on https://developer.gnome.org/libsoup/stable/libsoup-session-porting.html This commit removes use of SoupSessionSync/SoupSessionAsync and adjusts the code according to the advice in the doc above: - we only need one SoupSession instance as sync/async calls are made depending on the SoupSession method we use, not depending on the instance type - SoupSession already comes with a SoupProxyResolverDefault, we don't need to add it ourselves - SoupSession already comes with a SoupContentDecoder, we don't need to add it ourselves - SoupSession:use-thread-context is now unused and always set to TRUE, so we don't need to change it To prevent any changes in behavior, we set ssl-strict to FALSE. (Patch updated by Ross Lagerwall) (Reapplying now that #732783 and #732925 have been fixed.) https://bugzilla.gnome.org/show_bug.cgi?id=708306 https://bugzilla.gnome.org/show_bug.cgi?id=732090
-rw-r--r--daemon/gvfsbackenddav.c17
-rw-r--r--daemon/gvfsbackendhttp.c36
-rw-r--r--daemon/gvfsbackendhttp.h2
3 files changed, 12 insertions, 43 deletions
diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c
index 42a966a9..d88e4fc8 100644
--- a/daemon/gvfsbackenddav.c
+++ b/daemon/gvfsbackenddav.c
@@ -1939,11 +1939,6 @@ do_mount (GVfsBackend *backend,
g_object_unref (msg_opts);
g_object_unref (msg_stat);
- /* also auth the async session */
- g_signal_connect (G_VFS_BACKEND_HTTP (backend)->session_async, "authenticate",
- G_CALLBACK (soup_authenticate_from_data),
- data);
-
g_vfs_job_succeeded (G_VFS_JOB (job));
g_debug ("- mount\n");
}
@@ -2556,7 +2551,7 @@ try_close_write (GVfsBackend *backend,
soup_message_set_request (msg, "application/octet-stream",
SOUP_MEMORY_TAKE, data, length);
- soup_session_queue_message (G_VFS_BACKEND_HTTP (backend)->session_async,
+ soup_session_queue_message (G_VFS_BACKEND_HTTP (backend)->session,
msg, try_close_write_sent, job);
return TRUE;
@@ -2904,7 +2899,7 @@ push_read_cb (GObject *source, GAsyncResult *res, gpointer user_data)
soup_message_body_append_take (handle->msg->request_body, handle->buf, n);
handle->buf = NULL;
handle->n_read += n;
- soup_session_unpause_message (G_VFS_BACKEND_HTTP (handle->backend)->session_async,
+ soup_session_unpause_message (G_VFS_BACKEND_HTTP (handle->backend)->session,
handle->msg);
}
else if (n == 0)
@@ -2919,7 +2914,7 @@ push_read_cb (GObject *source, GAsyncResult *res, gpointer user_data)
G_IO_ERROR_FAILED,
_("File length changed during transfer"));
- soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session_async,
+ soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session,
handle->msg,
SOUP_STATUS_CANCELLED);
}
@@ -2930,7 +2925,7 @@ push_read_cb (GObject *source, GAsyncResult *res, gpointer user_data)
handle->buf = NULL;
g_vfs_job_failed_from_error (handle->job, error);
g_error_free (error);
- soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session_async,
+ soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session,
handle->msg,
SOUP_STATUS_CANCELLED);
}
@@ -2963,7 +2958,7 @@ push_write_next_chunk (SoupMessage *msg, gpointer user_data)
{
g_vfs_job_failed_from_error (handle->job, error);
g_error_free (error);
- soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session_async,
+ soup_session_cancel_message (G_VFS_BACKEND_HTTP (handle->backend)->session,
handle->msg,
SOUP_STATUS_CANCELLED);
return;
@@ -3072,7 +3067,7 @@ push_stat_dest_cb (SoupSession *session, SoupMessage *msg, gpointer user_data)
g_signal_connect (handle->msg, "wrote-body-data",
G_CALLBACK (push_wrote_body_data), handle);
- soup_session_queue_message (G_VFS_BACKEND_HTTP (handle->backend)->session_async,
+ soup_session_queue_message (G_VFS_BACKEND_HTTP (handle->backend)->session,
handle->msg,
push_done, handle);
}
diff --git a/daemon/gvfsbackendhttp.c b/daemon/gvfsbackendhttp.c
index 963c78bd..763b7db2 100644
--- a/daemon/gvfsbackendhttp.c
+++ b/daemon/gvfsbackendhttp.c
@@ -66,9 +66,6 @@ g_vfs_backend_http_finalize (GObject *object)
soup_session_abort (backend->session);
g_object_unref (backend->session);
- soup_session_abort (backend->session_async);
- g_object_unref (backend->session_async);
-
if (G_OBJECT_CLASS (g_vfs_backend_http_parent_class)->finalize)
(*G_OBJECT_CLASS (g_vfs_backend_http_parent_class)->finalize) (object);
@@ -80,44 +77,24 @@ static void
g_vfs_backend_http_init (GVfsBackendHttp *backend)
{
const char *debug;
- SoupSessionFeature *proxy_resolver;
SoupSessionFeature *cookie_jar;
- SoupSessionFeature *content_decoder;
g_vfs_backend_set_user_visible (G_VFS_BACKEND (backend), FALSE);
- backend->session = soup_session_sync_new_with_options ("user-agent",
- "gvfs/" VERSION,
- NULL);
-
- backend->session_async = soup_session_async_new_with_options ("user-agent",
- "gvfs/" VERSION,
- NULL);
- /* SoupRequester seems to depend on use-thread-context */
- g_object_set (G_OBJECT (backend->session_async), "use-thread-context", TRUE, NULL);
+ backend->session = soup_session_new_with_options ("user-agent",
+ "gvfs/" VERSION,
+ NULL);
- /* Proxy handling */
- proxy_resolver = g_object_new (SOUP_TYPE_PROXY_RESOLVER_DEFAULT, NULL);
- soup_session_add_feature (backend->session, proxy_resolver);
- soup_session_add_feature (backend->session_async, proxy_resolver);
- g_object_unref (proxy_resolver);
+ g_object_set (backend->session, "ssl-strict", FALSE, NULL);
/* Cookie handling - stored temporarlly in memory, mostly useful for
* authentication in WebDAV. */
cookie_jar = g_object_new (SOUP_TYPE_COOKIE_JAR, NULL);
soup_session_add_feature (backend->session, cookie_jar);
- soup_session_add_feature (backend->session_async, cookie_jar);
g_object_unref (cookie_jar);
/* Send Accept-Language header (see bug 166795) */
g_object_set (backend->session, "accept-language-auto", TRUE, NULL);
- g_object_set (backend->session_async, "accept-language-auto", TRUE, NULL);
-
- /* Handle decompression automatically */
- content_decoder = g_object_new (SOUP_TYPE_CONTENT_DECODER, NULL);
- soup_session_add_feature (backend->session, content_decoder);
- soup_session_add_feature (backend->session_async, content_decoder);
- g_object_unref (content_decoder);
/* Logging */
debug = g_getenv ("GVFS_HTTP_DEBUG");
@@ -136,7 +113,6 @@ g_vfs_backend_http_init (GVfsBackendHttp *backend)
logger = soup_logger_new (level, DEBUG_MAX_BODY_SIZE);
soup_session_add_feature (backend->session, SOUP_SESSION_FEATURE (logger));
- soup_session_add_feature (backend->session_async, SOUP_SESSION_FEATURE (logger));
g_object_unref (logger);
}
@@ -282,7 +258,7 @@ http_backend_queue_message (GVfsBackend *backend,
{
GVfsBackendHttp *op_backend = G_VFS_BACKEND_HTTP (backend);
- soup_session_queue_message (op_backend->session_async, msg,
+ soup_session_queue_message (op_backend->session, msg,
callback, user_data);
}
/* ************************************************************************* */
@@ -410,7 +386,7 @@ http_backend_open_for_read (GVfsBackend *backend,
op_backend = G_VFS_BACKEND_HTTP (backend);
- stream = g_vfs_http_input_stream_new (op_backend->session_async, uri);
+ stream = g_vfs_http_input_stream_new (op_backend->session, uri);
g_vfs_http_input_stream_send_async (stream,
G_PRIORITY_DEFAULT,
diff --git a/daemon/gvfsbackendhttp.h b/daemon/gvfsbackendhttp.h
index 8ff943ca..f132c568 100644
--- a/daemon/gvfsbackendhttp.h
+++ b/daemon/gvfsbackendhttp.h
@@ -51,8 +51,6 @@ struct _GVfsBackendHttp
SoupURI *mount_base;
SoupSession *session;
-
- SoupSession *session_async;
};
GType g_vfs_backend_http_get_type (void) G_GNUC_CONST;