Re: [HACKERS] Snapshot 270198 compile error

Phil Thompson <phil@river-bank.demon.co.uk>

From: Phil Thompson <phil@river-bank.demon.co.uk>
To: Bruce Momjian <maillist@candle.pha.pa.us>
Cc: Goran Thyni <goran@bildbasen.se>, fenix@am.ring.ru, pgsql-hackers@postgreSQL.org
Date: 1998-01-27T19:25:11Z
Lists: pgsql-hackers
Bruce Momjian wrote:

>   #define       UNIXSOCK_PATH(sun,port) \
>         (sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port)) + \
> !               + 1 + sizeof ((sun).sun_family))
> ! /*
> !  *            + 1 is for BSD-specific sizeof((sun).sun_len)
> !  *            We never actually set sun_len, and I can't think of a
> !  *            platform-safe way of doing it, but the code still works. bjm
> !  */

I don't think this is going to work.  On glibc2 you will end up with a
trailing '\0' in the socket name.  You won't be able to see it but I
think it will be there.  Is the following version portable?

#define	UNIXSOCK_PATH(sun,port) \
	(sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port)) + \
	((char *)&(sun).sun_path[0] - (char *)&(sun)))

Phil