]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Fix "address.GetPort() != 0" assertion for helpers on FreeBSD (at least).
authorAlex Rousskov <rousskov@measurement-factory.com>
Mon, 28 Jan 2013 11:29:16 +0000 (04:29 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Mon, 28 Jan 2013 11:29:16 +0000 (04:29 -0700)
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.

src/defines.h

index 0fe2e0129a21daa4fdf1e683d8671f502819d6ee..3f288a1af3d49597c94e985ddbbea3edb60265fc 100644 (file)
 #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 <sys/socket.h>
+#endif
+
 #if HAVE_SOCKETPAIR && defined (AF_UNIX)
 #define IPC_STREAM IPC_UNIX_STREAM
 #define IPC_DGRAM IPC_UNIX_DGRAM