Usermode/libpsocket - Header wrapping, byte ordering functions
[tpg/acess2.git] / Usermode / Libraries / libpsocket.so_src / include_exp / netdb.h
1 #ifndef _LIBPSOCKET__NETDB_H_
2 #define _LIBPSOCKET__NETDB_H_
3
4 #include <sys/socket.h>
5
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9
10
11 struct hostent
12 {
13         char    *h_name;
14         char    **h_aliases;
15          int    h_addrtype;
16          int    h_length;
17         char    **h_addr_list;
18 };
19 #define h_addr h_addr_list[0]   // backwards compataibility
20
21 struct netent
22 {
23         char    *n_name;
24         char    **n_aliases;
25         int     n_addrtype;
26         uint32_t        n_net;
27 };
28
29 struct protoent
30 {
31         char    *p_name;
32         char    **p_aliases;
33          int    p_proto;
34 };
35
36 struct servent
37 {
38         char    *s_name;
39         char    **s_aliases;
40         int     s_port;
41         char    *s_proto;
42 };
43
44 #define AI_PASSIVE      0x001
45 #define AI_V4MAPPED     0x002
46 #define AI_ADDRCONFIG   0x004
47 #define AI_NUMERICHOST  0x008
48 #define AI_NUMERICSERV  0x010
49
50 #define NI_NAMEREQD     (1<<0)
51 #define NI_DGRAM        (1<<1)
52 #define NI_NOFQDN       (1<<2)
53 #define NI_NUMERICHOST  (1<<3)
54 #define NI_NUMERICSERV  (1<<4)
55
56 #define NI_MAXHOST      1024    // may not be posix
57
58 // Error values from gethostbyaddr/gethostbyname
59 enum
60 {
61         HOST_NOT_FOUND = 1,
62         NO_DATA,
63         NO_RECOVERY,
64         TRY_AGAIN,
65 };
66
67 enum
68 {
69         EAI_SUCCESS,
70         EAI_AGAIN,
71         EAI_BADFLAGS,
72         EAI_FAMILY,
73         EAI_SOCKTTPE,
74         
75         EAI_ADDRFAMILY,
76         EAI_FAIL,
77         EAI_MEMORY,
78         EAI_NODATA,
79         EAI_NONAME,
80         EAI_SERVICE,
81         EAI_SYSTEM,
82         EAI_OVERFLOW
83 };
84
85 struct addrinfo
86 {
87         int     ai_flags;
88         int     ai_family;
89         int     ai_socktype;
90         int     ai_protocol;
91         socklen_t       ai_addrlen;
92         struct sockaddr *ai_addr;
93         char    *ai_canonname;
94         struct addrinfo *ai_next;
95 };
96
97 extern int      getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags);
98 extern int      getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);
99 extern void     freeaddrinfo(struct addrinfo *res);
100 const char      *gai_strerror(int errorcode);
101
102 extern struct servent   *getservbyname(const char *name, const char *proto);
103 extern struct servent   *getservbyport(int port, const char *proto);
104
105 extern struct hostent   *gethostbyname(const char *name);
106 extern struct hostent   *gethostbyaddr(const void *addr, socklen_t len, int type);
107
108 extern void     setservent(int stayopen);
109 extern struct servent   *getservent(void);
110 extern void     enservent(void);
111
112 #ifdef __cplusplus
113 }
114 #endif
115
116 #endif
117

UCC git Repository :: git.ucc.asn.au