Skip to content

Commit 50729ac

Browse files
committed
Patch from Goran Thyni
1 parent 242625f commit 50729ac

File tree

1 file changed

+15
-16
lines changed

1 file changed

+15
-16
lines changed

src/backend/libpq/pqcomm.c

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.24 1997/11/07 20:51:34 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/libpq/pqcomm.c,v 1.25 1997/11/10 02:21:18 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -582,15 +582,16 @@ static void do_unlink()
582582
int
583583
StreamServerPort(char *hostName, short portName, int *fdP)
584584
{
585-
struct sockaddr_in sin;
586-
struct sockaddr_un sun;
585+
union {
586+
struct sockaddr_in in;
587+
struct sockaddr_un un;
588+
} saddr;
587589
int fd, err, family;
590+
size_t len;
588591
int one = 1;
589592

590593
family = hostName != NULL ? AF_INET : AF_UNIX;
591594

592-
MemSet((char *) &sin, 0, sizeof sin);
593-
594595
if ((fd = socket(family, SOCK_STREAM, 0)) < 0)
595596
{
596597
sprintf(PQerrormsg,
@@ -611,23 +612,21 @@ StreamServerPort(char *hostName, short portName, int *fdP)
611612
pqdebug("%s", PQerrormsg);
612613
return (STATUS_ERROR);
613614
}
615+
bzero(&saddr, sizeof(saddr));
614616
if (family == AF_UNIX)
615617
{
616-
size_t len;
617-
bzero(&sun, sizeof(sun));
618-
sun.sun_family = family;
619-
len = UNIXSOCK_PATH(sun,portName);
620-
strcpy(sock_path, sun.sun_path);
621-
err = bind(fd, (struct sockaddr *) &sun, len);
618+
saddr.un.sun_family = family;
619+
len = UNIXSOCK_PATH(saddr.un,portName);
620+
strcpy(sock_path, saddr.un.sun_path);
622621
}
623622
else
624623
{
625-
bzero(&sin, sizeof(sin));
626-
sin.sin_family = family;
627-
sin.sin_addr.s_addr = htonl(INADDR_ANY);
628-
sin.sin_port = htons(portName);
629-
err = bind(fd, (struct sockaddr *) &sin, sizeof sin);
624+
saddr.in.sin_family = family;
625+
saddr.in.sin_addr.s_addr = htonl(INADDR_ANY);
626+
saddr.in.sin_port = htons(portName);
627+
len = sizeof saddr.in;
630628
}
629+
err = bind(fd, (struct sockaddr *) &saddr, len);
631630
if (err < 0)
632631
{
633632
sprintf(PQerrormsg,

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy