summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kellner <gicmo@gnome.org>2008-02-16 13:04:50 +0000
committerChristian Kellner <gicmo@src.gnome.org>2008-02-16 13:04:50 +0000
commitfe72274443caf44c3e045ef00a9490e7a606196b (patch)
tree11d0dd0ad3f2214518c22d3e28dcf7f3a2060940
parentc92234cc2570391de937cb541c6d62a2ee8d707c (diff)
downloadgvfs-fe72274443caf44c3e045ef00a9490e7a606196b.tar.gz
Use SoupSessionSync instead of SoupSessionAsync and convert SoupStreams
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. svn path=/trunk/; revision=1283
-rw-r--r--ChangeLog9
-rw-r--r--daemon/gvfsbackenddav.c80
-rw-r--r--daemon/gvfsbackendhttp.c2
-rw-r--r--daemon/soup-input-stream.c1
-rw-r--r--daemon/soup-output-stream.c1
5 files changed, 33 insertions, 60 deletions
diff --git a/ChangeLog b/ChangeLog
index f4410ca1..b49499a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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);