]> git.saurik.com Git - apple/libinfo.git/blobdiff - lookup.subproj/netdb.h
Libinfo-221.tar.gz
[apple/libinfo.git] / lookup.subproj / netdb.h
index c0811c455c8e4d5adbc07ab3c85234f398c82bff..916842e9d27dfdfb05459be73f4508dda921b40c 100644 (file)
 #ifndef _NETDB_H_
 #define _NETDB_H_
 
-#include <sys/param.h>
-#include <sys/cdefs.h>
-#include <sys/socket.h>
+#include <stdint.h>
+#include <_types.h>
+#include <netinet/in.h>                /* 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"
 
 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_ */