1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00

loadhostpairs: return errorcode

Make sure that Curl_cache_addr() errors are propagated to callers of
loadhostpairs().

(this loadhostpairs function caused a scan-build warning due to the
'dns' variable getting assigned but never used)
This commit is contained in:
Daniel Stenberg 2010-12-20 22:17:41 +01:00
parent 1e739e781e
commit af54fbbcb5

View File

@ -1382,7 +1382,7 @@ Transfer(struct connectdata *conn)
return CURLE_OK; return CURLE_OK;
} }
static void loadhostpairs(struct SessionHandle *data) static CURLcode loadhostpairs(struct SessionHandle *data)
{ {
struct curl_slist *hostp; struct curl_slist *hostp;
char hostname[256]; char hostname[256];
@ -1393,7 +1393,7 @@ static void loadhostpairs(struct SessionHandle *data)
if(!hostp->data) if(!hostp->data)
continue; continue;
if(hostp->data[0] == '-') { if(hostp->data[0] == '-') {
/* mark an entry for removal */ /* TODO: mark an entry for removal */
} }
else if(3 == sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port, else if(3 == sscanf(hostp->data, "%255[^:]:%d:%255s", hostname, &port,
address)) { address)) {
@ -1416,9 +1416,14 @@ static void loadhostpairs(struct SessionHandle *data)
if(data->share) if(data->share)
Curl_share_unlock(data, CURL_LOCK_DATA_DNS); Curl_share_unlock(data, CURL_LOCK_DATA_DNS);
if(!dns)
return CURLE_OUT_OF_MEMORY;
} }
} }
data->change.resolve = NULL; /* dealt with now */ data->change.resolve = NULL; /* dealt with now */
return CURLE_OK;
} }
@ -1460,8 +1465,9 @@ CURLcode Curl_pretransfer(struct SessionHandle *data)
/* If there is a list of host pairs to deal with */ /* If there is a list of host pairs to deal with */
if(data->change.resolve) if(data->change.resolve)
loadhostpairs(data); res = loadhostpairs(data);
if(!res) {
/* Allow data->set.use_port to set which port to use. This needs to be /* Allow data->set.use_port to set which port to use. This needs to be
* disabled for example when we follow Location: headers to URLs using * disabled for example when we follow Location: headers to URLs using
* different ports! */ * different ports! */
@ -1483,8 +1489,9 @@ CURLcode Curl_pretransfer(struct SessionHandle *data)
if(data->set.connecttimeout) if(data->set.connecttimeout)
Curl_expire(data, data->set.connecttimeout); Curl_expire(data, data->set.connecttimeout);
}
return CURLE_OK; return res;
} }
/* /*