I've dug into Lev's observation on the Transaction Start hook and blind tunnels some more. I'd like to pursue two issues so I'm dividing his note into two.

As the code currently stands, both TS_HTTP_TXN_START_HOOK and TS_HTTP_SSN_START_HOOK get called at the start of the session. TS_HTTP_SSN_START_HOOK gets involved explicitly from HttpClientSession::new_connection(). TS_HTTP_TXN_START_HOOK gets called from HttpSM::state_add_to_list. The TS_HTTP_TXN_START_HOOK gets called before any attempt is made to read the client header (at least for the first transaction).

At the end TS_HTTP_TXN_CLOSE_HOOK and TS_SSN_CLOSE_HOOK both get called (though in the wrong order in my opinion, but Alan says that this is a known issue).

Before I dig in and change anything, I want input from the community on the desired semantics of these hooks. In my opinion, the current implementation of the session hooks seem fine. But if there are in fact no HTTP transactions in the session (as is the case for blind tunnels), should the transaction hooks go off?

Reply via email to