mirror of
https://github.com/curl/curl.git
synced 2024-11-27 05:50:21 +08:00
connect: Fixed "Whut?" no server connection failures
Introduced in commit 7d7df83198
curl would loop displaying "Whut?"
if it was trying to connect to an address and port that didn't have
anything listening on it.
This commit is contained in:
parent
052f24c9b7
commit
5094bb53f4
@ -742,16 +742,14 @@ CURLcode Curl_is_connected(struct connectdata *conn,
|
||||
/* check socket for connect */
|
||||
result = Curl_socket_ready(CURL_SOCKET_BAD, conn->tempsock[i], 0);
|
||||
|
||||
switch(result) {
|
||||
case 0: /* no connection yet */
|
||||
if(result == 0) { /* no connection yet */
|
||||
if(curlx_tvdiff(now, conn->connecttime) >= conn->timeoutms_per_addr) {
|
||||
infof(data, "After %ldms connect time, move on!\n",
|
||||
conn->timeoutms_per_addr);
|
||||
error = ETIMEDOUT;
|
||||
}
|
||||
break;
|
||||
|
||||
case CURL_CSELECT_OUT:
|
||||
}
|
||||
else if(result == CURL_CSELECT_OUT) {
|
||||
if(verifyconnect(conn->tempsock[i], &error)) {
|
||||
/* we are connected with TCP, awesome! */
|
||||
int other = i ^ 1;
|
||||
@ -786,16 +784,9 @@ CURLcode Curl_is_connected(struct connectdata *conn,
|
||||
}
|
||||
else
|
||||
infof(data, "Connection failed\n");
|
||||
break;
|
||||
|
||||
case CURL_CSELECT_ERR|CURL_CSELECT_OUT:
|
||||
(void)verifyconnect(conn->tempsock[i], &error);
|
||||
break;
|
||||
|
||||
default:
|
||||
infof(data, "Whut?\n");
|
||||
return CURLE_OK;
|
||||
}
|
||||
else if((result & CURL_CSELECT_ERR) == CURL_CSELECT_ERR)
|
||||
(void)verifyconnect(conn->tempsock[i], &error);
|
||||
|
||||
/*
|
||||
* The connection failed here, we should attempt to connect to the "next
|
||||
@ -821,6 +812,7 @@ CURLcode Curl_is_connected(struct connectdata *conn,
|
||||
failf(data, "Failed to connect to %s port %ld: %s",
|
||||
conn->host.name, conn->port, Curl_strerror(conn, error));
|
||||
}
|
||||
|
||||
return code;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user