aboutsummaryrefslogtreecommitdiffstats
path: root/lib/http_client.c
diff options
context:
space:
mode:
authorWilmer van der Gaast <wilmer@gaast.net>2010-07-16 00:23:04 +0100
committerWilmer van der Gaast <wilmer@gaast.net>2010-07-16 00:23:04 +0100
commit7885d0f3dc255cd7900ee1d398366636c48bcda1 (patch)
treef0ce6dfc6fbed4d5664de0bdc6bd220ac34da198 /lib/http_client.c
parente4e0b3764761c8e204bfdf169d83af950d9e6340 (diff)
Don't be a dumbass and stop following redirects if there doesn't seem to
be an end.
Diffstat (limited to 'lib/http_client.c')
-rw-r--r--lib/http_client.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/http_client.c b/lib/http_client.c
index aae5645b..dd5f5563 100644
--- a/lib/http_client.c
+++ b/lib/http_client.c
@@ -66,6 +66,7 @@ void *http_dorequest( char *host, int port, int ssl, char *request, http_input_f
req->data = data;
req->request = g_strdup( request );
req->request_length = strlen( request );
+ req->redir_ttl = 3;
return( req );
}
@@ -310,7 +311,7 @@ got_reply:
req->status_code = -1;
}
- if( req->status_code == 301 || req->status_code == 302 )
+ if( ( req->status_code == 301 || req->status_code == 302 ) && req->redir_ttl-- > 0 )
{
char *loc, *new_request, *new_host;
int error = 0, new_port, new_proto;