diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | daemon/gvfsbackenddav.c | 80 | ||||
-rw-r--r-- | daemon/gvfsbackendhttp.c | 2 | ||||
-rw-r--r-- | daemon/soup-input-stream.c | 1 | ||||
-rw-r--r-- | daemon/soup-output-stream.c | 1 |
5 files changed, 33 insertions, 60 deletions
@@ -1,3 +1,12 @@ +2008-02-16 Christian Kellner <gicmo@gnome.org> + + * daemon/gvfsbackenddav.c: + * daemon/gvfsbackendhttp.c: + * daemon/soup-input-stream.c: + * daemon/soup-output-stream.c: + Use SoupSessionSync instead of SoupSessionAsync and + convert SoupStreams and authentication logic. + 2008-02-15 Christian Kellner <gicmo@gnome.org> * daemon/gvfsjobenumerate.c: diff --git a/daemon/gvfsbackenddav.c b/daemon/gvfsbackenddav.c index d52432fd..5100bfd0 100644 --- a/daemon/gvfsbackenddav.c +++ b/daemon/gvfsbackenddav.c @@ -720,11 +720,6 @@ typedef struct _MountOpData { char *last_good_path; - /* general authentication */ - - SoupMessage *message; - SoupAuth *auth; - /* for server authentication */ char *username; char *password; @@ -748,12 +743,6 @@ mount_op_data_free (gpointer _data) if (data->mount_source) g_object_unref (data->mount_source); - if (data->message) - g_object_unref (data->message); - - if (data->auth) - g_object_unref (data->auth); - g_free (data->username); g_free (data->password); g_free (data->last_realm); @@ -764,57 +753,28 @@ mount_op_data_free (gpointer _data) } static void -ask_password_ready (GObject *source_object, - GAsyncResult *result, - gpointer user_data) -{ - MountOpData *data; - char *username; - char *password; - gboolean aborted; - gboolean res; - - data = (MountOpData *) user_data; - username = password = NULL; - - res = g_mount_source_ask_password_finish (data->mount_source, - result, - &aborted, - &password, - &username, - NULL); - - if (res && !aborted) - soup_auth_authenticate (data->auth, username, password); - - soup_session_unpause_message (data->session, data->message); - - g_free (username); - g_free (password); - - g_object_unref (data->message); - g_object_unref (data->auth); - - data->message = NULL; - data->auth = NULL; -} - -static void soup_authenticate (SoupSession *session, SoupMessage *msg, SoupAuth *auth, gboolean retrying, gpointer user_data) { - MountOpData *data; - const char *username; - const char *password; - char *prompt; + MountOpData *data; + const char *username; + const char *password; + gboolean res; + gboolean aborted; + char *new_username; + char *new_password; + char *prompt; g_print ("+ soup_authenticate \n"); data = (MountOpData *) user_data; + new_username = NULL; + new_password = NULL; + if (soup_auth_is_for_proxy (auth)) { username = data->proxy_user; @@ -848,19 +808,25 @@ soup_authenticate (SoupSession *session, prompt = g_strdup_printf (_("Enter password for %s"), auth_realm); } - data->auth = g_object_ref (auth); - data->message = g_object_ref (msg); - soup_session_pause_message (data->session, msg); - g_mount_source_ask_password_async (data->mount_source, + res = g_mount_source_ask_password (data->mount_source, prompt, username, NULL, G_ASK_PASSWORD_NEED_PASSWORD | G_ASK_PASSWORD_NEED_USERNAME, - ask_password_ready, - data); + &aborted, + &new_password, + &new_username, + NULL); + if (res && !aborted) + soup_auth_authenticate (auth, new_username, new_password); + + g_free (new_password); + g_free (new_username); + + g_print ("- soup_authenticate \n"); g_free (prompt); } diff --git a/daemon/gvfsbackendhttp.c b/daemon/gvfsbackendhttp.c index a7b8daee..4eaa326b 100644 --- a/daemon/gvfsbackendhttp.c +++ b/daemon/gvfsbackendhttp.c @@ -76,7 +76,7 @@ g_vfs_backend_http_init (GVfsBackendHttp *backend) { g_vfs_backend_set_user_visible (G_VFS_BACKEND (backend), FALSE); - backend->session = soup_session_async_new (); + backend->session = soup_session_sync_new (); } SoupURI * diff --git a/daemon/soup-input-stream.c b/daemon/soup-input-stream.c index 6d2af4e3..c02018f6 100644 --- a/daemon/soup-input-stream.c +++ b/daemon/soup-input-stream.c @@ -207,7 +207,6 @@ soup_input_stream_new (SoupSession *session, SoupMessage *msg) SoupInputStream *stream; SoupInputStreamPrivate *priv; - g_return_val_if_fail (SOUP_IS_SESSION_ASYNC (session), NULL); g_return_val_if_fail (SOUP_IS_MESSAGE (msg), NULL); stream = g_object_new (SOUP_TYPE_INPUT_STREAM, NULL); diff --git a/daemon/soup-output-stream.c b/daemon/soup-output-stream.c index 0bca29bb..2d53e944 100644 --- a/daemon/soup-output-stream.c +++ b/daemon/soup-output-stream.c @@ -163,7 +163,6 @@ soup_output_stream_new (SoupSession *session, SoupMessage *msg, goffset size) SoupOutputStream *stream; SoupOutputStreamPrivate *priv; - g_return_val_if_fail (SOUP_IS_SESSION_ASYNC (session), NULL); g_return_val_if_fail (SOUP_IS_MESSAGE (msg), NULL); stream = g_object_new (SOUP_TYPE_OUTPUT_STREAM, NULL); |