diff --git a/include/arpa/inet.h b/include/arpa/inet.h index 9293840399b8e84fc8c34db12d120556fd279c25..fdc501aa0fb8ada87d0bc80b7adf056bcf3724ea 100644 --- a/include/arpa/inet.h +++ b/include/arpa/inet.h @@ -24,6 +24,7 @@ uint32_t ntohl(uint32_t); uint16_t ntohs(uint16_t); in_addr_t inet_addr (const char *); +in_addr_t inet_network (const char *); char *inet_ntoa (struct in_addr); int inet_pton (int, const char *__restrict, void *__restrict); const char *inet_ntop (int, const void *__restrict, char *__restrict, socklen_t); diff --git a/src/network/inet_network.c b/src/network/inet_network.c new file mode 100644 index 0000000000000000000000000000000000000000..ae60d7f658b8230bd8d23633158d3c1f3013798f --- /dev/null +++ b/src/network/inet_network.c @@ -0,0 +1,11 @@ +#include +#include +#include +#include "__dns.h" + +in_addr_t inet_network(const char *p) +{ + struct sockaddr_in sin; + if (__ipparse(&sin, AF_INET, p)) return -1; + return ntohl(sin.sin_addr.s_addr); +}