From bf06f141882477d60a9d30390dd9e43a49fccc11 Mon Sep 17 00:00:00 2001 From: Michael Forney Date: Sat, 25 May 2019 19:27:36 -0700 Subject: [PATCH] Fix traversal of addrinfo list Although the loop is executed once for every result, in each iteration it connects to the first result. --- ii.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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;