diff options
author | Rich Felker <dalias@aerifal.cx> | 2011-04-25 17:04:40 -0400 |
---|---|---|
committer | Rich Felker <dalias@aerifal.cx> | 2011-04-25 17:04:40 -0400 |
commit | 34d81974d341e0174d1fc690b4d3e3b9b1767586 (patch) | |
tree | d1590bf1043fd2a29462f16dad9133f86fbf2baa /src/network/__ipparse.c | |
parent | 5efc6af4ebb9d50eb978d0338835544fdfea0396 (diff) | |
download | musl-34d81974d341e0174d1fc690b4d3e3b9b1767586.tar.gz musl-34d81974d341e0174d1fc690b4d3e3b9b1767586.tar.bz2 musl-34d81974d341e0174d1fc690b4d3e3b9b1767586.tar.xz musl-34d81974d341e0174d1fc690b4d3e3b9b1767586.zip |
ipv6 parsing code (formerly dummied-out)
Diffstat (limited to 'src/network/__ipparse.c')
-rw-r--r-- | src/network/__ipparse.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/__ipparse.c b/src/network/__ipparse.c index 604bdc2f..b0647aac 100644 --- a/src/network/__ipparse.c +++ b/src/network/__ipparse.c @@ -2,11 +2,13 @@ #include <stdlib.h> #include <sys/socket.h> #include <netinet/in.h> +#include <arpa/inet.h> #include "__dns.h" #include <stdio.h> -int __ipparse(void *dest, int family, const char *s) +int __ipparse(void *dest, int family, const char *s0) { + const char *s = s0; unsigned char *d = dest; unsigned long a[16] = { 0 }; const char *z; @@ -37,5 +39,7 @@ int __ipparse(void *dest, int family, const char *s) return 0; not_v4: - return -1; + s = s0; + ((struct sockaddr_in6 *)d)->sin6_family = AF_INET6; + return inet_pton(AF_INET6, s, (void *)&((struct sockaddr_in6 *)d)->sin6_addr) <= 0 ? -1 : 0; } |