>From 791f9bcdda4653626a1bd2ff844a525a5acebbd2 Mon Sep 17 00:00:00 2001
From: Wolfgang Walter <tintenfi...@stusta.de>
Date: Sun, 6 Apr 2014 13:20:04 +0200
Subject: [PATCH 1/6] Logging: add %<pqsp>

pqsp logs the port of the server request (as pqsi does for IP address)
---
 proxy/logging/Log.cc           |  7 +++++++
 proxy/logging/LogAccess.cc     |  9 +++++++++
 proxy/logging/LogAccess.h      |  1 +
 proxy/logging/LogAccessHttp.cc | 10 ++++++++++
 proxy/logging/LogAccessHttp.h  |  1 +
 5 files changed, 28 insertions(+)

diff --git a/proxy/logging/Log.cc b/proxy/logging/Log.cc
index 8a7d0d5..560085c 100644
--- a/proxy/logging/Log.cc
+++ b/proxy/logging/Log.cc
@@ -665,6 +665,13 @@ Log::init_fields()
   global_field_list.add(field, false);
   ink_hash_table_insert(field_symbol_hash, "pqsi", field);
 
+  field = NEW(new LogField("proxy_req_server_port", "pqsp",
+                           LogField::sINT,
+                           &LogAccess::marshal_proxy_req_server_port,
+                           &LogAccess::unmarshal_int_to_str));
+  global_field_list.add(field, false);
+  ink_hash_table_insert(field_symbol_hash, "pqsp", field);
+
   Ptr<LogFieldAliasTable> hierarchy_map = make_ptr(NEW(new 
LogFieldAliasTable));
   hierarchy_map->init(36,
                       SQUID_HIER_EMPTY, "EMPTY",
diff --git a/proxy/logging/LogAccess.cc b/proxy/logging/LogAccess.cc
index 20121f7..5db1740 100644
--- a/proxy/logging/LogAccess.cc
+++ b/proxy/logging/LogAccess.cc
@@ -331,6 +331,15 @@ LogAccess::marshal_proxy_req_server_ip(char *buf)
   -------------------------------------------------------------------------*/
 
 int
+LogAccess::marshal_proxy_req_server_port(char *buf)
+{
+  DEFAULT_INT_FIELD;
+}
+
+/*-------------------------------------------------------------------------
+  -------------------------------------------------------------------------*/
+
+int
 LogAccess::marshal_proxy_hierarchy_route(char *buf)
 {
   DEFAULT_INT_FIELD;
diff --git a/proxy/logging/LogAccess.h b/proxy/logging/LogAccess.h
index 35291aa..909efb7 100644
--- a/proxy/logging/LogAccess.h
+++ b/proxy/logging/LogAccess.h
@@ -205,6 +205,7 @@ public:
   inkcoreapi virtual int marshal_proxy_req_body_len(char *);    // INT
   inkcoreapi virtual int marshal_proxy_req_server_name(char *); // STR
   inkcoreapi virtual int marshal_proxy_req_server_ip(char *);   // INT
+  inkcoreapi virtual int marshal_proxy_req_server_port(char *);   // INT
   inkcoreapi virtual int marshal_proxy_hierarchy_route(char *); // INT
   inkcoreapi virtual int marshal_proxy_host_name(char *);       // STR
   inkcoreapi virtual int marshal_proxy_host_ip(char *); // STR
diff --git a/proxy/logging/LogAccessHttp.cc b/proxy/logging/LogAccessHttp.cc
index 5ad308b..626e672 100644
--- a/proxy/logging/LogAccessHttp.cc
+++ b/proxy/logging/LogAccessHttp.cc
@@ -687,6 +687,16 @@ LogAccessHttp::marshal_proxy_req_server_ip(char *buf)
   return marshal_ip(buf, m_http_sm->t_state.current.server != NULL ? 
&m_http_sm->t_state.current.server->addr.sa : 0);
 }
 
+int
+LogAccessHttp::marshal_proxy_req_server_port(char *buf)
+{
+  if (buf) {
+    uint16_t port = m_http_sm->t_state.current.server != NULL ? 
m_http_sm->t_state.current.server->port : 0;
+    marshal_int(buf, port);
+  }
+  return INK_MIN_ALIGN;
+}
+
 /*-------------------------------------------------------------------------
   -------------------------------------------------------------------------*/
 
diff --git a/proxy/logging/LogAccessHttp.h b/proxy/logging/LogAccessHttp.h
index 9235441..cfd9f0a 100644
--- a/proxy/logging/LogAccessHttp.h
+++ b/proxy/logging/LogAccessHttp.h
@@ -91,6 +91,7 @@ public:
   virtual int marshal_proxy_req_body_len(char *);       // INT
   virtual int marshal_proxy_req_server_name(char *);    // STR
   virtual int marshal_proxy_req_server_ip(char *);      // INT
+  virtual int marshal_proxy_req_server_port(char *);    // INT
   virtual int marshal_proxy_hierarchy_route(char *);    // INT
 
   //
-- 
1.9.1


Reply via email to