OSDN Git Service

rebuid:
[eos/hostdependX86MAC64.git] / util / X86MAC64 / include / postgresql / server / libpq / ip.h
1 /*-------------------------------------------------------------------------
2  *
3  * ip.h
4  *        Definitions for IPv6-aware network access.
5  *
6  * These definitions are used by both frontend and backend code.  Be careful
7  * what you include here!
8  *
9  * Copyright (c) 2003-2014, PostgreSQL Global Development Group
10  *
11  * src/include/libpq/ip.h
12  *
13  *-------------------------------------------------------------------------
14  */
15 #ifndef IP_H
16 #define IP_H
17
18 #include "getaddrinfo.h"                /* pgrminclude ignore */
19 #include "libpq/pqcomm.h"               /* pgrminclude ignore */
20
21
22 #ifdef  HAVE_UNIX_SOCKETS
23 #define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
24 #else
25 #define IS_AF_UNIX(fam) (0)
26 #endif
27
28 typedef void (*PgIfAddrCallback) (struct sockaddr * addr,
29                                                                                           struct sockaddr * netmask,
30                                                                                           void *cb_data);
31
32 extern int pg_getaddrinfo_all(const char *hostname, const char *servname,
33                                    const struct addrinfo * hintp,
34                                    struct addrinfo ** result);
35 extern void pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo * ai);
36
37 extern int pg_getnameinfo_all(const struct sockaddr_storage * addr, int salen,
38                                    char *node, int nodelen,
39                                    char *service, int servicelen,
40                                    int flags);
41
42 extern int pg_range_sockaddr(const struct sockaddr_storage * addr,
43                                   const struct sockaddr_storage * netaddr,
44                                   const struct sockaddr_storage * netmask);
45
46 extern int pg_sockaddr_cidr_mask(struct sockaddr_storage * mask,
47                                           char *numbits, int family);
48
49 #ifdef HAVE_IPV6
50 extern void pg_promote_v4_to_v6_addr(struct sockaddr_storage * addr);
51 extern void pg_promote_v4_to_v6_mask(struct sockaddr_storage * addr);
52 #endif
53
54 extern int      pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data);
55
56 #endif   /* IP_H */