diff options
author | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2016-09-02 13:49:59 +0300 |
---|---|---|
committer | Heikki Linnakangas <heikki.linnakangas@iki.fi> | 2016-09-02 13:49:59 +0300 |
commit | ec136d19b21791c845b1deeff43df137add0639e (patch) | |
tree | da3e71960dccc380627390bc211e31455c2f1223 /src/include/common/ip.h | |
parent | 9cca11c915e458323d0e746c68203f2c11da0302 (diff) | |
download | postgresql-ec136d19b21791c845b1deeff43df137add0639e.tar.gz postgresql-ec136d19b21791c845b1deeff43df137add0639e.zip |
Move code shared between libpq and backend from backend/libpq/ to common/.
When building libpq, ip.c and md5.c were symlinked or copied from
src/backend/libpq into src/interfaces/libpq, but now that we have a
directory specifically for routines that are shared between the server and
client binaries, src/common/, move them there.
Some routines in ip.c were only used in the backend. Keep those in
src/backend/libpq, but rename to ifaddr.c to avoid confusion with the file
that's now in common.
Fix the comment in src/common/Makefile to reflect how libpq actually links
those files.
There are two more files that libpq symlinks directly from src/backend:
encnames.c and wchar.c. I don't feel compelled to move those right now,
though.
Patch by Michael Paquier, with some changes by me.
Discussion: <69938195-9c76-8523-0af8-eb718ea5b36e@iki.fi>
Diffstat (limited to 'src/include/common/ip.h')
-rw-r--r-- | src/include/common/ip.h | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/include/common/ip.h b/src/include/common/ip.h new file mode 100644 index 00000000000..36e05113241 --- /dev/null +++ b/src/include/common/ip.h @@ -0,0 +1,37 @@ +/*------------------------------------------------------------------------- + * + * ip.h + * Definitions for IPv6-aware network access. + * + * These definitions are used by both frontend and backend code. + * + * Copyright (c) 2003-2016, PostgreSQL Global Development Group + * + * src/include/common/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 + +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); + +#endif /* IP_H */ |