xref: /plan9/sys/src/ape/lib/bsd/gethostbyaddr.c (revision 219b2ee8daee37f4aad58d63f21287faa8e4ffdc)
1*219b2ee8SDavid du Colombier /* posix */
2*219b2ee8SDavid du Colombier #include <sys/types.h>
3*219b2ee8SDavid du Colombier #include <unistd.h>
4*219b2ee8SDavid du Colombier 
5*219b2ee8SDavid du Colombier /* bsd extensions */
6*219b2ee8SDavid du Colombier #include <sys/uio.h>
7*219b2ee8SDavid du Colombier #include <sys/socket.h>
8*219b2ee8SDavid du Colombier #include <netinet/in.h>
9*219b2ee8SDavid du Colombier #include <netdb.h>
10*219b2ee8SDavid du Colombier 
11*219b2ee8SDavid du Colombier int h_errno;
12*219b2ee8SDavid du Colombier 
13*219b2ee8SDavid du Colombier struct hostent*
14*219b2ee8SDavid du Colombier gethostbyaddr(char *addr, int len, int type)
15*219b2ee8SDavid du Colombier {
16*219b2ee8SDavid du Colombier 	struct in_addr x;
17*219b2ee8SDavid du Colombier 
18*219b2ee8SDavid du Colombier 	if(type != AF_INET){
19*219b2ee8SDavid du Colombier 		h_errno = NO_RECOVERY;
20*219b2ee8SDavid du Colombier 		return 0;
21*219b2ee8SDavid du Colombier 	}
22*219b2ee8SDavid du Colombier 
23*219b2ee8SDavid du Colombier 	x.s_addr = (addr[0]<<24)|(addr[1]<<16)|(addr[2]<<8)|addr[3];
24*219b2ee8SDavid du Colombier 
25*219b2ee8SDavid du Colombier 	return gethostbyname(inet_ntoa(x));
26*219b2ee8SDavid du Colombier }
27