From: Alex Rousskov Date: Sat, 12 Jan 2013 18:34:10 +0000 (-0700) Subject: Fix "address.GetPort() != 0" assertion for helpers on FreeBSD (at least). X-Git-Tag: SQUID_3_4_0_1~383 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b34651543933a237a0f70aa0c69f708cf62168a;p=thirdparty%2Fsquid.git Fix "address.GetPort() != 0" assertion for helpers on FreeBSD (at least). The order (or set of?) #include files used by src/ssl/helper.cc (and probably by other helper source files) has changed recently, exposing a defines.h dependency on sys/socket.h where that system header is required to define AF_UNIX. With AF_UNIX incorrectly undefined, IPC_STREAM was set to IPC_TCP_SOCKET instead of IPC_UNIX_STREAM, and helpers that do not have a notion of a listening port, were trying to create communication sockets using TCP streams, triggering a "must have a port" assertion in comm_connect_addr() called from ipcCreate(). TODO: Moving IPC_* defines into an IPC-specific header file may be a better solution then exposing all defines.h users to sys/socket.h. --- diff --git a/src/defines.h b/src/defines.h index a55b8dbd18..3c42025742 100644 --- a/src/defines.h +++ b/src/defines.h @@ -173,6 +173,11 @@ #define IPC_UNIX_STREAM 4 #define IPC_UNIX_DGRAM 5 +/* required for AF_UNIX below to be defined [on FreeBSD] */ +#if HAVE_SYS_SOCKET_H +#include +#endif + #if HAVE_SOCKETPAIR && defined (AF_UNIX) #define IPC_STREAM IPC_UNIX_STREAM #define IPC_DGRAM IPC_UNIX_DGRAM