1
0
mirror of https://github.com/moparisthebest/curl synced 2024-12-23 08:38:49 -05:00

urldata: move 'followlocation' to UrlState

As this is a state variable it does not belong in UserDefined which is
used to store values set by the user.

Closes #6582
This commit is contained in:
Daniel Stenberg 2021-02-08 23:00:21 +01:00
parent 13d8a56408
commit f1e5e49879
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2
3 changed files with 6 additions and 6 deletions

View File

@ -5,7 +5,7 @@
* | (__| |_| | _ <| |___ * | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____| * \___|\___/|_| \_\_____|
* *
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al. * Copyright (C) 1998 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al.
* *
* This software is licensed as described in the file COPYING, which * This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms * you should have received as part of this distribution. The terms
@ -235,7 +235,7 @@ static CURLcode getinfo_long(struct Curl_easy *data, CURLINFO info,
break; break;
#endif #endif
case CURLINFO_REDIRECT_COUNT: case CURLINFO_REDIRECT_COUNT:
*param_longp = data->set.followlocation; *param_longp = data->state.followlocation;
break; break;
case CURLINFO_HTTPAUTH_AVAIL: case CURLINFO_HTTPAUTH_AVAIL:
lptr.to_long = param_longp; lptr.to_long = param_longp;

View File

@ -1426,7 +1426,7 @@ CURLcode Curl_pretransfer(struct Curl_easy *data)
return result; return result;
data->state.wildcardmatch = data->set.wildcard_enabled; data->state.wildcardmatch = data->set.wildcard_enabled;
data->set.followlocation = 0; /* reset the location-follow counter */ data->state.followlocation = 0; /* reset the location-follow counter */
data->state.this_is_a_follow = FALSE; /* reset this */ data->state.this_is_a_follow = FALSE; /* reset this */
data->state.errorbuf = FALSE; /* no error has occurred */ data->state.errorbuf = FALSE; /* no error has occurred */
data->state.httpversion = 0; /* don't assume any particular server version */ data->state.httpversion = 0; /* don't assume any particular server version */
@ -1553,7 +1553,7 @@ CURLcode Curl_follow(struct Curl_easy *data,
if(type == FOLLOW_REDIR) { if(type == FOLLOW_REDIR) {
if((data->set.maxredirs != -1) && if((data->set.maxredirs != -1) &&
(data->set.followlocation >= data->set.maxredirs)) { (data->state.followlocation >= data->set.maxredirs)) {
reachedmax = TRUE; reachedmax = TRUE;
type = FOLLOW_FAKE; /* switch to fake to store the would-be-redirected type = FOLLOW_FAKE; /* switch to fake to store the would-be-redirected
to URL */ to URL */
@ -1562,7 +1562,7 @@ CURLcode Curl_follow(struct Curl_easy *data,
/* mark the next request as a followed location: */ /* mark the next request as a followed location: */
data->state.this_is_a_follow = TRUE; data->state.this_is_a_follow = TRUE;
data->set.followlocation++; /* count location-followers */ data->state.followlocation++; /* count location-followers */
if(data->set.http_auto_referer) { if(data->set.http_auto_referer) {
/* We are asked to automatically set the previous URL as the referer /* We are asked to automatically set the previous URL as the referer

View File

@ -1337,6 +1337,7 @@ struct UrlState {
unsigned int tempcount; /* number of entries in use in tempwrite, 0 - 3 */ unsigned int tempcount; /* number of entries in use in tempwrite, 0 - 3 */
int os_errno; /* filled in with errno whenever an error occurs */ int os_errno; /* filled in with errno whenever an error occurs */
char *scratch; /* huge buffer[set.buffer_size*2] for upload CRLF replacing */ char *scratch; /* huge buffer[set.buffer_size*2] for upload CRLF replacing */
long followlocation; /* redirect counter */
#ifdef HAVE_SIGNAL #ifdef HAVE_SIGNAL
/* storage for the previous bag^H^H^HSIGPIPE signal handler :-) */ /* storage for the previous bag^H^H^HSIGPIPE signal handler :-) */
void (*prev_signal)(int sig); void (*prev_signal)(int sig);
@ -1619,7 +1620,6 @@ struct UserDefined {
unsigned long httpauth; /* kind of HTTP authentication to use (bitmask) */ unsigned long httpauth; /* kind of HTTP authentication to use (bitmask) */
unsigned long proxyauth; /* kind of proxy authentication to use (bitmask) */ unsigned long proxyauth; /* kind of proxy authentication to use (bitmask) */
unsigned long socks5auth;/* kind of SOCKS5 authentication to use (bitmask) */ unsigned long socks5auth;/* kind of SOCKS5 authentication to use (bitmask) */
long followlocation; /* as in HTTP Location: */
long maxredirs; /* maximum no. of http(s) redirects to follow, set to -1 long maxredirs; /* maximum no. of http(s) redirects to follow, set to -1
for infinity */ for infinity */