commit bf06f141882477d60a9d30390dd9e43a49fccc11
Author:     Michael Forney <[email protected]>
AuthorDate: Sat May 25 19:27:36 2019 -0700
Commit:     Hiltjo Posthuma <[email protected]>
CommitDate: Sun May 26 15:38:52 2019 +0200

    Fix traversal of addrinfo list
    
    Although the loop is executed once for every result, in each iteration
    it connects to the first result.

diff --git a/ii.c b/ii.c
index 6d2bd36..55d5f52 100644
--- a/ii.c
+++ b/ii.c
@@ -377,10 +377,10 @@ tcpopen(const char *host, const char *service)
        }
 
        for (rp = res; rp; rp = rp->ai_next) {
-               fd = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
+               fd = socket(rp->ai_family, rp->ai_socktype, rp->ai_protocol);
                if (fd == -1)
                        continue;
-               if (connect(fd, res->ai_addr, res->ai_addrlen) == -1) {
+               if (connect(fd, rp->ai_addr, rp->ai_addrlen) == -1) {
                        close(fd);
                        fd = -1;
                        continue;

Reply via email to