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) 06/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 */ 75