[squid-dev] [PATCH] Support tunneling of bumped non-HTTP traffic. Other SslBump fixes.

Amos Jeffries squid3 at treenet.co.nz
Tue Nov 1 22:59:19 UTC 2016


On 2/11/2016 4:31 a.m., Christos Tsantilas wrote:
> On 10/28/2016 01:11 PM, Amos Jeffries wrote:
>> On 21/10/2016 3:55 a.m., Christos Tsantilas wrote:
>>>
>>> Support tunneling of bumped non-HTTP traffic. Other SslBump fixes.
>>>
>>> Use case: Skype groups appear to use TLS-encrypted MSNP protocol instead
>>> of HTTPS. This change allows Squid admins using SslBump to tunnel Skype
>>> groups and similar non-HTTP traffic bytes via "on_unsupported_protocol
>>> tunnel all". Previously, the combination resulted in encrypted HTTP 400
>>> (Bad Request) messages sent to the client (that does not speak HTTP).
>>>
>>> Also this patch:
>>>  * fixes bug 4529: !EBIT_TEST(entry->flags, ENTRY_FWD_HDR_WAIT)
>>>    assertion in FwdState.cc.
>>>
>>>  * when splicing transparent connections during SslBump step1, avoid
>>>    access-logging an extra record and log %ssl::bump_mode as the
>>> expected
>>>    "splice" not "none".
>>>
>>>  * handles an XXX comment inside clientTunnelOnError for possible memory
>>>    leak of client streams related objects
>>>
>>>  * fixes TunnelStateData logging in the case of splicing after peek.
>>>
>>> This is a Measurement Factory project.
>>
>>
>> Are any of these additional fixes able to be easily broken out into
>> separate patches? It would greatly help the auditing process to get
>> smaller patches.
>>
>> in src/FwdState.cc:
>>
>> * Most of the changed lines are a needless de-scoping of code.
>>  - note that the sub-scope existed to begin with so as to silence noisy
>> false-positives by static analysis tools (trunk rev.14790).
> 
> I make FwdState related fixes a separate patch and I remove it from main
> patch.
> Do you believe that the SQUID-211-FwdState_connectStart_cleanup-t1.patch
> will cause problems to Squid?
> We can just remove the line :
>   pinned_connection->stopPinnedConnectionMonitoring();
> 

It is not problems in Squid itself, but in the analysis tools being
confused. We can try this one and see how it goes.


>>
>>  - please take advantage of the surrounding code being re-written to
>> cleanup:
>>     if (peer_paths == NULL || peer_paths->size() < 1) {
>>         debugs(26, 3, HERE << "No paths found. Aborting CONNECT");
>> as:
>>     if (!peer_paths || peer_paths->size() < 1) {
>>         debugs(26, 3, "No paths found. Aborting CONNECT");
> 
> 
> I did not this fix Amos.
> I will make a separate commit after this patch committed if you want it.
> 

I'm okay with that. Please do it the way Alex suggested though that is
slightly better.

+1.

Amos


More information about the squid-dev mailing list