X-Git-Url: https://git.saurik.com/apple/libinfo.git/blobdiff_plain/ad21edcc50f98a2a0f674a569817952d671962c6..c29f2fccbf0d388644e29ea3e98c38a343688bd2:/lookup.subproj/netdb.h diff --git a/lookup.subproj/netdb.h b/lookup.subproj/netdb.h index c0811c4..916842e 100644 --- a/lookup.subproj/netdb.h +++ b/lookup.subproj/netdb.h @@ -81,9 +81,19 @@ #ifndef _NETDB_H_ #define _NETDB_H_ -#include -#include -#include +#include +#include <_types.h> +#include /* IPPORT_RESERVED */ + +#ifndef _SIZE_T +#define _SIZE_T +typedef __darwin_size_t size_t; +#endif + +#ifndef _SOCKLEN_T +#define _SOCKLEN_T +typedef __darwin_socklen_t socklen_t; +#endif #define _PATH_HEQUIV "/etc/hosts.equiv" #define _PATH_HOSTS "/etc/hosts" @@ -93,6 +103,10 @@ extern int h_errno; +#ifndef IPPORT_RESERVED +#define IPPORT_RESERVED __DARWIN_IPPORT_RESERVED +#endif + /* * Structures returned by network data base library. All addresses are * supplied in host order, and returned in network order (suitable for @@ -104,7 +118,9 @@ struct hostent { int h_addrtype; /* host address type */ int h_length; /* length of address */ char **h_addr_list; /* list of addresses from name server */ +#ifndef _POSIX_C_SOURCE #define h_addr h_addr_list[0] /* address, for backward compatiblity */ +#endif /* !_POSIX_C_SOURCE */ }; /* @@ -115,7 +131,7 @@ 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 # */ + uint32_t n_net; /* network # */ }; struct servent { @@ -136,48 +152,60 @@ struct addrinfo { int ai_family; /* PF_xxx */ int ai_socktype; /* SOCK_xxx */ int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ - size_t ai_addrlen; /* length of ai_addr */ + socklen_t ai_addrlen; /* length of ai_addr */ char *ai_canonname; /* canonical name for hostname */ struct sockaddr *ai_addr; /* binary address */ struct addrinfo *ai_next; /* next structure in linked list */ }; +#ifndef _POSIX_C_SOURCE struct rpcent { char *r_name; /* name of server for this rpc program */ char **r_aliases; /* alias list */ int r_number; /* rpc program number */ }; +#endif /* !_POSIX_C_SOURCE */ /* * Error return codes from gethostbyname() and gethostbyaddr() * (left in extern int h_errno). */ - +#ifndef _POSIX_C_SOURCE #define NETDB_INTERNAL -1 /* see errno */ #define NETDB_SUCCESS 0 /* no problem */ +#endif /* !_POSIX_C_SOURCE */ #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ #define TRY_AGAIN 2 /* Non-Authoritative 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 */ +#ifndef _POSIX_C_SOURCE #define NO_ADDRESS NO_DATA /* no address, look for MX record */ - +#endif /* !_POSIX_C_SOURCE */ /* * Error return codes from getaddrinfo() */ +#ifndef _POSIX_C_SOURCE #define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ +#endif /* !_POSIX_C_SOURCE */ #define EAI_AGAIN 2 /* temporary failure in name resolution */ #define EAI_BADFLAGS 3 /* invalid value for ai_flags */ #define EAI_FAIL 4 /* non-recoverable failure in name resolution */ #define EAI_FAMILY 5 /* ai_family not supported */ #define EAI_MEMORY 6 /* memory allocation failure */ +#ifndef _POSIX_C_SOURCE #define EAI_NODATA 7 /* no address associated with hostname */ +#endif /* !_POSIX_C_SOURCE */ #define EAI_NONAME 8 /* hostname nor servname provided, or not known */ #define EAI_SERVICE 9 /* servname not supported for ai_socktype */ #define EAI_SOCKTYPE 10 /* ai_socktype not supported */ #define EAI_SYSTEM 11 /* system error returned in errno */ +#ifndef _POSIX_C_SOURCE #define EAI_BADHINTS 12 #define EAI_PROTOCOL 13 #define EAI_MAX 14 +#else /* _POSIX_C_SOURCE */ +#define EAI_OVERFLOW 14 /* An argument buffer overflowed */ +#endif /* !_POSIX_C_SOURCE */ /* * Flag values for getaddrinfo() @@ -186,21 +214,27 @@ struct rpcent { #define AI_CANONNAME 0x00000002 /* fill ai_canonname */ #define AI_NUMERICHOST 0x00000004 /* prevent name resolution */ /* valid flags for addrinfo */ +#ifndef _POSIX_C_SOURCE #define AI_MASK (AI_PASSIVE | AI_CANONNAME | AI_NUMERICHOST) - +#endif /* !_POSIX_C_SOURCE */ #define AI_ALL 0x00000100 /* IPv6 and IPv4-mapped (with AI_V4MAPPED) */ +#ifndef _POSIX_C_SOURCE #define AI_V4MAPPED_CFG 0x00000200 /* accept IPv4-mapped if kernel supports */ +#endif /* !_POSIX_C_SOURCE */ #define AI_ADDRCONFIG 0x00000400 /* only if any address is assigned */ #define AI_V4MAPPED 0x00000800 /* accept IPv4-mapped IPv6 address */ /* special recommended flags for getipnodebyname */ +#ifndef _POSIX_C_SOURCE #define AI_DEFAULT (AI_V4MAPPED_CFG | AI_ADDRCONFIG) +#endif /* !_POSIX_C_SOURCE */ /* * Constants for getnameinfo() */ +#ifndef _POSIX_C_SOURCE #define NI_MAXHOST 1025 #define NI_MAXSERV 32 - +#endif /* !_POSIX_C_SOURCE */ /* * Flag values for getnameinfo() */ @@ -209,26 +243,33 @@ struct rpcent { #define NI_NAMEREQD 0x00000004 #define NI_NUMERICSERV 0x00000008 #define NI_DGRAM 0x00000010 +#ifndef _POSIX_C_SOURCE #define NI_WITHSCOPEID 0x00000020 /* * Scope delimit character */ #define SCOPE_DELIMITER '%' +#endif /* !_POSIX_C_SOURCE */ __BEGIN_DECLS void endhostent(void); void endnetent(void); void endprotoent(void); void endservent(void); -void freehostent(struct hostent *); -struct hostent *gethostbyaddr(const char *, int, int); + +void freeaddrinfo(struct addrinfo *); +const char *gai_strerror(int); +int getaddrinfo(const char * __restrict, const char * __restrict, + const struct addrinfo * __restrict, + struct addrinfo ** __restrict); +struct hostent *gethostbyaddr(const void *, socklen_t, int); struct hostent *gethostbyname(const char *); -struct hostent *gethostbyname2(const char *, int); struct hostent *gethostent(void); -struct hostent *getipnodebyaddr(const void *, size_t, int, int *); -struct hostent *getipnodebyname(const char *, int, int, int *); -struct netent *getnetbyaddr(long, int); +int getnameinfo(const struct sockaddr * __restrict, socklen_t, + char * __restrict, socklen_t, char * __restrict, + socklen_t, int); +struct netent *getnetbyaddr(uint32_t, int); struct netent *getnetbyname(const char *); struct netent *getnetent(void); struct protoent *getprotobyname(const char *); @@ -237,24 +278,25 @@ struct protoent *getprotoent(void); struct servent *getservbyname(const char *, const char *); struct servent *getservbyport(int, const char *); struct servent *getservent(void); +void sethostent(int); +/* void sethostfile(const char *); */ +void setnetent(int); +void setprotoent(int); +void setservent(int); +#ifndef _POSIX_C_SOURCE +void freehostent(struct hostent *); +struct hostent *gethostbyname2(const char *, int); +struct hostent *getipnodebyaddr(const void *, size_t, int, int *); +struct hostent *getipnodebyname(const char *, int, int, int *); struct rpcent *getrpcbyname(const char *name); struct rpcent *getrpcbynumber(long number); struct rpcent *getrpcent(void); void setrpcent(int stayopen); void endrpcent(void); - void herror(const char *); const char *hstrerror(int); int innetgr(const char *, const char *, const char *, const char *); -void sethostent(int); -/* void sethostfile(const char *); */ -void setnetent(int); -void setprotoent(int); -void setservent(int); -const char *gai_strerror(int); -void freeaddrinfo(struct addrinfo *); -int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **); -int getnameinfo(const struct sockaddr *, socklen_t, char *, size_t, char *, size_t, int); +#endif /* !_POSIX_C_SOURCE */ __END_DECLS #endif /* !_NETDB_H_ */