Updated Branches: refs/heads/master 938fa1ec2 -> ed8f6e9b0
Add a new field: '%<chp>', "client_host_port" to LogFormat Signed-off-by: Yunkai Zhang <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/ed8f6e9b Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/ed8f6e9b Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/ed8f6e9b Branch: refs/heads/master Commit: ed8f6e9b02170f311992dc5f00f9838b88ec7077 Parents: 938fa1e Author: Yunkai Zhang <[email protected]> Authored: Wed Nov 20 17:45:08 2013 +0800 Committer: Yunkai Zhang <[email protected]> Committed: Wed Nov 20 22:27:06 2013 +0800 ---------------------------------------------------------------------- proxy/ICPConfig.cc | 6 ++++++ proxy/ICPlog.h | 1 + proxy/logging/Log.cc | 7 +++++++ proxy/logging/LogAccess.cc | 9 +++++++++ proxy/logging/LogAccess.h | 1 + proxy/logging/LogAccessHttp.cc | 13 +++++++++++++ proxy/logging/LogAccessHttp.h | 1 + proxy/logging/LogAccessICP.cc | 13 +++++++++++++ proxy/logging/LogAccessICP.h | 3 ++- 9 files changed, 53 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/ICPConfig.cc ---------------------------------------------------------------------- diff --git a/proxy/ICPConfig.cc b/proxy/ICPConfig.cc index 01523f2..3e19557 100644 --- a/proxy/ICPConfig.cc +++ b/proxy/ICPConfig.cc @@ -1301,6 +1301,12 @@ ICPlog::GetClientIP() return &_s->_sender.sa; } +in_port_t +ICPlog::GetClientPort() +{ + return _s->_sender.port(); +} + SquidLogCode ICPlog::GetAction() { if (_s->_queryResult == CACHE_EVENT_LOOKUP) http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/ICPlog.h ---------------------------------------------------------------------- diff --git a/proxy/ICPlog.h b/proxy/ICPlog.h index a5e01d9..f7f37e9 100644 --- a/proxy/ICPlog.h +++ b/proxy/ICPlog.h @@ -52,6 +52,7 @@ public: } ink_hrtime GetElapsedTime(); sockaddr const* GetClientIP(); + in_port_t GetClientPort(); SquidLogCode GetAction(); const char *GetCode(); int GetSize(); http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/Log.cc ---------------------------------------------------------------------- diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc index 546f83f..6a64ce7 100644 --- a/proxy/logging/Log.cc +++ b/proxy/logging/Log.cc @@ -346,6 +346,13 @@ Log::init_fields() global_field_list.add(field, false); ink_hash_table_insert(field_symbol_hash, "chi", field); + field = NEW(new LogField("client_host_port", "chp", + LogField::sINT, + &LogAccess::marshal_client_host_port, + &LogAccess::unmarshal_int_to_str)); + global_field_list.add(field, false); + ink_hash_table_insert(field_symbol_hash, "chp", field); + field = NEW(new LogField("client_host_ip_hex", "chih", LogField::IP, &LogAccess::marshal_client_host_ip, http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccess.cc ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc index 4254569..60fc53c 100644 --- a/proxy/logging/LogAccess.cc +++ b/proxy/logging/LogAccess.cc @@ -84,6 +84,15 @@ LogAccess::marshal_client_host_ip(char *buf) -------------------------------------------------------------------------*/ int +LogAccess::marshal_client_host_port(char *buf) +{ + DEFAULT_INT_FIELD; +} + +/*------------------------------------------------------------------------- + -------------------------------------------------------------------------*/ + +int LogAccess::marshal_client_auth_user_name(char *buf) { DEFAULT_STR_FIELD; http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccess.h ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccess.h b/proxy/logging/LogAccess.h index eb10824..4438f7b 100644 --- a/proxy/logging/LogAccess.h +++ b/proxy/logging/LogAccess.h @@ -168,6 +168,7 @@ public: // client -> proxy fields // inkcoreapi virtual int marshal_client_host_ip(char *); // STR + inkcoreapi virtual int marshal_client_host_port(char *); // INT inkcoreapi virtual int marshal_client_auth_user_name(char *); // STR int marshal_client_req_timestamp_sec(char *); // INT http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccessHttp.cc ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccessHttp.cc b/proxy/logging/LogAccessHttp.cc index cc89abc..e527fd6 100644 --- a/proxy/logging/LogAccessHttp.cc +++ b/proxy/logging/LogAccessHttp.cc @@ -145,6 +145,19 @@ LogAccessHttp::marshal_client_host_ip(char *buf) } /*------------------------------------------------------------------------- + -------------------------------------------------------------------------*/ + +int +LogAccessHttp::marshal_client_host_port(char *buf) +{ + if (buf) { + uint16_t port = ntohs(m_http_sm->t_state.client_info.addr.port()); + marshal_int(buf, port); + } + return INK_MIN_ALIGN; +} + +/*------------------------------------------------------------------------- user authenticated to the proxy (RFC931) -------------------------------------------------------------------------*/ http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccessHttp.h ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccessHttp.h b/proxy/logging/LogAccessHttp.h index 88192d0..4d6abeb 100644 --- a/proxy/logging/LogAccessHttp.h +++ b/proxy/logging/LogAccessHttp.h @@ -56,6 +56,7 @@ public: // client -> proxy fields // virtual int marshal_client_host_ip(char *); // STR + virtual int marshal_client_host_port(char *); // INT virtual int marshal_client_auth_user_name(char *); // STR virtual int marshal_client_req_text(char *); // STR virtual int marshal_client_req_http_method(char *); // INT http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccessICP.cc ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccessICP.cc b/proxy/logging/LogAccessICP.cc index ebdd0df..5f9bb15 100644 --- a/proxy/logging/LogAccessICP.cc +++ b/proxy/logging/LogAccessICP.cc @@ -74,6 +74,19 @@ LogAccessICP::marshal_client_host_ip(char *buf) -------------------------------------------------------------------------*/ int +LogAccessICP::marshal_client_host_port(char *buf) +{ + if (buf) { + uint16_t port = ntohs(m_icp_log->GetClientPort()); + marshal_int(buf, port); + } + return INK_MIN_ALIGN; +} + +/*------------------------------------------------------------------------- + -------------------------------------------------------------------------*/ + +int LogAccessICP::marshal_client_auth_user_name(char *buf) { char *str = (char *) m_icp_log->GetIdent(); http://git-wip-us.apache.org/repos/asf/trafficserver/blob/ed8f6e9b/proxy/logging/LogAccessICP.h ---------------------------------------------------------------------- diff --git a/proxy/logging/LogAccessICP.h b/proxy/logging/LogAccessICP.h index 158d6bc..74eca8e 100644 --- a/proxy/logging/LogAccessICP.h +++ b/proxy/logging/LogAccessICP.h @@ -51,7 +51,8 @@ public: // // client -> proxy fields // - virtual int marshal_client_host_ip(char *); // INT + virtual int marshal_client_host_ip(char *); // STR + virtual int marshal_client_host_port(char *); // INT virtual int marshal_client_auth_user_name(char *); // STR virtual int marshal_client_req_text(char *); // STR virtual int marshal_client_req_http_method(char *); // INT
