Use soup_uri_set_auth().
authorAlex Graveley <alex@ximian.com>
Fri, 26 Oct 2001 07:38:34 +0000 (07:38 +0000)
committerAlex Graveley <orph@src.gnome.org>
Fri, 26 Oct 2001 07:38:34 +0000 (07:38 +0000)
2001-10-26  Alex Graveley  <alex@ximian.com>

* src/libsoup/soup-message.c (redirect_handler): Use
soup_uri_set_auth().

* src/libsoup/soup-uri.c (soup_uri_free): Don't use g_assert.
(soup_uri_set_auth): Impl.

* src/libsoup/soup-server.c (read_headers_cb): Use
soup_message_set_context().

* src/libsoup/soup-message.c (soup_message_set_context): Impl.
(soup_message_get_context): Impl.
(redirect_handler): Use soup_message_set_context().

ChangeLog
libsoup/soup-message.c
libsoup/soup-message.h
libsoup/soup-server.c
libsoup/soup-uri.c
libsoup/soup-uri.h

index 97496ac..cf8486d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2001-10-26  Alex Graveley  <alex@ximian.com>
+
+       * src/libsoup/soup-message.c (redirect_handler): Use
+       soup_uri_set_auth().
+
+       * src/libsoup/soup-uri.c (soup_uri_free): Don't use g_assert.
+       (soup_uri_set_auth): Impl.
+
+       * src/libsoup/soup-server.c (read_headers_cb): Use
+       soup_message_set_context().
+
+       * src/libsoup/soup-message.c (soup_message_set_context): Impl.
+       (soup_message_get_context): Impl.
+       (redirect_handler): Use soup_message_set_context().
+
 2001-10-25  Alex Graveley  <alex@ximian.com>
 
        * src/libsoup/soup-message.c (redirect_handler): Handle redirects
index c1cd1e0..d79ff03 100644 (file)
@@ -576,7 +576,7 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
        if (new_loc) {
                const SoupUri *old_uri;
                SoupUri *new_uri;
-               SoupContext *new_ctx, *old_ctx;
+               SoupContext *new_ctx;
 
                old_uri = soup_context_get_uri (msg->context);
 
@@ -587,11 +587,11 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
                /* 
                 * Copy auth info from original URI.
                 */
-               if (old_uri->user && !new_uri->user) {
-                       new_uri->user = g_strdup (old_uri->user);
-                       new_uri->passwd = g_strdup (old_uri->passwd);
-                       new_uri->authmech = g_strdup (old_uri->authmech);
-               }
+               if (old_uri->user && !new_uri->user)
+                       soup_uri_set_auth (new_uri,
+                                          old_uri->user, 
+                                          old_uri->passwd, 
+                                          old_uri->authmech);
 
                new_ctx = soup_context_from_uri (new_uri);
 
@@ -600,10 +600,8 @@ redirect_handler (SoupMessage *msg, gpointer user_data)
                if (!new_ctx)
                        goto INVALID_REDIRECT;
 
-               old_ctx = msg->context;
-               msg->context = new_ctx;
-
-               soup_context_unref (old_ctx);
+               soup_message_set_context (msg, new_ctx);
+               soup_context_unref (new_ctx);
 
                soup_message_queue (msg,
                                    msg->priv->callback, 
@@ -924,6 +922,22 @@ soup_message_set_http_version  (SoupMessage *msg, SoupHttpVersion version)
 }
 
 void
+soup_message_set_context (SoupMessage       *msg,
+                         SoupContext       *new_ctx)
+{
+       soup_context_unref (msg->context);
+       msg->context = new_ctx;
+       soup_context_ref (new_ctx);
+}
+
+SoupContext *
+soup_message_get_context (SoupMessage       *msg)
+{
+       soup_context_ref (msg->context);
+       return msg->context;
+}
+
+void
 soup_message_set_error (SoupMessage *msg, SoupKnownErrorCode errcode)
 {
        g_return_if_fail (msg != NULL);
index 543498a..fe197ac 100644 (file)
@@ -126,6 +126,11 @@ typedef enum {
 void           soup_message_set_http_version    (SoupMessage       *msg,
                                                 SoupHttpVersion    version);
 
+void           soup_message_set_context         (SoupMessage       *msg,
+                                                SoupContext       *new_ctx);
+
+SoupContext   *soup_message_get_context         (SoupMessage       *msg);
+
 typedef enum {
        /*
         * SOUP_MESSAGE_NO_PIPELINE: 
index 04fb22f..172fc25 100644 (file)
@@ -197,8 +197,8 @@ read_headers_cb (const GString        *headers,
 
        if (!ctx) goto THROW_MALFORMED_HEADER;
 
-       soup_context_unref (msg->context);
-       msg->context = ctx;
+       soup_message_set_context (msg, ctx);
+       soup_context_unref (ctx);
 
        g_free (req_path);
 
index dca157d..f22231b 100644 (file)
@@ -275,7 +275,7 @@ soup_uri_copy (const SoupUri* uri)
 void
 soup_uri_free (SoupUri *uri)
 {
-       g_assert (uri);
+       g_return_if_fail (uri != NULL);
 
        g_free (uri->user);
        g_free (uri->authmech);
@@ -289,6 +289,23 @@ soup_uri_free (SoupUri *uri)
 }
 
 void
+soup_uri_set_auth  (SoupUri       *uri, 
+                   const gchar   *user, 
+                   const gchar   *passwd, 
+                   const gchar   *authmech)
+{
+       g_return_if_fail (uri != NULL);
+
+       g_free (uri->user);
+       g_free (uri->passwd);
+       g_free (uri->authmech);
+
+       uri->user = g_strdup (user);
+       uri->passwd = g_strdup (passwd);
+       uri->authmech = g_strdup (authmech);
+}
+
+void
 soup_debug_print_uri (SoupUri *uri)
 {
        g_return_if_fail (uri != NULL);
index 0ceeb61..e8adea0 100644 (file)
@@ -52,12 +52,18 @@ typedef struct {
        gchar             **query_elems;
 } SoupUri;
 
-SoupUri *soup_uri_new       (const gchar *uri_string);
+SoupUri *soup_uri_new       (const gchar   *uri_string);
 
-gchar   *soup_uri_to_string (const SoupUri *uri, gboolean show_password);
+gchar   *soup_uri_to_string (const SoupUri *uri, 
+                            gboolean       show_password);
 
 SoupUri *soup_uri_copy      (const SoupUri *uri);
 
-void     soup_uri_free      (SoupUri *uri);
+void     soup_uri_free      (SoupUri       *uri);
+
+void     soup_uri_set_auth  (SoupUri       *uri, 
+                            const gchar   *user, 
+                            const gchar   *passwd, 
+                            const gchar   *authmech);
 
 #endif /*SOUP_URI_H*/