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