Re: [HACKERS] Snapshot 270198 compile error

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] Snapshot 270198 compile error
Дата
Msg-id 199801271237.HAA00806@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] Snapshot 270198 compile error  (Goran Thyni <goran@bildbasen.se>)
Список 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

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: [HACKERS] postmaster crash and .s.pgsql file
Следующее
От: Serj
Дата:
Сообщение: Group By bug in snapshot 270198