mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
Patch from Goran Thyni
This commit is contained in:
parent
242625f26b
commit
50729ac764
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
int
|
||||||
StreamServerPort(char *hostName, short portName, int *fdP)
|
StreamServerPort(char *hostName, short portName, int *fdP)
|
||||||
{
|
{
|
||||||
struct sockaddr_in sin;
|
union {
|
||||||
struct sockaddr_un sun;
|
struct sockaddr_in in;
|
||||||
|
struct sockaddr_un un;
|
||||||
|
} saddr;
|
||||||
int fd, err, family;
|
int fd, err, family;
|
||||||
|
size_t len;
|
||||||
int one = 1;
|
int one = 1;
|
||||||
|
|
||||||
family = hostName != NULL ? AF_INET : AF_UNIX;
|
family = hostName != NULL ? AF_INET : AF_UNIX;
|
||||||
|
|
||||||
MemSet((char *) &sin, 0, sizeof sin);
|
|
||||||
|
|
||||||
if ((fd = socket(family, SOCK_STREAM, 0)) < 0)
|
if ((fd = socket(family, SOCK_STREAM, 0)) < 0)
|
||||||
{
|
{
|
||||||
sprintf(PQerrormsg,
|
sprintf(PQerrormsg,
|
||||||
@ -611,23 +612,21 @@ StreamServerPort(char *hostName, short portName, int *fdP)
|
|||||||
pqdebug("%s", PQerrormsg);
|
pqdebug("%s", PQerrormsg);
|
||||||
return (STATUS_ERROR);
|
return (STATUS_ERROR);
|
||||||
}
|
}
|
||||||
|
bzero(&saddr, sizeof(saddr));
|
||||||
if (family == AF_UNIX)
|
if (family == AF_UNIX)
|
||||||
{
|
{
|
||||||
size_t len;
|
saddr.un.sun_family = family;
|
||||||
bzero(&sun, sizeof(sun));
|
len = UNIXSOCK_PATH(saddr.un,portName);
|
||||||
sun.sun_family = family;
|
strcpy(sock_path, saddr.un.sun_path);
|
||||||
len = UNIXSOCK_PATH(sun,portName);
|
|
||||||
strcpy(sock_path, sun.sun_path);
|
|
||||||
err = bind(fd, (struct sockaddr *) &sun, len);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
bzero(&sin, sizeof(sin));
|
saddr.in.sin_family = family;
|
||||||
sin.sin_family = family;
|
saddr.in.sin_addr.s_addr = htonl(INADDR_ANY);
|
||||||
sin.sin_addr.s_addr = htonl(INADDR_ANY);
|
saddr.in.sin_port = htons(portName);
|
||||||
sin.sin_port = htons(portName);
|
len = sizeof saddr.in;
|
||||||
err = bind(fd, (struct sockaddr *) &sin, sizeof sin);
|
|
||||||
}
|
}
|
||||||
|
err = bind(fd, (struct sockaddr *) &saddr, len);
|
||||||
if (err < 0)
|
if (err < 0)
|
||||||
{
|
{
|
||||||
sprintf(PQerrormsg,
|
sprintf(PQerrormsg,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user