summaryrefslogtreecommitdiff
path: root/src/include/libpq/ifaddr.h
diff options
context:
space:
mode:
authorHeikki Linnakangas2016-09-02 10:49:59 +0000
committerHeikki Linnakangas2016-09-02 10:49:59 +0000
commitec136d19b21791c845b1deeff43df137add0639e (patch)
treeda3e71960dccc380627390bc211e31455c2f1223 /src/include/libpq/ifaddr.h
parent9cca11c915e458323d0e746c68203f2c11da0302 (diff)
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: <[email protected]>
Diffstat (limited to 'src/include/libpq/ifaddr.h')
-rw-r--r--src/include/libpq/ifaddr.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/include/libpq/ifaddr.h b/src/include/libpq/ifaddr.h
new file mode 100644
index 00000000000..40094a612a4
--- /dev/null
+++ b/src/include/libpq/ifaddr.h
@@ -0,0 +1,30 @@
+/*-------------------------------------------------------------------------
+ *
+ * ifaddr.h
+ * IP netmask calculations, and enumerating network interfaces.
+ *
+ * Copyright (c) 2003-2016, PostgreSQL Global Development Group
+ *
+ * src/include/libpq/ifaddr.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef IFADDR_H
+#define IFADDR_H
+
+#include "libpq/pqcomm.h" /* pgrminclude ignore */
+
+typedef void (*PgIfAddrCallback) (struct sockaddr * addr,
+ struct sockaddr * netmask,
+ void *cb_data);
+
+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 /* IFADDR_H */