123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 |
- /*
- * This file is part of the UCB release of Plan 9. It is subject to the license
- * terms in the LICENSE file found in the top-level directory of this
- * distribution and at http://akaros.cs.berkeley.edu/files/Plan9License. No
- * part of the UCB release of Plan 9, including this file, may be copied,
- * modified, propagated, or distributed except according to the terms contained
- * in the LICENSE file.
- */
- #ifndef __NETDB_H__
- #define __NETDB_H__
- #ifndef _BSD_EXTENSION
- This header file is an extension to ANSI/POSIX
- #endif
- #pragma lib "/$M/lib/ape/libbsd.a"
- /*-
- * Copyright (c) 1980, 1983, 1988 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that: (1) source distributions retain this entire copyright
- * notice and comment, and (2) distributions including binaries display
- * the following acknowledgement: ``This product includes software
- * developed by the University of California, Berkeley and its contributors''
- * in the documentation or other materials provided with the distribution
- * and in all advertising materials mentioning features or use of this
- * software. Neither the name of the University nor the names of its
- * contributors may be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- *
- * @(#)netdb.h 5.11 (Berkeley) 5/21/90
- */
- #ifdef __cplusplus
- extern "C" {
- #endif
- /*
- * Structures returned by network data base library. All addresses are
- * supplied in host order, and returned in network order (suitable for
- * use in system calls).
- */
- struct hostent {
- char *h_name; /* official name of host */
- char **h_aliases; /* alias list */
- int h_addrtype; /* host address type */
- int h_length; /* length of address */
- char **h_addr_list; /* list of addresses from name server */
- #define h_addr h_addr_list[0] /* address, for backward compatiblity */
- };
- /*
- * Assumption here is that a network number
- * fits in 32 bits -- probably a poor one.
- */
- struct netent {
- char *n_name; /* official name of net */
- char **n_aliases; /* alias list */
- int n_addrtype; /* net address type */
- unsigned long n_net; /* network # */
- };
- struct servent {
- char *s_name; /* official service name */
- char **s_aliases; /* alias list */
- int s_port; /* port # */
- char *s_proto; /* protocol to use */
- };
- struct protoent {
- char *p_name; /* official protocol name */
- char **p_aliases; /* alias list */
- int p_proto; /* protocol # */
- };
- /* from 4.0 RPCSRC */
- struct rpcent {
- char *r_name; /* name of server for this rpc program */
- char **r_aliases; /* alias list */
- int r_number; /* rpc program number */
- };
- extern struct hostent *gethostbyname(const char *),
- *gethostbyaddr(const void *, int, int),
- *gethostent(void);
- extern struct netent *getnetbyname(const char *),
- *getnetbyaddr(int32_t, int),
- *getnetent(void);
- extern struct servent *getservbyname(const char *, const char *),
- *getservbyport(int, const char *),
- *getservent(void);
- extern struct protoent *getprotobyname(const char *),
- *getprotobynumber(int),
- *getprotoent(void);
- extern struct rpcent *getrpcbyname(const char *),
- *getrpcbynumber(int),
- *getrpcent(void);
- extern void sethostent(int), endhostent(void),
- setnetent(int), endnetent(void),
- setservent(int), endservent(void),
- setprotoent(int), endprotoent(void),
- setrpcent(int), endrpcent(void);
- /*
- * Error return codes from gethostbyname() and gethostbyaddr()
- * (left in extern int h_errno).
- */
- extern int h_errno;
- extern void herror(const char *);
- extern char *hstrerror(int);
- #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */
- #define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */
- #define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */
- #define NO_DATA 4 /* Valid name, no data record of requested type */
- #define NO_ADDRESS NO_DATA /* no address, look for MX record */
- #define __HOST_SVC_NOT_AVAIL 99 /* libc internal use only */
- #ifdef __cplusplus
- }
- #endif
- #endif /* !__NETDB_H__ */
|