summaryrefslogtreecommitdiff
path: root/lib-src/pop.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib-src/pop.c')
-rw-r--r--lib-src/pop.c36
1 files changed, 15 insertions, 21 deletions
diff --git a/lib-src/pop.c b/lib-src/pop.c
index 1f3f82baa68..a269144c915 100644
--- a/lib-src/pop.c
+++ b/lib-src/pop.c
@@ -1075,28 +1075,22 @@ socket_connection (char *host, int flags)
}
} while (ret != 0);
- if (ret == 0)
- {
- it = res;
- while (it)
- {
- if (it->ai_addrlen == sizeof (addr))
- {
- struct sockaddr_in *in_a = (struct sockaddr_in *) it->ai_addr;
- addr.sin_addr = in_a->sin_addr;
- if (! connect (sock, (struct sockaddr *) &addr, sizeof (addr)))
- break;
- }
- it = it->ai_next;
- }
- connect_ok = it != NULL;
- if (connect_ok)
- {
- realhost = alloca (strlen (it->ai_canonname) + 1);
- strcpy (realhost, it->ai_canonname);
- }
- freeaddrinfo (res);
+ for (it = res; it; it = it->ai_next)
+ if (it->ai_addrlen == sizeof addr)
+ {
+ struct sockaddr_in *in_a = (struct sockaddr_in *) it->ai_addr;
+ addr.sin_addr = in_a->sin_addr;
+ if (! connect (sock, (struct sockaddr *) &addr, sizeof addr))
+ break;
+ }
+ connect_ok = it != NULL;
+ if (connect_ok)
+ {
+ realhost = alloca (strlen (it->ai_canonname) + 1);
+ strcpy (realhost, it->ai_canonname);
}
+ freeaddrinfo (res);
+
#else /* !HAVE_GETADDRINFO */
do
{