X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/dbf58cfaacdf65821233c608b834bd46a65d5467..c24e27c631bae3139724e5a0951a12a956353bca:/unix/uxnet.c diff --git a/unix/uxnet.c b/unix/uxnet.c index 5d4ace44..d01a44d9 100644 --- a/unix/uxnet.c +++ b/unix/uxnet.c @@ -23,7 +23,7 @@ #include "tree234.h" /* Solaris needs for SIOCATMARK. */ -#ifdef HAVE_SYS_SOCKIO_H +#ifndef SIOCATMARK #include #endif @@ -236,7 +236,7 @@ SockAddr sk_nonamelookup(const char *host) static int sk_nextaddr(SockAddr addr) { #ifndef NO_IPV6 - if (addr->ai->ai_next) { + if (addr->ai && addr->ai->ai_next) { addr->ai = addr->ai->ai_next; addr->family = addr->ai->ai_family; return TRUE; @@ -691,7 +691,10 @@ Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only, i * into local reality. */ address_family = (address_family == ADDRTYPE_IPV4 ? AF_INET : - address_family == ADDRTYPE_IPV6 ? AF_INET6 : AF_UNSPEC); +#ifndef NO_IPV6 + address_family == ADDRTYPE_IPV6 ? AF_INET6 : +#endif + AF_UNSPEC); #ifndef NO_IPV6 /* Let's default to IPv6. @@ -707,11 +710,13 @@ Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only, i */ s = socket(address_family, SOCK_STREAM, 0); +#ifndef NO_IPV6 /* If the host doesn't support IPv6 try fallback to IPv4. */ if (s < 0 && address_family == AF_INET6) { address_family = AF_INET; s = socket(address_family, SOCK_STREAM, 0); } +#endif if (s < 0) { ret->error = strerror(errno); @@ -1277,9 +1282,10 @@ SockAddr platform_get_x11_unix_address(int displaynum, char **canonicalname) else *canonicalname = dupstr(ret->hostname); #ifndef NO_IPV6 - ret->ais = NULL; + ret->ai = ret->ais = NULL; #else ret->addresses = NULL; + ret->curraddr = ret->naddresses = 0; #endif return ret; }