On Fri, Jan 29, 2010 at 03:59:29PM +0000, Graham Keeling wrote: > On Fri, Jan 29, 2010 at 11:35:00AM +0000, Graham Keeling wrote: > > Hello, > > > > I am trying to upgrade my squid from 2.5 to 3.1. > > I have got all my old configuration working on 3.1, except... > > I am coming across a problem with WCCPv1. > > > > 172.16.13.56 is the address of the squid box. > > 172.16.13.2 is the address of the cisco router. > > I have wccp_router=172.16.13.2 in my squid.conf. > > > > squid-2.5 connects to UDP port 2048, I get replies, and everything else then > > works. Here is a tcpdump of the initial connection: > > > > 16:12:13.404466 IP 172.16.13.56.2048 > 172.16.13.2.2048: UDP, length 52 > > 16:12:13.406764 IP 172.16.13.2.2048 > 172.16.13.56.2048: UDP, length 64 > > > > > > But, squid-3.1 looks like it is trying to connect to UDP port 0 on the cisco. > > Here is the equivalent tcpdump with squid-3.1: > > > > 15:59:10.093415 IP 172.16.13.56.2048 > 172.16.13.2.0: UDP, length 52 > > 15:59:10.094423 IP 172.16.13.2 > 172.16.13.56: ICMP 172.16.13.2 udp port 0 unreachable, length > > > > > > I have looked at the src/wccp.c for squid-2.5, and it is clear that the port is > > being set to 2048 for the connection to the router. > > I have also looked at the source for 2.6, 2.7 and 3.0 (src/wccp.cc for this > > version). > > In all those, it appears to be setting the port on the outgoing connection. > > > > However, in the 3.1 source, it doesn't. > > > > Is this a bug? > > > > Has anybody got WCCPv1 working with squid-3.1? > > > Further information: > I've now tried squid-3.0.STABLE21, and WCCPv1 worked fine. > > Conclusion: > WCCPv1 is broken in squid-3.1. > > Is this the correct list to be reporting this to? My squid-3.1 WCCPv1 appears to work with the attached patch that I just made.
diff -u -r1.1 wccp.cc --- src/wccp.cc 22 Dec 2009 13:54:53 -0000 1.1 +++ src/wccp.cc 29 Jan 2010 16:19:46 -0000 @@ -146,6 +146,7 @@ } Config.Wccp.address.SetPort(WCCP_PORT); + Config.Wccp.router.SetPort(WCCP_PORT); theWccpConnection = comm_open_listener(SOCK_DGRAM, IPPROTO_UDP,