|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 1980, 1983, 1988 Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * Redistribution and use in source and binary forms are permitted ! 6: * provided that the above copyright notice and this paragraph are ! 7: * duplicated in all such forms and that any documentation, ! 8: * advertising materials, and other materials related to such ! 9: * distribution and use acknowledge that the software was developed ! 10: * by the University of California, Berkeley. The name of the ! 11: * University may not be used to endorse or promote products derived ! 12: * from this software without specific prior written permission. ! 13: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR ! 14: * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED ! 15: * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. ! 16: * ! 17: * @(#)netdb.h 5.10 (Berkeley) 6/27/88 ! 18: */ ! 19: ! 20: /* ! 21: * Structures returned by network ! 22: * data base library. All addresses ! 23: * are supplied in host order, and ! 24: * returned in network order (suitable ! 25: * for use in system calls). ! 26: */ ! 27: struct hostent { ! 28: char *h_name; /* official name of host */ ! 29: char **h_aliases; /* alias list */ ! 30: int h_addrtype; /* host address type */ ! 31: int h_length; /* length of address */ ! 32: char **h_addr_list; /* list of addresses from name server */ ! 33: #define h_addr h_addr_list[0] /* address, for backward compatiblity */ ! 34: }; ! 35: ! 36: /* ! 37: * Assumption here is that a network number ! 38: * fits in 32 bits -- probably a poor one. ! 39: */ ! 40: struct netent { ! 41: char *n_name; /* official name of net */ ! 42: char **n_aliases; /* alias list */ ! 43: int n_addrtype; /* net address type */ ! 44: unsigned long n_net; /* network # */ ! 45: }; ! 46: ! 47: struct servent { ! 48: char *s_name; /* official service name */ ! 49: char **s_aliases; /* alias list */ ! 50: int s_port; /* port # */ ! 51: char *s_proto; /* protocol to use */ ! 52: }; ! 53: ! 54: struct protoent { ! 55: char *p_name; /* official protocol name */ ! 56: char **p_aliases; /* alias list */ ! 57: int p_proto; /* protocol # */ ! 58: }; ! 59: ! 60: struct hostent *gethostbyname(), *gethostbyaddr(), *gethostent(); ! 61: struct netent *getnetbyname(), *getnetbyaddr(), *getnetent(); ! 62: struct servent *getservbyname(), *getservbyport(), *getservent(); ! 63: struct protoent *getprotobyname(), *getprotobynumber(), *getprotoent(); ! 64: ! 65: /* ! 66: * Error return codes from gethostbyname() and gethostbyaddr() ! 67: * (left in extern int h_errno). ! 68: */ ! 69: ! 70: #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ ! 71: #define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */ ! 72: #define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ ! 73: #define NO_DATA 4 /* Valid name, no data record of requested type */ ! 74: #define NO_ADDRESS NO_DATA /* no address, look for MX record */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.