I am not sure what kind of a connection the java client makes, but, I tried your plugin with chrome and it behaves as expected. 


[Mar  4 15:46:42.618] Server {0x2b1e80f0e700} DIAG: (atstest) at event:60012, clientReqHdrBytes:0, clientReqBdyBytes:0, clientRspHdrBytes:0, clientRspBdyBytes:0,             serverReqHdrBytes:0, serverReqBdyBytes:0, serverRspHdrBytes:0, serverRspBdyBytes:0
[Mar  4 15:46:43.169] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2214, clientReqBdyBytes:0, clientRspHdrBytes:1038, clientRspBdyBytes:79385,             serverReqHdrBytes:2336, serverReqBdyBytes:0, serverRspHdrBytes:967, serverRspBdyBytes:79385
[Mar  4 15:46:43.737] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2842, clientReqBdyBytes:0, clientRspHdrBytes:1329, clientRspBdyBytes:809,             serverReqHdrBytes:2964, serverReqBdyBytes:0, serverRspHdrBytes:1258, serverRspBdyBytes:809

[Mar  4 15:46:43.884] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:3281, clientReqBdyBytes:0, clientRspHdrBytes:1160, clientRspBdyBytes:1036,             serverReqHdrBytes:3403, serverReqBdyBytes:0, serverRspHdrBytes:1089, serverRspBdyBytes:1036
[Mar  4 15:46:50.221] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2214, clientReqBdyBytes:0, clientRspHdrBytes:1038, clientRspBdyBytes:79836,             serverReqHdrBytes:2336, serverReqBdyBytes:0, serverRspHdrBytes:967, serverRspBdyBytes:79836
[Mar  4 15:46:50.777] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2842, clientReqBdyBytes:0, clientRspHdrBytes:1329, clientRspBdyBytes:812,             serverReqHdrBytes:2964, serverReqBdyBytes:0, serverRspHdrBytes:1258, serverRspBdyBytes:812

[Mar  4 15:46:50.967] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:3281, clientReqBdyBytes:0, clientRspHdrBytes:1160, clientRspBdyBytes:1036,             serverReqHdrBytes:3403, serverReqBdyBytes:0, serverRspHdrBytes:1089, serverRspBdyBytes:1036
[Mar  4 15:46:55.745] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2214, clientReqBdyBytes:0, clientRspHdrBytes:1038, clientRspBdyBytes:79846,             serverReqHdrBytes:2336, serverReqBdyBytes:0, serverRspHdrBytes:967, serverRspBdyBytes:79846
[Mar  4 15:46:56.249] Server {0x2b1e8100f700} DIAG: (atstest) at event:60012, clientReqHdrBytes:2842, clientReqBdyBytes:0, clientRspHdrBytes:1329, clientRspBdyBytes:808,             serverReqHdrBytes:2964, serverReqBdyBytes:0, serverRspHdrBytes:1258, serverRspBdyBytes:808



Detailed logs are attached.



From: 毅程 <phillipchengyi@gmail.com>
To: users@trafficserver.apache.org; Alan Carroll <solidwallofcode@yahoo-inc.com>; Sudheer Vinukonda <sudheerv@yahoo-inc.com>; jpeach@apache.org
Sent: Wednesday, March 4, 2015 7:15 AM
Subject: Re: about event hooks for https messages

Hi:

Let me attach 
1. simple test plugin:testplugin.c
2. client side test script:ProxyTest.java
3. the output: log.txt

From these, we can see
when I send 2 http requests: (http://www.ebay.com/), all the triggers are invoked for each request, so the sequence is following:
60011- TS_EVENT_HTTP_TXN_START
60002- TS_EVENT_HTTP_READ_REQUEST_HDR
60004- TS_EVENT_HTTP_SEND_REQUEST_HDR
60006- TS_EVENT_HTTP_READ_RESPONSE_HDR
60007- TS_EVENT_HTTP_SEND_RESPONSE_HDR
60012- TS_EVENT_HTTP_TXN_CLOSE: here we have the clientRspBodyBytes: 160167

60011- TS_EVENT_HTTP_TXN_START
60002- TS_EVENT_HTTP_READ_REQUEST_HDR
60004- TS_EVENT_HTTP_SEND_REQUEST_HDR
60006- TS_EVENT_HTTP_READ_RESPONSE_HDR
60007- TS_EVENT_HTTP_SEND_RESPONSE_HDR
60012- TS_EVENT_HTTP_TXN_CLOSE: here we have the clientRspBodyBytes: 160167

when I send 2 https requests: (https://www.yahoo.com/), I got only following:

60011- TS_EVENT_HTTP_TXN_START
60002- TS_EVENT_HTTP_READ_REQUEST_HDR
60012- TS_EVENT_HTTP_TXN_CLOSE: here we have the clientRspBodyBytes: 680190 (this contains the size of 2 responses)


What I expected is I can get the same/similar hook callback for https.
Please review the test plugin code, client and log, if this is a problem, shall I open a jira for this?

Cheng Yi


2015-03-04 6:27 GMT-08:00 Alan Carroll <solidwallofcode@yahoo-inc.com>:


To emphasize James' point, there is no HTTPS engine, there is only the HTTP state machine. HTTPS simply has a different encoding on the wire, the internals as far as ATS is concerned are identical and handled by the same code.

What I would suspect is that his HTTPS connections are being blinded tunneled, not terminated, on ATS.