3 #include <sys/socket.h>
4 #include <netinet/in.h>
8 int __ipparse(void *dest, int family, const char *s)
10 unsigned char *d = dest;
11 unsigned long a[16] = { 0 };
15 if (family == AF_INET6) goto not_v4;
17 for (i=0; i<4 && *s; i++) {
18 a[i] = strtoul(s, (char **)&z, 0);
19 if (z==s || (*z && *z != '.')) goto not_v4;
24 a[1] = a[0] & 0xffffff;
33 ((struct sockaddr_in *)d)->sin_family = AF_INET;
34 d = (void *)&((struct sockaddr_in *)d)->sin_addr;
35 for (i=0; i<4; i++) d[i] = a[i];