You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2011/02/17 04:13:31 UTC

svn commit: r1071495 - in /trafficserver/traffic/trunk: CHANGES example/blacklist-1/blacklist-1.c example/protocol/Protocol.c example/thread-pool/psi.c proxy/InkAPI.cc proxy/InkAPITest.cc proxy/InkIOCoreAPI.cc proxy/api/ts/ts.h.in

Author: zwoop
Date: Thu Feb 17 03:13:31 2011
New Revision: 1071495

URL: http://svn.apache.org/viewvc?rev=1071495&view=rev
Log:
TS-590 A few more changes per suggestions from amc

Modified:
    trafficserver/traffic/trunk/CHANGES
    trafficserver/traffic/trunk/example/blacklist-1/blacklist-1.c
    trafficserver/traffic/trunk/example/protocol/Protocol.c
    trafficserver/traffic/trunk/example/thread-pool/psi.c
    trafficserver/traffic/trunk/proxy/InkAPI.cc
    trafficserver/traffic/trunk/proxy/InkAPITest.cc
    trafficserver/traffic/trunk/proxy/InkIOCoreAPI.cc
    trafficserver/traffic/trunk/proxy/api/ts/ts.h.in

Modified: trafficserver/traffic/trunk/CHANGES
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/CHANGES?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/CHANGES (original)
+++ trafficserver/traffic/trunk/CHANGES Thu Feb 17 03:13:31 2011
@@ -1,6 +1,13 @@
                                                          -*- coding: utf-8 -*-
 
 Changes with Apache Traffic Server 2.1.6
+  *) [TS-590] Cleanup all SDK APIs to be more consistent. This
+  changes a large number of APIs, so please check updated docs
+  and signatures in ts/ts.h.
+
+  *) [TS-673] Make the default configurations more conservative
+  for when content is cacheable.
+
   *) [TS-672] remove unused/unreferenced Win32 header files and
    code paths
 

Modified: trafficserver/traffic/trunk/example/blacklist-1/blacklist-1.c
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/example/blacklist-1/blacklist-1.c?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/example/blacklist-1/blacklist-1.c (original)
+++ trafficserver/traffic/trunk/example/blacklist-1/blacklist-1.c Thu Feb 17 03:13:31 2011
@@ -74,7 +74,6 @@ handle_dns(TSHttpTxn txnp, TSCont contp)
   const char *host;
   int i;
   int host_length;
-  int lock;
 
   if (TSHttpTxnClientReqGet(txnp, &bufp, &hdr_loc) != TS_SUCCESS) {
     TSError("couldn't retrieve client request header\n");
@@ -97,9 +96,7 @@ handle_dns(TSHttpTxn txnp, TSCont contp)
 
   /* We need to lock the sites_mutex as that is the mutex that is
      protecting the global list of all blacklisted sites. */
-
-  TSMutexLockTry(sites_mutex, &lock);
-  if (!lock) {
+  if (!TSMutexLockTry(sites_mutex)) {
     TSDebug("blacklist-1", "Unable to get lock. Will retry after some time");
     TSHandleMLocRelease(bufp, hdr_loc, url_loc);
     TSHandleMLocRelease(bufp, TS_NULL_MLOC, hdr_loc);
@@ -182,16 +179,13 @@ read_blacklist(TSCont contp)
 {
   char blacklist_file[1024];
   TSFile file;
-  int lock;
 
   sprintf(blacklist_file, "%s/blacklist.txt", TSPluginDirGet());
   file = TSfopen(blacklist_file, "r");
-
-  TSMutexLockTry(sites_mutex, &lock);
   nsites = 0;
 
   /* If the Mutext lock is not successful try again in RETRY_TIME */
-  if (!lock) {
+  if (!TSMutexLockTry(sites_mutex)) {
     TSContSchedule(contp, RETRY_TIME, TS_THREAD_POOL_DEFAULT);
     return;
   }

Modified: trafficserver/traffic/trunk/example/protocol/Protocol.c
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/example/protocol/Protocol.c?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/example/protocol/Protocol.c (original)
+++ trafficserver/traffic/trunk/example/protocol/Protocol.c Thu Feb 17 03:13:31 2011
@@ -44,7 +44,6 @@ accept_handler(TSCont contp, TSEvent eve
 {
   TSCont txn_sm;
   TSMutex pmutex;
-  int lock;
 
   switch (event) {
   case TS_EVENT_NET_ACCEPT:
@@ -55,7 +54,7 @@ accept_handler(TSCont contp, TSEvent eve
 
     /* This is no reason for not grabbing the lock.
        So skip the routine which handle LockTry failure case. */
-    TSMutexLockTry(pmutex, &lock);
+    TSMutexLockTry(pmutex); // TODO: why should it not check if we got the lock??
     TSContCall(txn_sm, 0, NULL);
     TSMutexUnlock(pmutex);
     break;

Modified: trafficserver/traffic/trunk/example/thread-pool/psi.c
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/example/thread-pool/psi.c?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/example/thread-pool/psi.c (original)
+++ trafficserver/traffic/trunk/example/thread-pool/psi.c Thu Feb 17 03:13:31 2011
@@ -771,17 +771,17 @@ transform_handler(TSCont contp, TSEvent 
 {
   TSVIO input_vio;
   ContData *data;
-  int state, lock, retval;
+  int state, retval;
 
   /* This section will be called by both TS internal
      and the thread. Protect it with a mutex to avoid
      concurrent calls. */
-  TSMutexLockTry(TSContMutexGet(contp), &lock);
 
   /* Handle TryLock result */
-  if (!lock) {
+  if (!TSMutexLockTry(TSContMutexGet(contp))) {
     TSCont c = TSContCreate(trylock_handler, NULL);
     TryLockData *d = TSmalloc(sizeof(TryLockData));
+
     d->contp = contp;
     d->event = event;
     TSContDataSet(c, d);

Modified: trafficserver/traffic/trunk/proxy/InkAPI.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkAPI.cc?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkAPI.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkAPI.cc Thu Feb 17 03:13:31 2011
@@ -2050,6 +2050,7 @@ TSUrlStringGet(TSMBuffer bufp, TSMLoc ob
 {
   sdk_assert(sdk_sanity_check_mbuffer(bufp) == TS_SUCCESS);
   sdk_assert(sdk_sanity_check_url_handle(obj) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   URLImpl *url_impl = (URLImpl *) obj;
   return url_string_get(url_impl, NULL, length, NULL);
@@ -2939,15 +2940,10 @@ TSMimeHdrFieldNameGet(TSMBuffer bufp, TS
   sdk_assert((sdk_sanity_check_mime_hdr_handle(hdr) == TS_SUCCESS) ||
              (sdk_sanity_check_http_hdr_handle(hdr) == TS_SUCCESS));
   sdk_assert(sdk_sanity_check_field_handle(field, hdr) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
-  int name_len;
-  const char *name_ptr;
   MIMEFieldSDKHandle *handle = (MIMEFieldSDKHandle *) field;
-
-  name_ptr = mime_field_name_get(handle->field_ptr, &name_len);
-  if (length)
-    *length = name_len;
-  return name_ptr;
+  return mime_field_name_get(handle->field_ptr, length);
 }
 
 TSReturnCode
@@ -3617,6 +3613,7 @@ TSHttpHdrMethodGet(TSMBuffer bufp, TSMLo
 {
   sdk_assert(sdk_sanity_check_mbuffer(bufp) == TS_SUCCESS);
   sdk_assert(sdk_sanity_check_http_hdr_handle(obj) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   HTTPHdr h;
 
@@ -3726,6 +3723,7 @@ TSHttpHdrReasonGet(TSMBuffer bufp, TSMLo
 {
   sdk_assert(sdk_sanity_check_mbuffer(bufp) == TS_SUCCESS);
   sdk_assert(sdk_sanity_check_http_hdr_handle(obj) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   HTTPHdr h;
 
@@ -4415,6 +4413,7 @@ char*
 TSHttpTxnEffectiveUrlStringGet(TSHttpTxn txnp, int* length)
 {
   sdk_assert(TS_SUCCESS == sdk_sanity_check_txn(txnp));
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   HttpSM *sm = reinterpret_cast<HttpSM*>(txnp);
   return sm->t_state.hdr_info.client_request.url_string_get(0, length);
@@ -6938,6 +6937,7 @@ char*
 TSFetchRespGet(TSHttpTxn txnp, int *length)
 {
   sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   FetchSM *fetch_sm = (FetchSM*)txnp;
   return fetch_sm->resp_get(length);
@@ -7427,14 +7427,14 @@ TSHttpTxnConfigStringGet(TSHttpTxn txnp,
   sdk_assert(sdk_sanity_check_txn(txnp) == TS_SUCCESS);
   sdk_assert(sdk_sanity_check_null_ptr((void**)value) == TS_SUCCESS);
   sdk_assert(sdk_sanity_check_null_ptr((void*)*value) == TS_SUCCESS);
+  sdk_assert(sdk_sanity_check_null_ptr((void*)length) == TS_SUCCESS);
 
   HttpSM *sm = (HttpSM*) txnp;
 
   switch (conf) {
   case TS_CONFIG_HTTP_RESPONSE_SERVER_STR:
     *value = sm->t_state.txn_conf->proxy_response_server_string;
-    if (length)
-      *length = sm->t_state.txn_conf->proxy_response_server_string_len;
+    *length = sm->t_state.txn_conf->proxy_response_server_string_len;
     break;
   default:
     return TS_ERROR;

Modified: trafficserver/traffic/trunk/proxy/InkAPITest.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkAPITest.cc?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkAPITest.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkAPITest.cc Thu Feb 17 03:13:31 2011
@@ -1309,10 +1309,8 @@ REGRESSION_TEST(SDK_API_TSContCreate) (R
 
   TSMutex mutexp = TSMutexCreate();
   TSCont contp = TSContCreate(cont_handler, mutexp);
-  int lock = 0;
 
-  TSMutexLockTry(mutexp, &lock);
-  if (lock) {     //mutex is grabbed
+  if (TSMutexLockTry(mutexp)) { // Mutex is grabbed succesfully
     TSContCall(contp, (TSEvent) 0, NULL);
     TSMutexUnlock(mutexp);
   } else {                       //mutex has problems
@@ -1499,8 +1497,8 @@ REGRESSION_TEST(SDK_API_TSMutexCreate) (
   /* This is normal because all locking is from the same thread */
   int lock = 0;
 
-  TSMutexLockTry(mutexp, &lock);
-  TSMutexLockTry(mutexp, &lock);
+  lock = TSMutexLockTry(mutexp);
+  lock = TSMutexLockTry(mutexp);
 
   if (lock) {
     SDK_RPRINT(test, "TSMutexCreate", "TestCase1", TC_PASS, "ok");
@@ -2771,6 +2769,7 @@ REGRESSION_TEST(SDK_API_TSUrl) (Regressi
   int url_length_from_2;
   int type = 'a';
   int type_get;
+  int tmp_len;
 
   bool test_passed_create = false;
   bool test_passed_destroy = false;
@@ -2966,7 +2965,7 @@ REGRESSION_TEST(SDK_API_TSUrl) (Regressi
   }
 
   //String
-  url_string_from_1 = TSUrlStringGet(bufp1, url_loc1, NULL);
+  url_string_from_1 = TSUrlStringGet(bufp1, url_loc1, &tmp_len);
   if (strcmp(url_string_from_1, url_expected_string) == 0) {
     SDK_RPRINT(test, "TSUrlStringGet", "TestCase1", TC_PASS, "ok");
     test_passed_string1 = true;
@@ -2995,7 +2994,7 @@ REGRESSION_TEST(SDK_API_TSUrl) (Regressi
 
 
     //String Test Case 2
-    url_string_from_2 = TSUrlStringGet(bufp2, url_loc2, NULL);
+    url_string_from_2 = TSUrlStringGet(bufp2, url_loc2, &tmp_len);
     if (strcmp(url_string_from_2, url_expected_string) == 0) {
       SDK_RPRINT(test, "TSUrlStringGet", "TestCase2", TC_PASS, "ok");
       test_passed_string2 = true;
@@ -3018,7 +3017,7 @@ REGRESSION_TEST(SDK_API_TSUrl) (Regressi
     SDK_RPRINT(test, "TSUrlClone", "TestCase1", TC_FAIL, "Returned TS_ERROR");
   } else {
     //String Test Case 2
-    url_string_from_3 = TSUrlStringGet(bufp3, url_loc3, NULL);
+    url_string_from_3 = TSUrlStringGet(bufp3, url_loc3, &tmp_len);
     // Copy Test Case
     if (strcmp(url_string_from_1, url_string_from_3) == 0) {
       SDK_RPRINT(test, "TSUrlClone", "TestCase1", TC_PASS, "ok");
@@ -7563,6 +7562,7 @@ REGRESSION_TEST(SDK_API_OVERRIDABLE_CONF
   TSMgmtFloat fval;
   const char* sval;
   const char* test_string = "The Apache Traffic Server";
+  int tmp_int;
 
   s->init();
 
@@ -7604,7 +7604,7 @@ REGRESSION_TEST(SDK_API_OVERRIDABLE_CONF
 
     case TS_RECORDDATATYPE_STRING:
       TSHttpTxnConfigStringSet(txnp, key, test_string, -1);
-      TSHttpTxnConfigStringGet(txnp, key, &sval, NULL);
+      TSHttpTxnConfigStringGet(txnp, key, &sval, &tmp_int);
       if (test_string != sval) {
         SDK_RPRINT(test, "TSHttpTxnConfigStringSet", "TestCase1", TC_FAIL, "Failed on %s, expected 17, got %s", conf, sval);
         success = false;

Modified: trafficserver/traffic/trunk/proxy/InkIOCoreAPI.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/InkIOCoreAPI.cc?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/InkIOCoreAPI.cc (original)
+++ trafficserver/traffic/trunk/proxy/InkIOCoreAPI.cc Thu Feb 17 03:13:31 2011
@@ -229,11 +229,11 @@ TSMutexLock(TSMutex mutexp)
 }
 
 
-void
-TSMutexLockTry(TSMutex mutexp, int *lock)
+int
+TSMutexLockTry(TSMutex mutexp)
 {
   sdk_assert(sdk_sanity_check_mutex(mutexp) == TS_SUCCESS);
-  *lock = MUTEX_TAKE_TRY_LOCK((ProxyMutex *)mutexp, this_ethread());
+  return MUTEX_TAKE_TRY_LOCK((ProxyMutex *)mutexp, this_ethread());
 }
 
 void

Modified: trafficserver/traffic/trunk/proxy/api/ts/ts.h.in
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/api/ts/ts.h.in?rev=1071495&r1=1071494&r2=1071495&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/api/ts/ts.h.in (original)
+++ trafficserver/traffic/trunk/proxy/api/ts/ts.h.in Thu Feb 17 03:13:31 2011
@@ -1260,7 +1260,8 @@ extern "C"
       string in the parameter length. This is the same length that
       TSUrlLengthGet() returns. The returned string is allocated by a
       call to TSmalloc(). It should be freed by a call to TSfree().
-      If length is NULL then no attempt is made to dereference it.
+      The length parameter must present, providing storage for the URL
+      string length value.
 
       @param bufp marshal buffer containing the URL you want to get.
       @param offset location of the URL within bufp.
@@ -1948,7 +1949,7 @@ extern "C"
      Mutexes */
   tsapi TSMutex TSMutexCreate(void);
   tsapi void TSMutexLock(TSMutex mutexp);
-  tsapi void TSMutexLockTry(TSMutex mutexp, int *lock);
+  tsapi int TSMutexLockTry(TSMutex mutexp);
 
   tsapi void TSMutexUnlock(TSMutex mutexp);