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
 

Reply via email to