[squid-dev] forward bumped traffic to parent in plain form

Alex Rousskov rousskov at measurement-factory.com
Tue Mar 31 18:49:41 UTC 2026


On 2026-03-31 12:32, Anthony Pankov wrote:

> May be you can target me to the point behind all bumping/ssl  logic
> where normal HTTP processing begin? I mean is there any creation of
> ClientHttpRequest derived from previously processed CONNECT tunnel?
> ClientHttpRequest with bumped ssl  as its I/O? That would do normal
> things like a cache lookup and forwarding to peers.


It is difficult for me to answer your question directly, and I worry 
that the question itself may be too loaded/misleading. ClientHttpRequest 
code may be used before and after the TLS connection is bumped, so that 
class itself does not represent a clear TLS/HTTP demarcation line. 
ClientHttpRequest also should not do I/O itself (but does trigger it).

The best guidance I can provide at this time is my earlier sketch at 
https://ml-archives.squid-cache.org/squid-dev/2026-March/009992.html

The closest my sketch comes to that demarcation line is 
clientNegotiateSSL() called from getSslContextDone() after that function 
calls httpsCreate(): On the code path altered according to that sketch,

* client-Squid communication before clientNegotiateSSL() is TLS;
* client-Squid communication after that is HTTP (on top of TLS).

Please keep in mind that clientNegotiateSSL() calls itself in an 
indirect loop, so "after" means something like "after 
clientNegotiateSSL() gets ioSuccess and calls readSomeData()".


Disclaimer: The untested narrative above is based on the master-derived 
code that I am currently working on. That code underwent lots of 
unofficial changes that are currently stuck in the Squid Project 
backlog. I hope that the overall picture is still about the same as far 
as this analysis is concerned, but some of those changes may seriously 
affect it, so YMMV.


HTH,

Alex.


> Thursday, March 26, 2026, 4:00:59 PM, you wrote:
> 
>> On 2026-03-26 08:14, Anthony Pankov wrote:
>>>> Tuesday, March 10, 2026, 10:12:46 PM, you wrote:
>>> ...
>>>> httpsSslBumpStep2AccessCheckDone() callback calls
>>>> startPeekAndSplice() (for the second time!) that gets to an httpsCreate() statement/line.
>>> ...
>>>> I'm very confusing about many reference to "PeekAndSplice" name in code.
>>> There is startPeekAndSplice, doPeekAndSpliceStep,
>>>           // Disable caching for bumpPeekAndSplice mode
>>>> The ' bumpPeekAndSplice' name is puzzling.
>>>> It is different from stare, peek, bump mode and ever with 'client-first'.
>>>> May be you can comment  what  a historical meaning of PeekAndSplice name.
> 
>> PeakAndSplice is a nickname of a project (or a set of features). It does not mean "peak and then splice". It kind of means "code that supports peek, splice, and bump actions".
> 
>> Initial SslBump implementation did not support those actions. Then we had a separate/followup PeekAndSplice project that added support for those actions.
> 
>> Overall SslBump code quality is terrible. Poorly chosen names and many misleading comments are not the worst bits, but they certainly do not help.
> 
>> Alex.
> 
> 
> 
> 



More information about the squid-dev mailing list