X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Finclude%2Flibpq%2Fip.h;h=24233dd856251678bf095b37f4bd86e7c992e75a;hb=511db38ace2690f19816465baed07cefe535bfec;hp=ac782a03364599126b0b733f581d56e5e51c0fba;hpb=82a91eb54ed0c6561050a0ae01661ea6302445ba;p=pg-rex%2Fsyncrep.git diff --git a/src/include/libpq/ip.h b/src/include/libpq/ip.h index ac782a0336..24233dd856 100644 --- a/src/include/libpq/ip.h +++ b/src/include/libpq/ip.h @@ -1,28 +1,50 @@ +/*------------------------------------------------------------------------- + * + * 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-2009, PostgreSQL Global Development Group + * + * $PostgreSQL: pgsql/src/include/libpq/ip.h,v 1.21 2009/01/01 17:23:59 momjian Exp $ + * + *------------------------------------------------------------------------- + */ #ifndef IP_H #define IP_H -#include "c.h" -#include -#include -#include "libpq/pqcomm.h" -#ifndef HAVE_GETADDRINFO + #include "getaddrinfo.h" -#endif +#include "libpq/pqcomm.h" + + +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); -int getaddrinfo2(const char *hostname, const char *servname, - const struct addrinfo *hintp, struct addrinfo **result); -void freeaddrinfo2(int hint_ai_family, struct addrinfo *ai); - -char *SockAddr_ntop(const SockAddr *sa, char *dst, size_t cnt, int v4conv); -int SockAddr_pton(SockAddr *sa, const char *src); -int isAF_INETx(const int family); -int rangeSockAddr(const SockAddr *addr, const SockAddr *netaddr, - const SockAddr *netmask); -int rangeSockAddrAF_INET(const SockAddr *addr, const SockAddr *netaddr, - const SockAddr *netmask); #ifdef HAVE_IPV6 -int rangeSockAddrAF_INET6(const SockAddr *addr, const SockAddr *netaddr, - const SockAddr *netmask); -void convSockAddr6to4(const SockAddr *src, SockAddr *dst); +extern void pg_promote_v4_to_v6_addr(struct sockaddr_storage * addr); +extern void pg_promote_v4_to_v6_mask(struct sockaddr_storage * addr); +#endif + +#ifdef HAVE_UNIX_SOCKETS +#define IS_AF_UNIX(fam) ((fam) == AF_UNIX) +#else +#define IS_AF_UNIX(fam) (0) #endif -#endif /* IP_H */ +#endif /* IP_H */