123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- /*-------------------------------------------------------------------------
- *
- * ip.h
- * Definitions for IPv6-aware network access.
- *
- * These definitions are used by both frontend and backend code. Be careful
- * what you include here!
- *
- * Copyright (c) 2003-2016, PostgreSQL Global Development Group
- *
- * src/include/libpq/ip.h
- *
- *-------------------------------------------------------------------------
- */
- #ifndef IP_H
- #define IP_H
- #include "getaddrinfo.h" /* pgrminclude ignore */
- #include "libpq/pqcomm.h" /* pgrminclude ignore */
- #ifdef HAVE_UNIX_SOCKETS
- #define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
- #else
- #define IS_AF_UNIX(fam) (0)
- #endif
- typedef void (*PgIfAddrCallback) (struct sockaddr * addr,
- struct sockaddr * netmask,
- void *cb_data);
- extern int pg_getaddrinfo_all(const char *hostname, const char *servname,
- const struct addrinfo * hintp,
- struct addrinfo ** result);
- extern void pg_freeaddrinfo_all(int hint_ai_family, struct addrinfo * ai);
- extern int pg_getnameinfo_all(const struct sockaddr_storage * addr, int salen,
- char *node, int nodelen,
- char *service, int servicelen,
- int flags);
- extern int pg_range_sockaddr(const struct sockaddr_storage * addr,
- const struct sockaddr_storage * netaddr,
- const struct sockaddr_storage * netmask);
- extern int pg_sockaddr_cidr_mask(struct sockaddr_storage * mask,
- char *numbits, int family);
- extern int pg_foreach_ifaddr(PgIfAddrCallback callback, void *cb_data);
- #endif /* IP_H */
|