OSDN Git Service

Update copyright for 2009.
[pg-rex/syncrep.git] / src / include / libpq / ip.h
index ac782a0..24233dd 100644 (file)
@@ -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 <sys/socket.h>
-#include <netdb.h>
-#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 */