Repository: trafficserver
Updated Branches:
  refs/heads/master ee3ab6533 -> 81c3eaf72


TS-2210: add a plugin API to manipulate the session's SSL context


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/81c3eaf7
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/81c3eaf7
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/81c3eaf7

Branch: refs/heads/master
Commit: 81c3eaf725118b108b44c0a6ebf86a939f0df5b3
Parents: ee3ab65
Author: Kang Li <[email protected]>
Authored: Tue Feb 25 16:46:31 2014 -0800
Committer: James Peach <[email protected]>
Committed: Tue Feb 25 16:46:31 2014 -0800

----------------------------------------------------------------------
 CHANGES              |  3 +++
 proxy/InkAPI.cc      | 18 ++++++++++++++++++
 proxy/api/ts/ts.h.in |  7 +++++++
 3 files changed, 28 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/81c3eaf7/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index 60030f7..b32e912 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,9 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.0.0
 
+  *) [TS-2210] Add a plugin API to manipulate the session's SSL context.
+   Author: Kang Li <[email protected]>
+
   *) [TS-2542] Turn on caching zero length responses by default.
 
   *) [TS-2405] Change the default for proxy.config.net.sock_option_flag_out to

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/81c3eaf7/proxy/InkAPI.cc
----------------------------------------------------------------------
diff --git a/proxy/InkAPI.cc b/proxy/InkAPI.cc
index e429103..07327a5 100644
--- a/proxy/InkAPI.cc
+++ b/proxy/InkAPI.cc
@@ -5184,6 +5184,24 @@ TSHttpTxnTransformRespGet(TSHttpTxn txnp, TSMBuffer 
*bufp, TSMLoc *obj)
   return TS_ERROR;
 }
 
+void *
+TSHttpSsnSSLConnectionGet(TSHttpSsn ssnp)
+{
+  sdk_assert(sdk_sanity_check_null_ptr((void*)ssnp) == TS_SUCCESS);
+
+  HttpClientSession *cs = reinterpret_cast<HttpClientSession *>(ssnp);
+  if (cs == NULL) {
+    return NULL;
+  }
+
+  SSLNetVConnection *ssl_vc = dynamic_cast<SSLNetVConnection 
*>(cs->get_netvc());
+  if (ssl_vc == NULL) {
+    return NULL;
+  }
+
+  return (void *)ssl_vc->ssl;
+}
+
 sockaddr const*
 TSHttpSsnClientAddrGet(TSHttpSsn ssnp)
 {

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/81c3eaf7/proxy/api/ts/ts.h.in
----------------------------------------------------------------------
diff --git a/proxy/api/ts/ts.h.in b/proxy/api/ts/ts.h.in
index d65f3a2..21ce25b 100644
--- a/proxy/api/ts/ts.h.in
+++ b/proxy/api/ts/ts.h.in
@@ -2373,6 +2373,13 @@ extern "C"
 
   tsapi void TSHttpTxnClientIncomingPortSet(TSHttpTxn txnp, int port);
 
+  /** Get SSL object of this session.
+      Retrieves the SSL object of the SSL connection.
+
+      @return SSL object of this session
+   */
+  tsapi void* TSHttpSsnSSLConnectionGet(TSHttpSsn ssnp); //returns SSL *
+
   /** Get client address for transaction @a txnp.
       Retrieves the socket address of the remote client that has
       connected to Traffic Server for transaction @a txnp. The

Reply via email to