From 50729ac76421986a6bd7f19abb8178ceaec59db0 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Mon, 10 Nov 1997 02:21:18 +0000 Subject: [PATCH] Patch from Goran Thyni --- src/backend/libpq/pqcomm.c | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/src/backend/libpq/pqcomm.c b/src/backend/libpq/pqcomm.c index a75631e5f0..c3223bf82f 100644 --- a/src/backend/libpq/pqcomm.c +++ b/src/backend/libpq/pqcomm.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.24 1997/11/07 20:51:34 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.25 1997/11/10 02:21:18 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -582,15 +582,16 @@ static void do_unlink() int StreamServerPort(char *hostName, short portName, int *fdP) { - struct sockaddr_in sin; - struct sockaddr_un sun; + union { + struct sockaddr_in in; + struct sockaddr_un un; + } saddr; int fd, err, family; + size_t len; int one = 1; family = hostName != NULL ? AF_INET : AF_UNIX; - MemSet((char *) &sin, 0, sizeof sin); - if ((fd = socket(family, SOCK_STREAM, 0)) < 0) { sprintf(PQerrormsg, @@ -611,23 +612,21 @@ StreamServerPort(char *hostName, short portName, int *fdP) pqdebug("%s", PQerrormsg); return (STATUS_ERROR); } + bzero(&saddr, sizeof(saddr)); if (family == AF_UNIX) { - size_t len; - bzero(&sun, sizeof(sun)); - sun.sun_family = family; - len = UNIXSOCK_PATH(sun,portName); - strcpy(sock_path, sun.sun_path); - err = bind(fd, (struct sockaddr *) &sun, len); + saddr.un.sun_family = family; + len = UNIXSOCK_PATH(saddr.un,portName); + strcpy(sock_path, saddr.un.sun_path); } else { - bzero(&sin, sizeof(sin)); - sin.sin_family = family; - sin.sin_addr.s_addr = htonl(INADDR_ANY); - sin.sin_port = htons(portName); - err = bind(fd, (struct sockaddr *) &sin, sizeof sin); + saddr.in.sin_family = family; + saddr.in.sin_addr.s_addr = htonl(INADDR_ANY); + saddr.in.sin_port = htons(portName); + len = sizeof saddr.in; } + err = bind(fd, (struct sockaddr *) &saddr, len); if (err < 0) { sprintf(PQerrormsg, -- 2.40.0