ref: 1bb96d542cd43a027934ca372e0ab8c87f523db9
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)); }