diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:47:56 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 16:47:56 +0300 |
commit | c558a99e0be506a9abdf677f0ca4490644e05fc1 (patch) | |
tree | 17aef678ad05a32ef96ce8385703cb3fe089a5c7 /sys/include/ape/netdb.h | |
parent | e5888a1ffdae813d7575f5fb02275c6bb07e5199 (diff) |
Import sources from 2011-03-30 iso image - sys/include
Diffstat (limited to 'sys/include/ape/netdb.h')
-rwxr-xr-x | sys/include/ape/netdb.h | 121 |
1 files changed, 121 insertions, 0 deletions
diff --git a/sys/include/ape/netdb.h b/sys/include/ape/netdb.h new file mode 100755 index 000000000..5885c3ab3 --- /dev/null +++ b/sys/include/ape/netdb.h @@ -0,0 +1,121 @@ +#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(long, 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__ */ |