delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin-developers/2002/01/09/16:03:41

Mailing-List: contact cygwin-developers-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-developers-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin-developers/>
List-Post: <mailto:cygwin-developers AT cygwin DOT com>
List-Help: <mailto:cygwin-developers-help AT cygwin DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-developers-owner AT cygwin DOT com
Delivered-To: mailing list cygwin-developers AT cygwin DOT com
Reply-To: <nhv AT cape DOT com>
From: "Norman Vine" <nhv AT cape DOT com>
To: <cygwin-developers AT cygwin DOT com>
Subject: RE: PostgreSQL and CVS DLL
Date: Wed, 9 Jan 2002 16:05:50 -0500
Message-ID: <018001c19951$6b733e80$a300a8c0@nhv>
MIME-Version: 1.0
X-Priority: 3 (Normal)
X-MSMail-Priority: Normal
X-Mailer: Microsoft Outlook 8.5, Build 4.71.2232.26
In-Reply-To: <20020109213020.E12057@cygbert.vinschen.de>
Importance: Normal
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200

Corinna Vinschen writes:
>
>On Wed, Jan 09, 2002 at 03:00:52PM -0500, Norman Vine wrote:
>> (gdb) bt full
>> #0  strncpy (dst0=0xa01d712 "", src0=0x0, count=109)
>>     at /src/cygwin/src/newlib/libc/string/strncpy.c:116
>>         dst0 = 0xa01d712 ""
>>         count = 109
>>         dst = 0xa01d712 ""
>>         src = 0x0
>>         aligned_dst = (long int *) 0xa01d712
>>         aligned_src = (long int *) 0x22f924
>> #1  0x61033758 in cygwin_getsockname (fd=7, addr=0xa01d710,
>> namelen=0x22f924)
>
>Is postgreSQL using socketpairs, perhaps?

Corinna

Today is the first time that I have looked at the postgreSQL source
and I know very little about socket programing but if you are asking 
does postgreSQL have a both a 'local' and a 'tcp' socket stream
it appears so.

HTH

Norman

!! HAVE_UNIX_SOCKETS == TRUE below

>#2  0x004bf0a6 in StreamConnection (server_fd=3, port=0xa01d5d0)
    at pqcomm.c:401

StreamConnection(int server_fd, Port *port)
...

#401	addrlen = sizeof(port->laddr);
	if (getsockname(port->sock, (struct sockaddr *) & port->laddr,
					&addrlen) < 0)
	{
		perror("postmaster: StreamConnection: getsockname");
		return STATUS_ERROR;
	}

	/* select NODELAY and KEEPALIVE options if it's a TCP connection */
	if (port->laddr.sa.sa_family == AF_INET)
	{
		int			on = 1;

		if (setsockopt(port->sock, IPPROTO_TCP, TCP_NODELAY,
					   (char *) &on, sizeof(on)) < 0)
		{
			perror("postmaster: StreamConnection: setsockopt(TCP_NODELAY)");
			return STATUS_ERROR;
		}
		if (setsockopt(port->sock, SOL_SOCKET, SO_KEEPALIVE,
					   (char *) &on, sizeof(on)) < 0)
		{
			perror("postmaster: StreamConnection: setsockopt(SO_KEEPALIVE)");
			return STATUS_ERROR;
		}
	}

#3  0x004f5a52 in ConnCreate (serverFd=3) at postmaster.c:1298
        port = (Port *) 0xa01d5d0
#4  0x004f4cda in ServerLoop () at postmaster.c:905
        port = (Port *) 0x0
        rmask = {fds_bits = {8, 0}}
        wmask = {fds_bits = {0, 0}}
        timeout = (struct timeval *) 0x0
        timeout_tv = {tv_sec = 0, tv_usec = 0}
---Type <return> to continue, or q <return> to quit---
        readmask = {fds_bits = {8, 0}}
        writemask = {fds_bits = {0, 0}}
        nSockets = 4
        curr = (Dlelem *) 0x10000000
        now = {tv_sec = 1010605539, tv_usec = 604000}
        later = {tv_sec = 1010605539, tv_usec = 614000}
        tz = {tz_minuteswest = 300, tz_dsttime = 1}

postmaster.c:905
#ifdef HAVE_UNIX_SOCKETS
		if (ServerSock_UNIX != INVALID_SOCK &&
			FD_ISSET(ServerSock_UNIX, &rmask) &&
			(port = ConnCreate(ServerSock_UNIX)) != NULL)
		{
			PacketReceiveSetup(&port->pktInfo,
							   readStartupPacket,
							   (void *) port);
		}
#endif

		if (ServerSock_INET != INVALID_SOCK &&
			FD_ISSET(ServerSock_INET, &rmask) &&
			(port = ConnCreate(ServerSock_INET)) != NULL)
		{
			PacketReceiveSetup(&port->pktInfo,
							   readStartupPacket,
							   (void *) port);
		}

		/*
		 * Scan active ports, processing any available input.  While we
		 * are at it, build up new masks for next select().
		 */
		nSockets = initMasks(&readmask, &writemask);

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019