X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fnetwork%2F__ipparse.c;h=b0647aacebe3d5098f67d04840779845f00add01;hb=3e082df3cc4c287f659e9067b2b23c7db0855695;hp=604bdc2f18bf1ca9b5f79a211bd8863a19d5dda7;hpb=d4b5d6e98160b3c76b37fef1b0581c3b9a7cd192;p=musl 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 #include #include +#include #include "__dns.h" #include -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; }