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
