Re: persistent connections and tcp_outgoing_address

From: Francisco Gimeno <kikov@dont-contact.us>
Date: Sat, 24 Feb 2007 17:14:15 +0100

Hello,

I finally did the patch, but it seems it doesn't work. Server persistence have
been lost forever. I suspect the problem is I use request->host in the Push
call, and I'm not sure it's the same as "domain". Or maybe the "0" in last
parameter to pconnPop?. Should I put fwdState->request->client_port ?

No peers are configured here.

Little patch here:

diff -ur squid-2.6.STABLE9/src/forward.c squid-2.6.9/src/forward.c
--- squid-2.6.STABLE9/src/forward.c 2007-01-19 01:21:01.000000000 +0100
+++ squid-2.6.9/src/forward.c 2007-02-24 15:49:32.000000000 +0100
@@ -520,7 +520,7 @@
        fd = pconnPop(name, port, domain, &fwdState->request->client_addr, 0);
 #endif
     if (fd == -1)
- fd = pconnPop(name, port, domain, NULL, 0);
+ fd = pconnPop(name, port, domain, &fwdState->request->client_addr, 0);
     if (fd != -1) {
        if (fwdCheckRetriable(fwdState)) {
            debug(17, 3) ("fwdConnectStart: reusing pconn FD %d\n", fd);

diff -ur squid-2.6.STABLE9/src/http.c squid-2.6.9/src/http.c
--- squid-2.6.STABLE9/src/http.c 2007-01-21 11:26:44.000000000 +0100
+++ squid-2.6.9/src/http.c 2007-02-24 15:49:04.000000000 +0100
@@ -826,7 +826,7 @@
                        else
                            pconnPush(fd, httpState->peer->name,
httpState->peer->http_port, NULL, client_addr, client_port);
                    } else {
- pconnPush(fd, request->host, request->port, NULL,
client_addr, client_port);
+ pconnPush(fd, request->host, request->port,
request->host, client_addr, client_port);
                    }
                    fwdComplete(httpState->fwd);
                    httpState->fd = -1;

> lör 2007-02-24 klockan 15:14 +0100 skrev Francisco Gimeno:
> > The reason is simple: we use the tcp_outgoing_address to identify set of
> > clients and give them different bandwidth with a Packeteer PacketShaper.
>
> Ok.
>
> > I have look the code, and I think I have found some interesting
> > functions. Basically, pconnPush that seems to put an idle connection in a
> > hashtable. I don't understand the function as it calls a lot of other
> > functions. It seems that an open connection is inserted in the hashtable
> > when idle.
>
> Correct.

Received on Sat Feb 24 2007 - 09:08:38 MST

This archive was generated by hypermail pre-2.1.9 : Thu Mar 01 2007 - 12:00:02 MST