+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
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);
/*
* 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);
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,
}
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);
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:
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);
void
soup_uri_free (SoupUri *uri)
{
- g_assert (uri);
+ g_return_if_fail (uri != NULL);
g_free (uri->user);
g_free (uri->authmech);
}
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);
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*/