1219b2ee8SDavid du Colombier /* posix */ 2219b2ee8SDavid du Colombier #include <sys/types.h> 3219b2ee8SDavid du Colombier #include <unistd.h> 4219b2ee8SDavid du Colombier 5219b2ee8SDavid du Colombier /* bsd extensions */ 6219b2ee8SDavid du Colombier #include <sys/uio.h> 7219b2ee8SDavid du Colombier #include <sys/socket.h> 8219b2ee8SDavid du Colombier #include <netinet/in.h> 9219b2ee8SDavid du Colombier #include <netdb.h> 10219b2ee8SDavid du Colombier 11219b2ee8SDavid du Colombier int h_errno; 12219b2ee8SDavid du Colombier 13219b2ee8SDavid du Colombier struct hostent* gethostbyaddr(void * addr,int len,int type)1480ee5cbfSDavid du Colombiergethostbyaddr(void *addr, int len, int type) 15219b2ee8SDavid du Colombier { 16*781103c4SDavid du Colombier unsigned long y; 17219b2ee8SDavid du Colombier struct in_addr x; 1880ee5cbfSDavid du Colombier unsigned char *p = addr; 19219b2ee8SDavid du Colombier 2080ee5cbfSDavid du Colombier if(type != AF_INET || len != 4){ 21219b2ee8SDavid du Colombier h_errno = NO_RECOVERY; 22219b2ee8SDavid du Colombier return 0; 23219b2ee8SDavid du Colombier } 24219b2ee8SDavid du Colombier 2580ee5cbfSDavid du Colombier y = (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3]; 2680ee5cbfSDavid du Colombier x.s_addr = htonl(y); 27219b2ee8SDavid du Colombier 28219b2ee8SDavid du Colombier return gethostbyname(inet_ntoa(x)); 29219b2ee8SDavid du Colombier } 30