From 615757a1e926495097aaff016fb29bc427ee2de7 Mon Sep 17 00:00:00 2001
From: Michael Paquier <michael@otacoo.com>
Date: Fri, 19 Aug 2016 15:45:19 +0900
Subject: [PATCH 2/2] Move ip.c from src/backend/libpq to src/common

---
 src/backend/libpq/Makefile          |  2 +-
 src/backend/libpq/auth.c            |  2 +-
 src/backend/libpq/hba.c             |  2 +-
 src/backend/libpq/pqcomm.c          |  2 +-
 src/backend/postmaster/pgstat.c     |  2 +-
 src/backend/postmaster/postmaster.c |  2 +-
 src/backend/utils/adt/network.c     |  2 +-
 src/backend/utils/adt/pgstatfuncs.c |  2 +-
 src/common/Makefile                 |  2 +-
 src/{backend/libpq => common}/ip.c  | 11 +++++++----
 src/include/{libpq => common}/ip.h  |  5 ++---
 src/interfaces/libpq/Makefile       |  9 ++-------
 src/interfaces/libpq/fe-connect.c   |  2 +-
 src/tools/ifaddrs/Makefile          |  8 +++-----
 src/tools/ifaddrs/test_ifaddrs.c    |  2 +-
 src/tools/msvc/Mkvcbuild.pm         |  2 +-
 16 files changed, 26 insertions(+), 31 deletions(-)
 rename src/{backend/libpq => common}/ip.c (99%)
 rename src/include/{libpq => common}/ip.h (95%)

diff --git a/src/backend/libpq/Makefile b/src/backend/libpq/Makefile
index 82d424f..645fddb 100644
--- a/src/backend/libpq/Makefile
+++ b/src/backend/libpq/Makefile
@@ -14,7 +14,7 @@ include $(top_builddir)/src/Makefile.global
 
 # be-fsstubs is here for historical reasons, probably belongs elsewhere
 
-OBJS = be-fsstubs.o be-secure.o auth.o crypt.o hba.o ip.o pqcomm.o \
+OBJS = be-fsstubs.o be-secure.o auth.o crypt.o hba.o pqcomm.o \
        pqformat.o pqmq.o pqsignal.o
 
 ifeq ($(with_openssl),yes)
diff --git a/src/backend/libpq/auth.c b/src/backend/libpq/auth.c
index fd4bc4b..d907e6b 100644
--- a/src/backend/libpq/auth.c
+++ b/src/backend/libpq/auth.c
@@ -21,10 +21,10 @@
 #include <arpa/inet.h>
 #include <unistd.h>
 
+#include "common/ip.h"
 #include "common/md5.h"
 #include "libpq/auth.h"
 #include "libpq/crypt.h"
-#include "libpq/ip.h"
 #include "libpq/libpq.h"
 #include "libpq/pqformat.h"
 #include "miscadmin.h"
diff --git a/src/backend/libpq/hba.c b/src/backend/libpq/hba.c
index 1b4bbce..6f71342 100644
--- a/src/backend/libpq/hba.c
+++ b/src/backend/libpq/hba.c
@@ -26,7 +26,7 @@
 #include <unistd.h>
 
 #include "catalog/pg_collation.h"
-#include "libpq/ip.h"
+#include "common/ip.h"
 #include "libpq/libpq.h"
 #include "postmaster/postmaster.h"
 #include "regex/regex.h"
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index ba42753..857f529 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -89,7 +89,7 @@
 #include <mstcpip.h>
 #endif
 
-#include "libpq/ip.h"
+#include "common/ip.h"
 #include "libpq/libpq.h"
 #include "miscadmin.h"
 #include "storage/ipc.h"
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 8fa9edb..4df876d 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -38,7 +38,7 @@
 #include "access/xact.h"
 #include "catalog/pg_database.h"
 #include "catalog/pg_proc.h"
-#include "libpq/ip.h"
+#include "common/ip.h"
 #include "libpq/libpq.h"
 #include "libpq/pqsignal.h"
 #include "mb/pg_wchar.h"
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 05f3f14..23c221f 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -99,9 +99,9 @@
 #include "access/xlog.h"
 #include "bootstrap/bootstrap.h"
 #include "catalog/pg_control.h"
+#include "common/ip.h"
 #include "lib/ilist.h"
 #include "libpq/auth.h"
-#include "libpq/ip.h"
 #include "libpq/libpq.h"
 #include "libpq/pqsignal.h"
 #include "miscadmin.h"
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 1f8469a..729e8aa 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -14,7 +14,7 @@
 
 #include "access/hash.h"
 #include "catalog/pg_type.h"
-#include "libpq/ip.h"
+#include "common/ip.h"
 #include "libpq/libpq-be.h"
 #include "libpq/pqformat.h"
 #include "miscadmin.h"
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 1bba5fa..5d1ccf5 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -16,8 +16,8 @@
 
 #include "access/htup_details.h"
 #include "catalog/pg_type.h"
+#include "common/ip.h"
 #include "funcapi.h"
-#include "libpq/ip.h"
 #include "miscadmin.h"
 #include "pgstat.h"
 #include "storage/proc.h"
diff --git a/src/common/Makefile b/src/common/Makefile
index e245867..ea0729c 100644
--- a/src/common/Makefile
+++ b/src/common/Makefile
@@ -36,7 +36,7 @@ override CPPFLAGS += -DVAL_LDFLAGS_EX="\"$(LDFLAGS_EX)\""
 override CPPFLAGS += -DVAL_LDFLAGS_SL="\"$(LDFLAGS_SL)\""
 override CPPFLAGS += -DVAL_LIBS="\"$(LIBS)\""
 
-OBJS_COMMON = config_info.o controldata_utils.o exec.o keywords.o \
+OBJS_COMMON = config_info.o controldata_utils.o exec.o ip.o keywords.o \
 	md5.o pg_lzcompress.o pgfnames.o psprintf.o relpath.o rmtree.o \
 	string.o username.o wait_error.o
 
diff --git a/src/backend/libpq/ip.c b/src/common/ip.c
similarity index 99%
rename from src/backend/libpq/ip.c
rename to src/common/ip.c
index 9591ed2..f2a4a1a 100644
--- a/src/backend/libpq/ip.c
+++ b/src/common/ip.c
@@ -8,7 +8,7 @@
  *
  *
  * IDENTIFICATION
- *	  src/backend/libpq/ip.c
+ *	  src/common/ip.c
  *
  * This file and the IPV6 implementation were initially provided by
  * Nigel Kukard <nkukard@lbsd.net>, Linux Based Systems Design
@@ -17,8 +17,11 @@
  *-------------------------------------------------------------------------
  */
 
-/* This is intended to be used in both frontend and backend, so use c.h */
-#include "c.h"
+#ifndef FRONTEND
+#include "postgres.h"
+#else
+#include "postgres_fe.h"
+#endif
 
 #include <unistd.h>
 #include <sys/types.h>
@@ -32,7 +35,7 @@
 #include <arpa/inet.h>
 #include <sys/file.h>
 
-#include "libpq/ip.h"
+#include "common/ip.h"
 
 
 static int range_sockaddr_AF_INET(const struct sockaddr_in * addr,
diff --git a/src/include/libpq/ip.h b/src/include/common/ip.h
similarity index 95%
rename from src/include/libpq/ip.h
rename to src/include/common/ip.h
index ce9bc6e..7b91b0a 100644
--- a/src/include/libpq/ip.h
+++ b/src/include/common/ip.h
@@ -3,12 +3,11 @@
  * ip.h
  *	  Definitions for IPv6-aware network access.
  *
- * These definitions are used by both frontend and backend code.  Be careful
- * what you include here!
+ * These definitions are used by both frontend and backend code.
  *
  * Copyright (c) 2003-2016, PostgreSQL Global Development Group
  *
- * src/include/libpq/ip.h
+ * src/include/common/ip.h
  *
  *-------------------------------------------------------------------------
  */
diff --git a/src/interfaces/libpq/Makefile b/src/interfaces/libpq/Makefile
index f9b1aa9..c0e133b 100644
--- a/src/interfaces/libpq/Makefile
+++ b/src/interfaces/libpq/Makefile
@@ -39,12 +39,10 @@ OBJS += chklocale.o inet_net_ntop.o noblock.o pgstrcasecmp.o pqsignal.o \
 	thread.o
 # libpgport C files that are needed if identified by configure
 OBJS += $(filter crypt.o getaddrinfo.o getpeereid.o inet_aton.o open.o system.o snprintf.o strerror.o strlcpy.o win32error.o win32setlocale.o, $(LIBOBJS))
-# backend/libpq
-OBJS += ip.o
 # utils/mb
 OBJS += encnames.o wchar.o
 # common
-OBJS += md5.o
+OBJS += ip.o md5.o
 
 ifeq ($(with_openssl),yes)
 OBJS += fe-secure-openssl.o
@@ -98,10 +96,7 @@ backend_src = $(top_srcdir)/src/backend
 chklocale.c crypt.c getaddrinfo.c getpeereid.c inet_aton.c inet_net_ntop.c noblock.c open.c system.c pgsleep.c pgstrcasecmp.c pqsignal.c snprintf.c strerror.c strlcpy.c thread.c win32error.c win32setlocale.c: % : $(top_srcdir)/src/port/%
 	rm -f $@ && $(LN_S) $< .
 
-ip.c: % : $(backend_src)/libpq/%
-	rm -f $@ && $(LN_S) $< .
-
-md5.c: % : $(top_srcdir)/src/common/%
+ip.c md5.c: % : $(top_srcdir)/src/common/%
 	rm -f $@ && $(LN_S) $< .
 
 encnames.c wchar.c: % : $(backend_src)/utils/mb/%
diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 76b61bd..9668b52 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -72,7 +72,7 @@ static int ldapServiceLookup(const char *purl, PQconninfoOption *options,
 				  PQExpBuffer errorMessage);
 #endif
 
-#include "libpq/ip.h"
+#include "common/ip.h"
 #include "mb/pg_wchar.h"
 
 #ifndef FD_CLOEXEC
diff --git a/src/tools/ifaddrs/Makefile b/src/tools/ifaddrs/Makefile
index 231f388..6d22a2a 100644
--- a/src/tools/ifaddrs/Makefile
+++ b/src/tools/ifaddrs/Makefile
@@ -12,16 +12,14 @@ subdir = src/tools/ifaddrs
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
-libpq_backend_dir = $(top_builddir)/src/backend/libpq
-
-override CPPFLAGS := -I$(libpq_backend_dir) $(CPPFLAGS)
+override CPPFLAGS := -DFRONTEND -I. -I$(srcdir) -I$(libpq_srcdir) $(CPPFLAGS)
 
 OBJS = test_ifaddrs.o
 
 all: test_ifaddrs
 
-test_ifaddrs: test_ifaddrs.o $(libpq_backend_dir)/ip.o
-	$(CC) $(CFLAGS) test_ifaddrs.o $(libpq_backend_dir)/ip.o $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
+test_ifaddrs: test_ifaddrs.o
+	$(CC) $(CFLAGS) test_ifaddrs.o $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
 
 clean distclean maintainer-clean:
 	rm -f test_ifaddrs$(X) $(OBJS)
diff --git a/src/tools/ifaddrs/test_ifaddrs.c b/src/tools/ifaddrs/test_ifaddrs.c
index 48d184c..deaf2c6 100644
--- a/src/tools/ifaddrs/test_ifaddrs.c
+++ b/src/tools/ifaddrs/test_ifaddrs.c
@@ -12,7 +12,7 @@
 #include <netinet/in.h>
 #include <sys/socket.h>
 
-#include "libpq/ip.h"
+#include "common/ip.h"
 
 
 static void
diff --git a/src/tools/msvc/Mkvcbuild.pm b/src/tools/msvc/Mkvcbuild.pm
index 4f359d4..3837a30 100644
--- a/src/tools/msvc/Mkvcbuild.pm
+++ b/src/tools/msvc/Mkvcbuild.pm
@@ -110,7 +110,7 @@ sub mkvcbuild
 	}
 
 	our @pgcommonallfiles = qw(
-	  config_info.c controldata_utils.c exec.c keywords.c
+	  config_info.c controldata_utils.c exec.c ip.c keywords.c
 	  md5.c pg_lzcompress.c pgfnames.c psprintf.c relpath.c rmtree.c
 	  string.c username.c wait_error.c);
 
-- 
2.9.3

