Re: [HACKERS] Snapshot 270198 compile error

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] Snapshot 270198 compile error
Дата
Msg-id 199801271950.OAA20007@candle.pha.pa.us
обсуждение исходный текст
Список 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
> > !  */

OK, I am with you.  Even better, let's use offset().  Takes care of
possible OS padding between fields too:

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


*** ./include/libpq/pqcomm.h.orig    Tue Jan 27 14:28:27 1998
--- ./include/libpq/pqcomm.h    Tue Jan 27 14:48:15 1998
***************
*** 35,44 ****

  #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
   */

--- 35,44 ----

  #define    UNIXSOCK_PATH(sun,port) \
      (sprintf((sun).sun_path, "/tmp/.s.PGSQL.%d", (port)) + \
!         offsetof(struct sockaddr_un, sun_path))
  /*
!  *        We do this because sun_len is in BSD's struct, while others don't.
!  *        We never actually set BSD's sun_len, and I can't think of a
   *        platform-safe way of doing it, but the code still works. bjm
   */



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

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

Предыдущее
От: Bruce Momjian
Дата:
Сообщение: Re: Frontend/Backend Protocol Patch
Следующее
От: Bruce Momjian
Дата:
Сообщение: deadlock detection