ref: 5f7a6b7ea3c4ae1b51beffe3309e9b6b0491e71f
dir: /sys/src/ape/lib/bsd/gethostbyaddr.c/
/* posix */ #include <sys/types.h> #include <unistd.h> /* bsd extensions */ #include <sys/uio.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> int h_errno; struct hostent* gethostbyaddr(void *addr, int len, int type) { unsigned long a, y; struct in_addr x; unsigned char *p = addr; if(type != AF_INET || len != 4){ h_errno = NO_RECOVERY; return 0; } y = (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3]; x.s_addr = htonl(y); return gethostbyname(inet_ntoa(x)); }