]> git.ozlabs.org Git - ccan/blobdiff - ccan/net/net.c
tcon: Encode information on container members in "type" canaries
[ccan] / ccan / net / net.c
index 394c4e49f2bb16024ea576b0aa68ed1376c25bcc..61efd5b8fd4b55643b157d3cf90e73818b2a20f4 100644 (file)
@@ -1,10 +1,7 @@
 /* Licensed under BSD-MIT - see LICENSE file for details */
 #include <ccan/net/net.h>
 #include <ccan/noerr/noerr.h>
-#include <sys/types.h>
-#include <sys/socket.h>
 #include <poll.h>
-#include <netdb.h>
 #include <string.h>
 #include <stdlib.h>
 #include <unistd.h>
@@ -116,7 +113,7 @@ int net_connect_async(const struct addrinfo *addrinfo, struct pollfd pfds[2])
                                close_noerr(pfds[i].fd);
                                return -1;
                        }
-                       return pfds[0].fd;
+                       return pfds[i].fd;
                }
        }
 
@@ -159,6 +156,9 @@ int net_connect_complete(struct pollfd pfds[2])
                        }
                        continue;
                }
+               if (!(pfds[i].revents & POLLOUT))
+                       continue;
+
                if (getsockopt(pfds[i].fd, SOL_SOCKET, SO_ERROR, &err,
                               &errlen) != 0) {
                        net_connect_abort(pfds);