You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by sh...@apache.org on 2015/07/08 14:25:37 UTC
[3/8] trafficserver git commit: Fix documentation,
add request-is-ssl (cqssl) log tag
Fix documentation, add request-is-ssl (cqssl) log tag
I'm usualy not fan of amending a branch to introduce new feature, but this one
worth it, as it relies directly on the code path (dynamic_cast) introduced to
fix TS-3683. Additionnaly it is related to improve measurements and related to
SSL as well.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/0413469c
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/0413469c
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/0413469c
Branch: refs/heads/master
Commit: 0413469cfa982308779807ed7ba72f69348c3d93
Parents: e7c0cab
Author: Francois Pesce <fp...@yahoo-inc.com>
Authored: Fri Jun 26 06:12:50 2015 -0700
Committer: Francois Pesce <fp...@yahoo-inc.com>
Committed: Fri Jun 26 06:12:50 2015 -0700
----------------------------------------------------------------------
doc/admin/event-logging-formats.en.rst | 6 ++++++
doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst | 2 +-
proxy/http/HttpSM.cc | 10 ++++++----
proxy/http/HttpSM.h | 1 +
proxy/logging/Log.cc | 5 +++++
proxy/logging/LogAccess.cc | 9 +++++++++
proxy/logging/LogAccess.h | 1 +
proxy/logging/LogAccessHttp.cc | 14 ++++++++++++++
proxy/logging/LogAccessHttp.h | 1 +
9 files changed, 44 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/doc/admin/event-logging-formats.en.rst
----------------------------------------------------------------------
diff --git a/doc/admin/event-logging-formats.en.rst b/doc/admin/event-logging-formats.en.rst
index 1b14d55..5529638 100644
--- a/doc/admin/event-logging-formats.en.rst
+++ b/doc/admin/event-logging-formats.en.rst
@@ -176,6 +176,12 @@ The following list describes Traffic Server custom logging fields.
The TCP reused status; indicates if this request went through an
already established connection.
+.. _cqssl:
+
+``cqssl``
+ The SSL client request status indicates if this client connection
+ is over SSL.
+
.. _cqssr:
``cqssr``
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst
----------------------------------------------------------------------
diff --git a/doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst b/doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst
index 64ad686..e98c550 100644
--- a/doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst
+++ b/doc/reference/api/TSNetVConnSSLCachedHitSet.en.rst
@@ -15,7 +15,7 @@
permissions and limitations under the License.
-TSVConnIsSsl
+TSNetVConnSSLCachedHitSet
============
Synopsis
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/http/HttpSM.cc
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.cc b/proxy/http/HttpSM.cc
index f246382..6df8d30 100644
--- a/proxy/http/HttpSM.cc
+++ b/proxy/http/HttpSM.cc
@@ -276,9 +276,9 @@ HttpSM::HttpSM()
client_request_hdr_bytes(0), client_request_body_bytes(0), server_request_hdr_bytes(0), server_request_body_bytes(0),
server_response_hdr_bytes(0), server_response_body_bytes(0), client_response_hdr_bytes(0), client_response_body_bytes(0),
cache_response_hdr_bytes(0), cache_response_body_bytes(0), pushed_response_hdr_bytes(0), pushed_response_body_bytes(0),
- client_tcp_reused(false), client_ssl_reused(false), plugin_tag(0), plugin_id(0), hooks_set(false),
- cur_hook_id(TS_HTTP_LAST_HOOK), cur_hook(NULL), cur_hooks(0), callout_state(HTTP_API_NO_CALLOUT), terminate_sm(false),
- kill_this_async_done(false), parse_range_done(false)
+ client_tcp_reused(false), client_ssl_reused(false), client_connection_is_ssl(false), plugin_tag(0), plugin_id(0),
+ hooks_set(false), cur_hook_id(TS_HTTP_LAST_HOOK), cur_hook(NULL), cur_hooks(0), callout_state(HTTP_API_NO_CALLOUT),
+ terminate_sm(false), kill_this_async_done(false), parse_range_done(false)
{
memset(&history, 0, sizeof(history));
memset(&vc_table, 0, sizeof(vc_table));
@@ -477,8 +477,10 @@ HttpSM::attach_client_session(HttpClientSession *client_vc, IOBufferReader *buff
// Collect log & stats information
client_tcp_reused = (1 < ua_session->get_transact_count()) ? true : false;
SSLNetVConnection *ssl_vc = dynamic_cast<SSLNetVConnection *>(ua_session->get_netvc());
- if (ssl_vc != NULL)
+ if (ssl_vc != NULL) {
+ client_connection_is_ssl = true;
client_ssl_reused = ssl_vc->getSSLSessionCacheHit();
+ }
ink_release_assert(ua_session->get_half_close_flag() == false);
mutex = client_vc->mutex;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/http/HttpSM.h
----------------------------------------------------------------------
diff --git a/proxy/http/HttpSM.h b/proxy/http/HttpSM.h
index e8f3f94..9508bbc 100644
--- a/proxy/http/HttpSM.h
+++ b/proxy/http/HttpSM.h
@@ -495,6 +495,7 @@ public:
int64_t pushed_response_body_bytes;
bool client_tcp_reused;
bool client_ssl_reused;
+ bool client_connection_is_ssl;
TransactionMilestones milestones;
ink_hrtime api_timer;
// The next two enable plugins to tag the state machine for
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/logging/Log.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc
index 92878a1..1e758bd 100644
--- a/proxy/logging/Log.cc
+++ b/proxy/logging/Log.cc
@@ -449,6 +449,11 @@ Log::init_fields()
global_field_list.add(field, false);
ink_hash_table_insert(field_symbol_hash, "cqtr", field);
+ field = new LogField("client_req_ssl_reused", "cqssl", LogField::dINT, &LogAccess::marshal_client_req_is_ssl,
+ &LogAccess::unmarshal_int_to_str);
+ global_field_list.add(field, false);
+ ink_hash_table_insert(field_symbol_hash, "cqssl", field);
+
field = new LogField("client_req_ssl_reused", "cqssr", LogField::dINT, &LogAccess::marshal_client_req_ssl_reused,
&LogAccess::unmarshal_int_to_str);
global_field_list.add(field, false);
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/logging/LogAccess.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc
index 4c3006f..a90a017 100644
--- a/proxy/logging/LogAccess.cc
+++ b/proxy/logging/LogAccess.cc
@@ -238,6 +238,15 @@ LogAccess::marshal_client_req_tcp_reused(char *buf)
-------------------------------------------------------------------------*/
int
+LogAccess::marshal_client_req_is_ssl(char *buf)
+{
+ DEFAULT_INT_FIELD;
+}
+
+/*-------------------------------------------------------------------------
+ -------------------------------------------------------------------------*/
+
+int
LogAccess::marshal_client_req_ssl_reused(char *buf)
{
DEFAULT_INT_FIELD;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/logging/LogAccess.h
----------------------------------------------------------------------
diff --git a/proxy/logging/LogAccess.h b/proxy/logging/LogAccess.h
index ae8e97f..ca7d77a 100644
--- a/proxy/logging/LogAccess.h
+++ b/proxy/logging/LogAccess.h
@@ -186,6 +186,7 @@ public:
inkcoreapi virtual int marshal_client_req_header_len(char *); // INT
inkcoreapi virtual int marshal_client_req_body_len(char *); // INT
inkcoreapi virtual int marshal_client_req_tcp_reused(char *); // INT
+ inkcoreapi virtual int marshal_client_req_is_ssl(char *); // INT
inkcoreapi virtual int marshal_client_req_ssl_reused(char *); // INT
inkcoreapi virtual int marshal_client_finish_status_code(char *); // INT
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/logging/LogAccessHttp.cc
----------------------------------------------------------------------
diff --git a/proxy/logging/LogAccessHttp.cc b/proxy/logging/LogAccessHttp.cc
index 62d650a..fb1b5a9 100644
--- a/proxy/logging/LogAccessHttp.cc
+++ b/proxy/logging/LogAccessHttp.cc
@@ -581,6 +581,20 @@ LogAccessHttp::marshal_client_req_tcp_reused(char *buf)
-------------------------------------------------------------------------*/
int
+LogAccessHttp::marshal_client_req_is_ssl(char *buf)
+{
+ if (buf) {
+ int64_t is_ssl;
+ is_ssl = m_http_sm->client_connection_is_ssl;
+ marshal_int(buf, is_ssl);
+ }
+ return INK_MIN_ALIGN;
+}
+
+/*-------------------------------------------------------------------------
+ -------------------------------------------------------------------------*/
+
+int
LogAccessHttp::marshal_client_req_ssl_reused(char *buf)
{
if (buf) {
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/0413469c/proxy/logging/LogAccessHttp.h
----------------------------------------------------------------------
diff --git a/proxy/logging/LogAccessHttp.h b/proxy/logging/LogAccessHttp.h
index 72d6f1a..e97eaa8 100644
--- a/proxy/logging/LogAccessHttp.h
+++ b/proxy/logging/LogAccessHttp.h
@@ -71,6 +71,7 @@ public:
virtual int marshal_client_req_header_len(char *); // INT
virtual int marshal_client_req_body_len(char *); // INT
virtual int marshal_client_req_tcp_reused(char *); // INT
+ virtual int marshal_client_req_is_ssl(char *); // INT
virtual int marshal_client_req_ssl_reused(char *); // INT
virtual int marshal_client_finish_status_code(char *); // INT