summaryrefslogtreecommitdiff
path: root/libsoup/soup-auth.c
diff options
context:
space:
mode:
Diffstat (limited to 'libsoup/soup-auth.c')
-rw-r--r--libsoup/soup-auth.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libsoup/soup-auth.c b/libsoup/soup-auth.c
index dd282925..1ffc8b83 100644
--- a/libsoup/soup-auth.c
+++ b/libsoup/soup-auth.c
@@ -673,7 +673,8 @@ static AuthScheme known_auth_schemes [] = {
};
SoupAuth *
-soup_auth_new_from_header_list (const GSList *vals)
+soup_auth_new_from_header_list (const SoupUri *uri,
+ const GSList *vals)
{
gchar *header = NULL;
AuthScheme *scheme = NULL, *iter;
@@ -682,9 +683,14 @@ soup_auth_new_from_header_list (const GSList *vals)
g_return_val_if_fail (vals != NULL, NULL);
while (vals) {
- for (iter = known_auth_schemes; iter->scheme; iter++) {
- gchar *tryheader = vals->data;
+ gchar *tryheader = vals->data;
+ for (iter = known_auth_schemes; iter->scheme; iter++) {
+ if (uri->authmech &&
+ g_strncasecmp (uri->authmech,
+ iter->scheme,
+ strlen (iter->scheme)) != 0)
+ continue;
if (!g_strncasecmp (tryheader,
iter->scheme,
strlen (iter->scheme))) {