Re: [HACKERS] Snapshot 270198 compile error

Bruce Momjian <maillist@candle.pha.pa.us>

From: Bruce Momjian <maillist@candle.pha.pa.us>
To: goran@bildbasen.se (Goran Thyni)
Cc: fenix@am.ring.ru, pgsql-hackers@postgreSQL.org
Date: 1998-01-27T12:37:07Z
Lists: pgsql-hackers
> 
> 
>    On linux-elf:
>    pqcomm.c: In function `StreamServerPort':
>    pqcomm.c:605: structure has no member named `sun_len'
>    pqcomm.c: In function `StreamOpen':
>    pqcomm.c:760: structure has no member named `sun_len'
> 
> Yes,
> the sun_len member of struct sockaddr_un is BSD-specific.
> It is not there in Linux, nor in a SVR4-system we run here.
> 
> I had hard-coded the extra offset to 1 in the UNIXSOCK_PATH macro, 
> maybe 2 or 4 works OK on all systems.

Gee, thanks.  This does help tremendously.  The protocol overhaul person
did not have the sun_len field, thought the +1 as a mistake of counting
the trailing null and removed it.  I will apply the following patch
which should fix the situation.  One problem is that under BSD, we never
set the sun_len field, but it still seems to work, and I can't think of
a platform-safe way of doing the assignment, so I will leave it alone.

---------------------------------------------------------------------------

*** ./include/libpq/pqcomm.h.orig	Tue Jan 27 07:25:25 1998
--- ./include/libpq/pqcomm.h	Tue Jan 27 07:36:34 1998
***************
*** 35,42 ****
  
  #define	UNIXSOCK_PATH(sun,port) \
  	(sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port)) + \
! 		sizeof ((sun).sun_len) + sizeof ((sun).sun_family))
! 
  
  /*
   * These manipulate the frontend/backend protocol version number.
--- 35,46 ----
  
  #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
!  */
  
  /*
   * These manipulate the frontend/backend protocol version number.


-- 
Bruce Momjian
maillist@candle.pha.pa.us