[squid-users] deny_info and squid's own IP address?

Amish anon.amish at gmail.com
Wed May 2 15:01:56 UTC 2018


On Wednesday 02 May 2018 10:05 AM, Amos Jeffries wrote:
> On 02/05/18 16:20, Amish wrote:
>> Does request->masterXaction->tcpClient->local hold Squid IP incase of
>> intercepted traffic too?
> The listening address (if any) will be in
> request->masterXaction->squidPort->listenConn->local instead. It has no
> relation to the client TCP connection and may be :: or 0.0.0.0.
>   In this chain case request, squidPort, and listenConn may be nil.
>
> Amos
> _______________________________________________
> squid-users mailing list
> squid-users at lists.squid-cache.org
> http://lists.squid-cache.org/listinfo/squid-users

I am getting confused actually.

Squid 3.5
http://www.squid-cache.org/Versions/v3/3.5/cfgman/external_acl_type.html

Above says %MYADDR = Squid interface address

Squid 4 (external_acl_type uses logformat FORMATs)
And http://www.squid-cache.org/Doc/config/logformat/

This says %la = Local listening IP address the client connection was 
connected to

So description of %MYADDR and %la is different, but from source code 
(src/format/Token.cc) both appear to be same thing i.e. 
LFT_LOCAL_LISTENING_IP

But the code in Format.cc looks complicated then simple one line:

         case LFT_LOCAL_LISTENING_IP: {
             // avoid logging a dash if we have reliable info
             const bool interceptedAtKnownPort = al->request ?
(al->request->flags.interceptTproxy ||
al->request->flags.intercepted) && al->cache.port != NULL :
                                                 false;
             if (interceptedAtKnownPort) {
                 const bool portAddressConfigured = 
!al->cache.port->s.isAnyAddr();
                 if (portAddressConfigured)
                     out = al->cache.port->s.toStr(tmp, sizeof(tmp));
             } else if (al->tcpClient != NULL)
                 out = al->tcpClient->local.toStr(tmp, sizeof(tmp));
         }

So which is right way? Above code which considers interception too?

OR one of the lines below?

request->masterXaction->tcpClient->local
request->masterXaction->squidPort->listenConn->local

i.e. something like (in errorpage.cc)
case 'A':
     if (request && request->masterXaction->squidPort && 
request->masterXaction->squidPort->listenConn)
         mb.appendf("%s", 
request->masterXaction->squidPort->listenConn->local.toStr(ntoabuf,MAX_IPSTRLEN));
     else
         mb.appendf("%s", getMyHostname());


Note: Here %A would be same as %h if required information is not available.

Amish.

PS: Off for few days vacation - so may not be able to reply
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.squid-cache.org/pipermail/squid-users/attachments/20180502/9176e421/attachment.html>


More information about the squid-users mailing list