diff options
Diffstat (limited to 'test-localuser.c')
-rw-r--r-- | test-localuser.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test-localuser.c b/test-localuser.c index ed27138..7029fd9 100644 --- a/test-localuser.c +++ b/test-localuser.c @@ -20,6 +20,7 @@ * THE SOFTWARE. */ #include <stdio.h> +#include <stdint.h> #include <netdb.h> void dumphostent(char *tag, char *arg, struct hostent *h) @@ -33,6 +34,12 @@ void dumphostent(char *tag, char *arg, struct hostent *h) (int)(unsigned char)h->h_addr_list[0][1], (int)(unsigned char)h->h_addr_list[0][2], (int)(unsigned char)h->h_addr_list[0][3]); + else if (h->h_addrtype == AF_INET6) + printf("ipv6: %08lx.%08lx.%08lx.%08lx\n", + (long)ntohl(((uint32_t*)h->h_addr_list[0])[0]), + (long)ntohl(((uint32_t*)h->h_addr_list[0])[1]), + (long)ntohl(((uint32_t*)h->h_addr_list[0])[2]), + (long)ntohl(((uint32_t*)h->h_addr_list[0])[3])); } else { printf("NULL!\n"); } @@ -51,6 +58,14 @@ int main(int ac, char **av) h = gethostbyaddr(h->h_addr_list[0], h->h_length, h->h_addrtype); dumphostent("addr->name", *av, h); } + + h = gethostbyname2(*av, AF_INET6); + dumphostent("name->addr", *av, h); + + if (h) { + h = gethostbyaddr(h->h_addr_list[0], h->h_length, h->h_addrtype); + dumphostent("addr->name", *av, h); + } } return 0; } |