2003-04-02 02:49:28 +02:00
|
|
|
/*-------------------------------------------------------------------------
|
|
|
|
*
|
|
|
|
* ip.h
|
|
|
|
* Definitions for IPv6-aware network access.
|
|
|
|
*
|
2005-01-01 21:44:34 +01:00
|
|
|
* Copyright (c) 2003-2005, PostgreSQL Global Development Group
|
2003-04-02 02:49:28 +02:00
|
|
|
*
|
2005-10-17 18:24:20 +02:00
|
|
|
* $PostgreSQL: pgsql/src/include/libpq/ip.h,v 1.15 2005/10/17 16:24:20 tgl Exp $
|
2003-04-02 02:49:28 +02:00
|
|
|
*
|
|
|
|
*-------------------------------------------------------------------------
|
|
|
|
*/
|
2003-01-06 04:18:27 +01:00
|
|
|
#ifndef IP_H
|
|
|
|
#define IP_H
|
2003-04-02 02:49:28 +02:00
|
|
|
|
2003-03-29 12:31:52 +01:00
|
|
|
#include "getaddrinfo.h"
|
2003-04-02 02:49:28 +02:00
|
|
|
#include "libpq/pqcomm.h"
|
|
|
|
|
|
|
|
|
2005-10-17 18:24:20 +02:00
|
|
|
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);
|
2003-07-24 01:30:41 +02:00
|
|
|
|
2005-10-17 18:24:20 +02:00
|
|
|
extern int pg_getnameinfo_all(const struct sockaddr_storage *addr, int salen,
|
2003-08-04 02:43:34 +02:00
|
|
|
char *node, int nodelen,
|
|
|
|
char *service, int servicelen,
|
|
|
|
int flags);
|
2003-01-06 04:18:27 +01:00
|
|
|
|
2005-10-17 18:24:20 +02:00
|
|
|
extern int pg_range_sockaddr(const struct sockaddr_storage *addr,
|
|
|
|
const struct sockaddr_storage *netaddr,
|
|
|
|
const struct sockaddr_storage *netmask);
|
2003-01-06 04:18:27 +01:00
|
|
|
|
2005-10-17 18:24:20 +02:00
|
|
|
extern int pg_sockaddr_cidr_mask(struct sockaddr_storage *mask,
|
2003-08-04 02:43:34 +02:00
|
|
|
char *numbits, int family);
|
2003-06-12 09:36:51 +02:00
|
|
|
|
2003-09-05 22:31:36 +02:00
|
|
|
#ifdef HAVE_IPV6
|
2005-10-17 18:24:20 +02:00
|
|
|
extern void pg_promote_v4_to_v6_addr(struct sockaddr_storage *addr);
|
|
|
|
extern void pg_promote_v4_to_v6_mask(struct sockaddr_storage *addr);
|
2003-09-05 22:31:36 +02:00
|
|
|
#endif
|
|
|
|
|
2003-06-12 09:36:51 +02:00
|
|
|
#ifdef HAVE_UNIX_SOCKETS
|
2003-08-04 02:43:34 +02:00
|
|
|
#define IS_AF_UNIX(fam) ((fam) == AF_UNIX)
|
2003-06-12 09:36:51 +02:00
|
|
|
#else
|
2003-08-04 02:43:34 +02:00
|
|
|
#define IS_AF_UNIX(fam) (0)
|
2003-06-12 09:36:51 +02:00
|
|
|
#endif
|
2003-01-06 04:18:27 +01:00
|
|
|
|
2003-08-04 02:43:34 +02:00
|
|
|
#endif /* IP_H */
|