Mercurial > dovecot > core-2.2
changeset 16851:b4d54b6f3d10
lib-http: Added support for disabling automatic redirects.
author | Stephan Bosch <stephan@rename-it.nl> |
---|---|
date | Sat, 12 Oct 2013 10:55:38 +0300 |
parents | 2d44e9025af3 |
children | a8fe88d2286d |
files | src/lib-http/http-client-connection.c src/lib-http/http-client.c src/lib-http/http-client.h |
diffstat | 3 files changed, 7 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-http/http-client-connection.c Sat Oct 12 10:54:50 2013 +0300 +++ b/src/lib-http/http-client-connection.c Sat Oct 12 10:55:38 2013 +0300 @@ -594,8 +594,9 @@ conn->output_locked = FALSE; conn->peer->no_payload_sync = TRUE; http_client_request_retry_response(req, &response); - - } else if (response.status / 100 == 3 && response.status != 304 && + + } else if (!req->client->set.no_auto_redirect && + response.status / 100 == 3 && response.status != 304 && response.location != NULL) { /* redirect */ http_client_request_redirect(req, response.status, response.location);
--- a/src/lib-http/http-client.c Sat Oct 12 10:54:50 2013 +0300 +++ b/src/lib-http/http-client.c Sat Oct 12 10:55:38 2013 +0300 @@ -93,6 +93,7 @@ client->set.max_pipelined_requests = (set->max_pipelined_requests > 0 ? set->max_pipelined_requests : 1); client->set.max_attempts = set->max_attempts; + client->set.no_auto_redirect = set->no_auto_redirect; client->set.max_redirects = set->max_redirects; client->set.response_hdr_limits = set->response_hdr_limits; client->set.request_timeout_msecs = set->request_timeout_msecs;
--- a/src/lib-http/http-client.h Sat Oct 12 10:54:50 2013 +0300 +++ b/src/lib-http/http-client.h Sat Oct 12 10:55:38 2013 +0300 @@ -54,6 +54,9 @@ /* maximum number of pipelined requests per connection (default = 1) */ unsigned int max_pipelined_requests; + /* don't automatically act upon redirect responses */ + bool no_auto_redirect; + /* maximum number of redirects for a request (default = 0; redirects refused) */