aboutsummaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend')
-rw-r--r--src/backend/libpq/ip.c49
-rw-r--r--src/backend/libpq/pqcomm.c61
2 files changed, 16 insertions, 94 deletions
diff --git a/src/backend/libpq/ip.c b/src/backend/libpq/ip.c
index 20f5df311a8..3c3b872c1de 100644
--- a/src/backend/libpq/ip.c
+++ b/src/backend/libpq/ip.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/libpq/ip.c,v 1.2 2003/01/09 14:35:03 petere Exp $
+ * $Header: /cvsroot/pgsql/src/backend/libpq/ip.c,v 1.3 2003/03/29 11:31:51 petere Exp $
*
* This file and the IPV6 implementation were initially provided by
* Nigel Kukard <nkukard@lbsd.net>, Linux Based Systems Design
@@ -44,9 +44,9 @@
#define LOG stderr
#endif
-#if defined(HAVE_UNIX_SOCKETS) && defined(HAVE_IPV6)
+#if defined(HAVE_UNIX_SOCKETS)
static int getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
- struct addrinfo **result);
+ struct addrinfo **result);
#endif /* HAVE_UNIX_SOCKETS */
/*
@@ -54,48 +54,17 @@ static int getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
*/
int
getaddrinfo2(const char *hostname, const char *servname,
-#ifdef HAVE_IPV6
const struct addrinfo *hintp, struct addrinfo **result)
-#else
- int family, SockAddr *result)
-#endif
{
#ifdef HAVE_UNIX_SOCKETS
-#ifdef HAVE_IPV6
if (hintp != NULL && hintp->ai_family == AF_UNIX)
return getaddrinfo_unix(servname, hintp, result);
-#else
- if (family == AF_UNIX)
- return 0;
-#endif
else
{
#endif /* HAVE_UNIX_SOCKETS */
-#ifdef HAVE_IPV6
/* NULL has special meaning to getaddrinfo */
return getaddrinfo((!hostname || hostname[0] == '\0') ? NULL : hostname,
servname, hintp, result);
-#else
- if (hostname[0] == '\0')
- result->in.sin_addr.s_addr = htonl(INADDR_ANY);
- else
- {
- struct hostent *hp;
-
- hp = gethostbyname(hostname);
- if ((hp == NULL) || (hp->h_addrtype != AF_INET))
- {
- elog(LOG, "getaddrinfo2: gethostbyname(%s) failed\n", hostname);
- return STATUS_ERROR;
- }
- memmove((char *) &(result->in.sin_addr), (char *) hp->h_addr,
- hp->h_length);
- }
-
- result->in.sin_port = htons((unsigned short)atoi(servname));
- return 0;
-#endif /* HAVE_IPV6 */
-
#ifdef HAVE_UNIX_SOCKETS
}
#endif /* HAVE_UNIX_SOCKETS */
@@ -105,7 +74,6 @@ getaddrinfo2(const char *hostname, const char *servname,
/*
* freeaddrinfo2 - free IPv6 addrinfo structures
*/
-#ifdef HAVE_IPV6
void
freeaddrinfo2(int hint_ai_family, struct addrinfo *ai)
{
@@ -126,10 +94,9 @@ freeaddrinfo2(int hint_ai_family, struct addrinfo *ai)
#endif /* HAVE_UNIX_SOCKETS */
freeaddrinfo(ai);
}
-#endif
-#if defined(HAVE_UNIX_SOCKETS) && defined(HAVE_IPV6)
+#if defined(HAVE_UNIX_SOCKETS)
/* -------
* getaddrinfo_unix - get unix socket info using IPv6
*
@@ -140,7 +107,7 @@ freeaddrinfo2(int hint_ai_family, struct addrinfo *ai)
*/
static int
getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
- struct addrinfo **result)
+ struct addrinfo **result)
{
struct addrinfo hints;
struct addrinfo *aip;
@@ -159,9 +126,9 @@ getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
if (hints.ai_socktype == 0)
hints.ai_socktype = SOCK_STREAM;
- if (!(hints.ai_family == AF_UNIX))
+ if (hints.ai_family != AF_UNIX)
{
- elog(LOG, "hints.ai_family is invalied getaddrinfo_unix()\n");
+ elog(LOG, "hints.ai_family is invalid in getaddrinfo_unix()\n");
return EAI_ADDRFAMILY;
}
@@ -197,7 +164,7 @@ getaddrinfo_unix(const char *path, const struct addrinfo *hintsp,
return 0;
}
-#endif /* HAVE_UNIX_SOCKETS && HAVE_IPV6 */
+#endif /* HAVE_UNIX_SOCKETS */
/* ----------
* SockAddr_ntop - set IP address string from SockAddr
diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c
index 8c6e1dc6d0b..20954a4ecf1 100644
--- a/src/backend/libpq/pqcomm.c
+++ b/src/backend/libpq/pqcomm.c
@@ -29,7 +29,7 @@
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $Id: pqcomm.c,v 1.147 2003/01/25 05:19:46 tgl Exp $
+ * $Id: pqcomm.c,v 1.148 2003/03/29 11:31:51 petere Exp $
*
*-------------------------------------------------------------------------
*/
@@ -96,13 +96,6 @@ static int Lock_AF_UNIX(unsigned short portNumber, char *unixSocketName);
static int Setup_AF_UNIX(void);
#endif /* HAVE_UNIX_SOCKETS */
-#ifdef HAVE_IPV6
-#define FREEADDRINFO2(family, addrs) freeaddrinfo2((family), (addrs))
-#else
-/* do nothing */
-#define FREEADDRINFO2(family, addrs) do {} while (0)
-#endif
-
/*
* Configuration options
@@ -208,13 +201,6 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
int ret;
char portNumberStr[64];
char *service;
-
- /*
- * IPv6 address lookups use a hint structure, while IPv4 creates an
- * address structure directly.
- */
-
-#ifdef HAVE_IPV6
struct addrinfo *addrs = NULL;
struct addrinfo hint;
@@ -225,16 +211,6 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
hint.ai_family = family;
hint.ai_flags = AI_PASSIVE;
hint.ai_socktype = SOCK_STREAM;
-#else
- SockAddr saddr;
- size_t len;
-
- Assert(family == AF_INET || family == AF_UNIX);
-
- /* Initialize address structure */
- MemSet((char *) &saddr, 0, sizeof(saddr));
- saddr.sa.sa_family = family;
-#endif /* HAVE_IPV6 */
#ifdef HAVE_UNIX_SOCKETS
if (family == AF_UNIX)
@@ -242,38 +218,21 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
if (Lock_AF_UNIX(portNumber, unixSocketName) != STATUS_OK)
return STATUS_ERROR;
service = sock_path;
-#ifndef HAVE_IPV6
- UNIXSOCK_PATH(saddr.un, portNumber, unixSocketName);
- len = UNIXSOCK_LEN(saddr.un);
-#endif
}
else
#endif /* HAVE_UNIX_SOCKETS */
{
snprintf(portNumberStr, sizeof(portNumberStr), "%d", portNumber);
service = portNumberStr;
-#ifndef HAVE_IPV6
- len = sizeof(saddr.in);
-#endif
}
- /* Look up name using IPv6 or IPv4 routines */
-#ifdef HAVE_IPV6
ret = getaddrinfo2(hostName, service, &hint, &addrs);
if (ret || addrs == NULL)
-#else
- ret = getaddrinfo2(hostName, service, family, &saddr);
- if (ret)
-#endif
{
elog(LOG, "server socket failure: getaddrinfo2()%s: %s",
-#ifdef HAVE_IPV6
(family == AF_INET6) ? " using IPv6" : "", gai_strerror(ret));
if (addrs != NULL)
- FREEADDRINFO2(hint.ai_family, addrs);
-#else
- "", hostName);
-#endif
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
@@ -281,7 +240,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
{
elog(LOG, "server socket failure: socket(): %s",
strerror(errno));
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
@@ -292,17 +251,13 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
{
elog(LOG, "server socket failure: setsockopt(SO_REUSEADDR): %s",
strerror(errno));
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
}
-#ifdef HAVE_IPV6
Assert(addrs->ai_next == NULL && addrs->ai_family == family);
err = bind(fd, addrs->ai_addr, addrs->ai_addrlen);
-#else
- err = bind(fd, (struct sockaddr *) &saddr.sa, len);
-#endif
if (err < 0)
{
elog(LOG, "server socket failure: bind(): %s\n"
@@ -313,7 +268,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
sock_path);
else
elog(LOG, "\tIf not, wait a few seconds and retry.");
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
@@ -322,7 +277,7 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
{
if (Setup_AF_UNIX() != STATUS_OK)
{
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
}
@@ -342,12 +297,12 @@ StreamServerPort(int family, char *hostName, unsigned short portNumber,
{
elog(LOG, "server socket failure: listen(): %s",
strerror(errno));
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_ERROR;
}
*fdP = fd;
- FREEADDRINFO2(hint.ai_family, addrs);
+ freeaddrinfo2(hint.ai_family, addrs);
return STATUS_OK;
}