Just tried to commit a fix to TS-1008 (low-hanging fruit)
in trunk. I'm getting 403 (Forbidden) from svn.
I was prepared for a possible 401, but whence 403?
Anyway, patch attached in case anyone else would care to
commit and fares better!
--
Nick Kew
Index: proxy/InkAPI.cc
===================================================================
--- proxy/InkAPI.cc (revision 1197204)
+++ proxy/InkAPI.cc (working copy)
@@ -5143,11 +5143,8 @@
}
sockaddr const*
-TSHttpTxnClientAddrGet(TSHttpTxn txnp)
+TSHttpSsnClientAddrGet(TSHttpSsn ssnp)
{
- sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
-
- TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
HttpClientSession *cs = reinterpret_cast<HttpClientSession *>(ssnp);
if (cs == NULL) return 0;
@@ -5157,6 +5154,14 @@
return vc->get_remote_addr();
}
+sockaddr const*
+TSHttpTxnClientAddrGet(TSHttpTxn txnp)
+{
+ sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
+
+ TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
+ return TSHttpSsnClientAddrGet(ssnp);
+}
unsigned int
TSHttpTxnClientIPGet(TSHttpTxn txnp)
@@ -5168,10 +5173,7 @@
}
sockaddr const*
-TSHttpTxnIncomingAddrGet(TSHttpTxn txnp) {
- sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
-
- TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
+TSHttpSsnIncomingAddrGet(TSHttpSsn ssnp) {
HttpClientSession *cs = reinterpret_cast<HttpClientSession *>(ssnp);
if (cs == NULL) return 0;
@@ -5181,6 +5183,13 @@
return vc->get_local_addr();
}
+sockaddr const*
+TSHttpTxnIncomingAddrGet(TSHttpTxn txnp) {
+ sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
+
+ TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
+ return TSHttpSsnIncomingAddrGet(ssnp);
+}
int
TSHttpTxnClientIncomingPortGet(TSHttpTxn txnp)
@@ -6768,12 +6777,10 @@
}
TSReturnCode
-TSHttpTxnClientFdGet(TSHttpTxn txnp, int *fdp)
+TSHttpSsnClientFdGet(TSHttpSsn ssnp, int *fdp)
{
- sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
sdk_assert(sdk_sanity_check_null_ptr((void*)fdp) == TS_SUCCESS);
- TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
HttpClientSession *cs = (HttpClientSession *) ssnp;
if (cs == NULL)
@@ -6786,7 +6793,16 @@
*fdp = vc->get_socket();
return TS_SUCCESS;
}
+TSReturnCode
+TSHttpTxnClientFdGet(TSHttpTxn txnp, int *fdp)
+{
+ sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
+ sdk_assert(sdk_sanity_check_null_ptr((void*)fdp) == TS_SUCCESS);
+ TSHttpSsn ssnp = TSHttpTxnSsnGet(txnp);
+ return TSHttpSsnClientFdGet(ssnp, fdp);
+}
+
TSReturnCode
TSHttpTxnClientRemotePortGet(TSHttpTxn txnp, int *portp)
{
Index: proxy/api/ts/ts.h.in
===================================================================
--- proxy/api/ts/ts.h.in (revision 1197204)
+++ proxy/api/ts/ts.h.in (working copy)
@@ -2147,7 +2147,13 @@
tsapi TSReturnCode TSHttpTxnClientFdGet(TSHttpTxn txnp, int* fdp);
tsapi TSReturnCode TSHttpTxnOutgoingAddrSet(TSHttpTxn txnp, struct sockaddr const* addr);
-
+
+ /* TS-1008: the above TXN calls for the Client conn should work with SSN */
+ tsapi struct sockaddr const* TSHttpSsnClientAddrGet(TSHttpSsn ssnp);
+ tsapi struct sockaddr const* TSHttpSsnIncomingAddrGet(TSHttpSsn ssnp);
+ tsapi TSReturnCode TSHttpSsnClientFdGet(TSHttpSsn ssnp, int* fdp);
+ /* TS-1008 END */
+
/** @deprecated Use TSHttpTxnClientAddrGet */
tsapi TS_DEPRECATED unsigned int TSHttpTxnClientIPGet(TSHttpTxn txnp);
/** @deprecated Use TSHttpTxnClientAddrGet */
Index: CHANGES
===================================================================
--- CHANGES (revision 1197204)
+++ CHANGES (working copy)
@@ -130,6 +130,8 @@
*) [TS-930] Fixed TSNetConnect to use network order for port.
+ *) [TS-1008] Add API to get TCP connection from SSN.
+
Changes with Apache Traffic Server 3.1.0
*) Make sure --enable-purify works again