freebsd-ports/security/openssh/files/patch-sshconnect.c

49 lines
1.3 KiB
C

--- sshconnect.c.orig Mon Jan 21 16:13:51 2002
+++ sshconnect.c Fri Mar 8 18:14:50 2002
@@ -43,15 +43,21 @@
sockaddr_ntop(struct sockaddr *sa)
{
void *addr;
+#ifdef INET6
static char addrbuf[INET6_ADDRSTRLEN];
+#else
+ static char addrbuf[INET_ADDRSTRLEN];
+#endif
switch (sa->sa_family) {
case AF_INET:
addr = &((struct sockaddr_in *)sa)->sin_addr;
break;
+#ifdef INET6
case AF_INET6:
addr = &((struct sockaddr_in6 *)sa)->sin6_addr;
break;
+#endif
default:
/* This case should be protected against elsewhere */
abort(); /* XXX abort is bad -- do something else */
@@ -291,7 +297,11 @@
/* Loop through addresses for this host, and try each one in
sequence until the connection succeeds. */
for (ai = aitop; ai; ai = ai->ai_next) {
+#ifdef INET6
if (ai->ai_family != AF_INET && ai->ai_family != AF_INET6)
+#else
+ if (ai->ai_family != AF_INET)
+#endif
continue;
if (getnameinfo(ai->ai_addr, ai->ai_addrlen,
ntop, sizeof(ntop), strport, sizeof(strport),
@@ -537,10 +547,12 @@
local = (ntohl(((struct sockaddr_in *)hostaddr)->
sin_addr.s_addr) >> 24) == IN_LOOPBACKNET;
break;
+#ifdef INET6
case AF_INET6:
local = IN6_IS_ADDR_LOOPBACK(
&(((struct sockaddr_in6 *)hostaddr)->sin6_addr));
break;
+#endif
default:
local = 0;
break;