diff options
Diffstat (limited to 'ext/socket/getnameinfo.c')
-rw-r--r-- | ext/socket/getnameinfo.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ext/socket/getnameinfo.c b/ext/socket/getnameinfo.c index 99404b157a..e217b50895 100644 --- a/ext/socket/getnameinfo.c +++ b/ext/socket/getnameinfo.c @@ -44,6 +44,7 @@ #include <string.h> #include <stddef.h> +#include "config.h" #include "addrinfo.h" #include "sockport.h" @@ -81,6 +82,21 @@ struct sockinet { #define ENI_FAMILY 5 #define ENI_SALEN 6 +#ifndef HAVE_INET_NTOP +static char * +inet_ntop(af, addr, numaddr, numaddr_len) + int af; + char *addr; + char *numaddr; + int numaddr_len; +{ + struct in_addr in; + memcpy(&in.s_addr, addr, sizeof(in.s_addr)); + strcpy(numaddr, inet_ntoa(in)); + return numaddr; +} +#endif + int getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) const struct sockaddr *sa; @@ -102,6 +118,7 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) int h_error; char numserv[512]; char numaddr[512]; + extern int h_errno; if (sa == NULL) return ENI_NOSOCKET; |