diff options
| author | Jay Satiro <raysatiro@yahoo.com> | 2017-06-19 00:52:38 -0400 | 
|---|---|---|
| committer | Jay Satiro <raysatiro@yahoo.com> | 2017-07-10 02:09:27 -0400 | 
| commit | af0216251b94e751baa47146ac9609db70793b8e (patch) | |
| tree | de39c7130d519f0bcda17b9a09df822f02fc32e6 /lib/connect.c | |
| parent | 17da6750026cf00277aad3a44fd20b1a4cea6406 (diff) | |
curl_setup_once: Remove ERRNO/SET_ERRNO macros
Prior to this change (SET_)ERRNO mapped to GetLastError/SetLastError
for Win32 and regular errno otherwise.
I reviewed the code and found no justifiable reason for conflating errno
on WIN32 with GetLastError/SetLastError. All Win32 CRTs support errno,
and any Win32 multithreaded CRT supports thread-local errno.
Fixes https://github.com/curl/curl/issues/895
Closes https://github.com/curl/curl/pull/1589
Diffstat (limited to 'lib/connect.c')
| -rw-r--r-- | lib/connect.c | 20 | 
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/connect.c b/lib/connect.c index e959c1e9b..8063cf005 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -607,7 +607,8 @@ void Curl_persistconninfo(struct connectdata *conn)    conn->data->info.conn_local_port = conn->local_port;  } -/* retrieves ip address and port from a sockaddr structure */ +/* retrieves ip address and port from a sockaddr structure. +   note it calls Curl_inet_ntop which sets errno on fail, not SOCKERRNO. */  static bool getaddressinfo(struct sockaddr *sa, char *addr,                             long *port)  { @@ -654,7 +655,7 @@ static bool getaddressinfo(struct sockaddr *sa, char *addr,    addr[0] = '\0';    *port = 0; - +  errno = EAFNOSUPPORT;    return FALSE;  } @@ -672,11 +673,9 @@ void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)      return;    if(!conn->bits.reuse && !conn->bits.tcp_fastopen) { -    int error; -      len = sizeof(struct Curl_sockaddr_storage);      if(getpeername(sockfd, (struct sockaddr*) &ssrem, &len)) { -      error = SOCKERRNO; +      int error = SOCKERRNO;        failf(data, "getpeername() failed with errno %d: %s",              error, Curl_strerror(conn, error));        return; @@ -685,7 +684,7 @@ void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)      len = sizeof(struct Curl_sockaddr_storage);      memset(&ssloc, 0, sizeof(ssloc));      if(getsockname(sockfd, (struct sockaddr*) &ssloc, &len)) { -      error = SOCKERRNO; +      int error = SOCKERRNO;        failf(data, "getsockname() failed with errno %d: %s",              error, Curl_strerror(conn, error));        return; @@ -693,18 +692,16 @@ void Curl_updateconninfo(struct connectdata *conn, curl_socket_t sockfd)      if(!getaddressinfo((struct sockaddr*)&ssrem,                          conn->primary_ip, &conn->primary_port)) { -      error = ERRNO;        failf(data, "ssrem inet_ntop() failed with errno %d: %s", -            error, Curl_strerror(conn, error)); +            errno, Curl_strerror(conn, errno));        return;      }      memcpy(conn->ip_addr_str, conn->primary_ip, MAX_IPADR_LEN);      if(!getaddressinfo((struct sockaddr*)&ssloc,                         conn->local_ip, &conn->local_port)) { -      error = ERRNO;        failf(data, "ssloc inet_ntop() failed with errno %d: %s", -            error, Curl_strerror(conn, error)); +            errno, Curl_strerror(conn, errno));        return;      } @@ -995,9 +992,8 @@ static CURLcode singleipconnect(struct connectdata *conn,    if(!getaddressinfo((struct sockaddr*)&addr.sa_addr,                       ipaddress, &port)) {      /* malformed address or bug in inet_ntop, try next address */ -    error = ERRNO;      failf(data, "sa_addr inet_ntop() failed with errno %d: %s", -          error, Curl_strerror(conn, error)); +          errno, Curl_strerror(conn, errno));      Curl_closesocket(conn, sockfd);      return CURLE_OK;    }  | 
