From: Amos Jeffries Date: Mon, 31 Mar 2008 10:45:54 +0000 (+1200) Subject: http_port tproxy options MUST imply transparent. X-Git-Tag: BASIC_TPROXY4~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e950e67373c9982fd7ad62cfe115ea000f31861c;p=thirdparty%2Fsquid.git http_port tproxy options MUST imply transparent. Also the TOS for IP_TRANSPARENT is apparently always '1' --- diff --git a/src/cache_cf.cc b/src/cache_cf.cc index d05034d035..37e1c31fe0 100644 --- a/src/cache_cf.cc +++ b/src/cache_cf.cc @@ -2931,6 +2931,7 @@ parse_http_port_option(http_port_list * s, char *token) } else if (strcmp(token, "tproxy") == 0) { s->tproxy = 1; + s->transparent = 1; need_linux_tproxy = 1; #if USE_IPV6 /* INET6: until transparent REDIRECT works on IPv6 SOCKET, force wildcard to IPv4 */ diff --git a/src/comm.cc b/src/comm.cc index cba7366226..5d88c9abec 100644 --- a/src/comm.cc +++ b/src/comm.cc @@ -629,9 +629,10 @@ comm_set_v6only(int fd, int tos) } void -comm_set_transparent(int fd, int tos) +comm_set_transparent(int fd) { #if LINUX_TPROXY4 + int tos = 1; if (setsockopt(fd, SOL_IP, IP_TRANSPARENT, (char *) &tos, sizeof(int)) < 0) { debugs(50, DBG_IMPORTANT, "comm_open: setsockopt(IP_TRANSPARENT) on FD " << fd << ": " << xstrerror()); }