small ipv6 doc changes; nslookup a tiny bit smaller
diff --git a/docs/ipv4_ipv6.txt b/docs/ipv4_ipv6.txt
index 5a63aa7..76d8279 100644
--- a/docs/ipv4_ipv6.txt
+++ b/docs/ipv4_ipv6.txt
@@ -212,7 +212,8 @@
Here's the corresponding server C code for a dual-stack platform:
int ServSock, csock;
- struct sockaddr addr, from;
+ /* struct sockaddr is too small! */
+ struct sockaddr_storage addr, from;
...
ServSock = socket(AF_INET6, SOCK_STREAM, PF_INET6);
bind(ServSock, &addr, sizeof(addr));
diff --git a/networking/nc.c b/networking/nc.c
index a940d8a..2f8a36b 100644
--- a/networking/nc.c
+++ b/networking/nc.c
@@ -25,7 +25,6 @@
SKIP_NC_EXTRA (const int execparam = 0;)
USE_NC_EXTRA (char **execparam = NULL;)
struct sockaddr_in address;
- struct hostent *hostinfo;
fd_set readfds, testfds;
int opt; /* must be signed (getopt returns -1) */
@@ -116,6 +115,7 @@
if (!execparam) close(sfd);
} else {
+ struct hostent *hostinfo;
hostinfo = xgethostbyname(argv[0]);
address.sin_addr = *(struct in_addr *) *hostinfo->h_addr_list;
diff --git a/networking/nslookup.c b/networking/nslookup.c
index dd49e26..89a2d64 100644
--- a/networking/nslookup.c
+++ b/networking/nslookup.c
@@ -82,9 +82,10 @@
while (cur) {
sockaddr_to_dotted(cur->ai_addr, str, sizeof(str));
printf("%s %s\nAddress: %s", header, hostname, str);
- if (getnameinfo(cur->ai_addr, cur->ai_addrlen, str, sizeof(str), NULL, 0, NI_NAMEREQD))
+ s[0] = ' ';
+ if (getnameinfo(cur->ai_addr, cur->ai_addrlen, str+1, sizeof(str)-1, NULL, 0, NI_NAMEREQD))
str[0] = '\0';
- printf(" %s\n", str);
+ puts(str);
cur = cur->ai_next;
}
} else {