X-Git-Url: https://git.ozlabs.org/?p=ccan;a=blobdiff_plain;f=ccan%2Fnet%2Fnet.c;fp=ccan%2Fnet%2Fnet.c;h=8bcaa937c8955e249173abdff234d9e19ac4a6b6;hp=82d6c4e54bd82e2c02415cb6cd7ebcf721f49659;hb=708b846815c758645cf19f905513c67f7a024491;hpb=7274405006c44e8af664c5ac7aa8b1e523d9a7be diff --git a/ccan/net/net.c b/ccan/net/net.c index 82d6c4e5..8bcaa937 100644 --- a/ccan/net/net.c +++ b/ccan/net/net.c @@ -1,5 +1,4 @@ #include -#include #include #include #include @@ -64,7 +63,7 @@ static void remove_fd(struct pollfd pfd[], int net_connect(const struct addrinfo *addrinfo) { - int sockfd = -1; + int sockfd = -1, saved_errno; unsigned int i, num; const struct addrinfo *ipv4 = NULL, *ipv6 = NULL; const struct addrinfo *addr[MAX_PROTOS]; @@ -142,8 +141,10 @@ got_one: sockfd = pfd[i].fd; out: + saved_errno = errno; for (i = 0; i < num; i++) if (pfd[i].fd != sockfd) - close_noerr(pfd[i].fd); + close(pfd[i].fd); + errno = saved_errno; return sockfd; }