noproxy: support for space-separated names is deprecated

To be removed in July 2024.

Assisted-by: Michael Osipov
Fixes #10209
Closes #10215
This commit is contained in:
Daniel Stenberg 2023-01-03 14:58:37 +01:00
parent bb393e521f
commit 7ad8a7ba9e
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
5 changed files with 88 additions and 44 deletions

View file

@ -119,8 +119,10 @@ enum nametype {
* Checks if the host is in the noproxy list. returns TRUE if it matches and
* therefore the proxy should NOT be used.
****************************************************************/
bool Curl_check_noproxy(const char *name, const char *no_proxy)
bool Curl_check_noproxy(const char *name, const char *no_proxy,
bool *spacesep)
{
*spacesep = FALSE;
/*
* If we don't have a hostname at all, like for example with a FILE
* transfer, we have nothing to interrogate the noproxy list with.
@ -244,6 +246,15 @@ bool Curl_check_noproxy(const char *name, const char *no_proxy)
if(match)
return TRUE;
} /* if(tokenlen) */
/* pass blanks after pattern */
while(ISBLANK(*p))
p++;
/* if not a comma! */
if(*p && (*p != ',')) {
*spacesep = TRUE;
continue;
}
/* pass any number of commas */
while(*p == ',')
p++;
} /* while(*p) */

View file

@ -37,7 +37,8 @@ UNITTEST bool Curl_cidr6_match(const char *ipv6,
unsigned int bits);
#endif
bool Curl_check_noproxy(const char *name, const char *no_proxy);
bool Curl_check_noproxy(const char *name, const char *no_proxy,
bool *spacesep);
#endif

View file

@ -2401,6 +2401,7 @@ static CURLcode create_conn_helper_init_proxy(struct Curl_easy *data,
char *socksproxy = NULL;
char *no_proxy = NULL;
CURLcode result = CURLE_OK;
bool spacesep = FALSE;
/*************************************************************
* Extract the user and password from the authentication string
@ -2447,7 +2448,8 @@ static CURLcode create_conn_helper_init_proxy(struct Curl_easy *data,
}
if(Curl_check_noproxy(conn->host.name, data->set.str[STRING_NOPROXY] ?
data->set.str[STRING_NOPROXY] : no_proxy)) {
data->set.str[STRING_NOPROXY] : no_proxy,
&spacesep)) {
Curl_safefree(proxy);
Curl_safefree(socksproxy);
}
@ -2456,6 +2458,8 @@ static CURLcode create_conn_helper_init_proxy(struct Curl_easy *data,
/* if the host is not in the noproxy list, detect proxy. */
proxy = detect_proxy(data, conn);
#endif /* CURL_DISABLE_HTTP */
if(spacesep)
infof(data, "space-separated NOPROXY patterns are deprecated");
Curl_safefree(no_proxy);