You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2015/12/19 20:38:42 UTC

trafficserver git commit: TS-4089: Fixed coverity issues in parent selection.

Repository: trafficserver
Updated Branches:
  refs/heads/master 708738051 -> a86f0c5e9


TS-4089: Fixed coverity issues in parent selection.

This closes #390.


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/a86f0c5e
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/a86f0c5e
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/a86f0c5e

Branch: refs/heads/master
Commit: a86f0c5e98f9f9dc5da05516869cbd1e521f006f
Parents: 7087380
Author: John J. Rushford <Jo...@cable.comcast.com>
Authored: Sat Dec 19 11:37:37 2015 -0800
Committer: James Peach <jp...@apache.org>
Committed: Sat Dec 19 11:37:37 2015 -0800

----------------------------------------------------------------------
 proxy/ParentConsistentHash.cc |  2 +-
 proxy/ParentSelection.cc      | 32 +++++++++++++++-----------------
 proxy/ParentSelection.h       | 11 ++++++-----
 3 files changed, 22 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a86f0c5e/proxy/ParentConsistentHash.cc
----------------------------------------------------------------------
diff --git a/proxy/ParentConsistentHash.cc b/proxy/ParentConsistentHash.cc
index ca64ad9..bcfc3ab 100644
--- a/proxy/ParentConsistentHash.cc
+++ b/proxy/ParentConsistentHash.cc
@@ -155,7 +155,7 @@ ParentConsistentHash::selectParent(const ParentSelectionPolicy *policy, bool fir
           parentRetry = true;
           // make sure that the proper state is recorded in the result structure
           // so that markParentUp() finds the proper record.
-          result->last_parent = prtmp->idx;
+          result->last_parent = pRec->idx;
           result->last_lookup = last_lookup;
           result->retry = parentRetry;
           result->r = PARENT_SPECIFIED;

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a86f0c5e/proxy/ParentSelection.cc
----------------------------------------------------------------------
diff --git a/proxy/ParentSelection.cc b/proxy/ParentSelection.cc
index b71cb70..a7a0c68 100644
--- a/proxy/ParentSelection.cc
+++ b/proxy/ParentSelection.cc
@@ -88,11 +88,9 @@ ParentSelectionPolicy::ParentSelectionPolicy()
 }
 
 ParentConfigParams::ParentConfigParams(P_table *_parent_table)
+  : parent_table(_parent_table), DefaultParent(NULL), policy()
 {
   char *default_val = NULL;
-  parent_table = _parent_table;
-
-  policy = new ParentSelectionPolicy();
 
   // Handle default parent
   PARENT_ReadConfigStringAlloc(default_val, default_var);
@@ -117,8 +115,8 @@ ParentConfigParams::findParent(HttpRequestData *rdata, ParentResult *result)
   ink_assert(result->r == PARENT_UNDEFINED);
 
   // Check to see if we are enabled
-  Debug("parent_select", "policy->ParentEnable: %d", policy->ParentEnable);
-  if (policy->ParentEnable == 0) {
+  Debug("parent_select", "policy.ParentEnable: %d", policy.ParentEnable);
+  if (policy.ParentEnable == 0) {
     result->r = PARENT_DIRECT;
     return;
   }
@@ -313,8 +311,8 @@ ParentConfig::print()
   ParentConfigParams *params = ParentConfig::acquire();
 
   printf("Parent Selection Config\n");
-  printf("\tEnabled %d\tRetryTime %d\tParent DNS Only %d\n", params->policy->ParentEnable, params->policy->ParentRetryTime,
-         params->policy->DNS_ParentOnly);
+  printf("\tEnabled %d\tRetryTime %d\tParent DNS Only %d\n", params->policy.ParentEnable, params->policy.ParentRetryTime,
+         params->policy.DNS_ParentOnly);
   if (params->DefaultParent == NULL) {
     printf("\tNo Default Parent\n");
   } else {
@@ -749,19 +747,19 @@ SocksServerConfig::reconfigure()
 
   // Handle parent timeout
   PARENT_ReadConfigInteger(retry_time, "proxy.config.socks.server_retry_time");
-  params->policy->ParentRetryTime = retry_time;
+  params->policy.ParentRetryTime = retry_time;
 
   // Handle parent enable
   // enable is always true for use. We will come here only if socks is enabled
-  params->policy->ParentEnable = 1;
+  params->policy.ParentEnable = 1;
 
   // Handle the fail threshold
   PARENT_ReadConfigInteger(fail_threshold, "proxy.config.socks.server_fail_threshold");
-  params->policy->FailThreshold = fail_threshold;
+  params->policy.FailThreshold = fail_threshold;
 
   // Handle dns parent only
   // PARENT_ReadConfigInteger(dns_parent_only, dns_parent_only_var);
-  params->policy->DNS_ParentOnly = 0;
+  params->policy.DNS_ParentOnly = 0;
 
   m_id = configProcessor.set(m_id, params);
 
@@ -776,8 +774,8 @@ SocksServerConfig::print()
   ParentConfigParams *params = SocksServerConfig::acquire();
 
   printf("Parent Selection Config for Socks Server\n");
-  printf("\tEnabled %d\tRetryTime %d\tParent DNS Only %d\n", params->policy->ParentEnable, params->policy->ParentRetryTime,
-         params->policy->DNS_ParentOnly);
+  printf("\tEnabled %d\tRetryTime %d\tParent DNS Only %d\n", params->policy.ParentEnable, params->policy.ParentRetryTime,
+         params->policy.DNS_ParentOnly);
   if (params->DefaultParent == NULL) {
     printf("\tNo Default Parent\n");
   } else {
@@ -836,9 +834,9 @@ EXCLUSIVE_REGRESSION_TEST(PARENTSELECTION)(RegressionTest * /* t ATS_UNUSED */,
                             ALLOW_HOST_TABLE | ALLOW_REGEX_TABLE | ALLOW_URL_TABLE | ALLOW_IP_TABLE | DONT_BUILD_TABLE); \
   ParentTable->BuildTableFromString(tbl);                                                                                \
   params = new ParentConfigParams(ParentTable);                                                                          \
-  params->policy->FailThreshold = 1;                                                                                     \
-  params->policy->ParentEnable = true;                                                                                   \
-  params->policy->ParentRetryTime = 5;
+  params->policy.FailThreshold = 1;                                                                                     \
+  params->policy.ParentEnable = true;                                                                                   \
+  params->policy.ParentRetryTime = 5;
   HttpRequestData *request = NULL;
   ParentResult *result = NULL;
 #define REINIT                            \
@@ -1024,7 +1022,7 @@ EXCLUSIVE_REGRESSION_TEST(PARENTSELECTION)(RegressionTest * /* t ATS_UNUSED */,
   }
 
   // sleep(5); // parents should come back up; they don't
-  sleep(params->policy->ParentRetryTime + 1);
+  sleep(params->policy.ParentRetryTime + 1);
 
   // Fix: The following tests failed because
   // br() should set xact_start correctly instead of 0.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/a86f0c5e/proxy/ParentSelection.h
----------------------------------------------------------------------
diff --git a/proxy/ParentSelection.h b/proxy/ParentSelection.h
index f5508b8..33adc0a 100644
--- a/proxy/ParentSelection.h
+++ b/proxy/ParentSelection.h
@@ -195,10 +195,7 @@ public:
 class ParentConfigParams : public ConfigInfo
 {
 public:
-  P_table *parent_table;
-  ParentRecord *DefaultParent;
   explicit ParentConfigParams(P_table *_parent_table);
-  ParentSelectionPolicy *policy;
   ~ParentConfigParams(){};
 
   bool apiParentExists(HttpRequestData *rdata);
@@ -211,14 +208,14 @@ public:
   selectParent(bool firstCall, ParentResult *result, RequestData *rdata)
   {
     ink_release_assert(result->rec->selection_strategy != NULL);
-    return result->rec->selection_strategy->selectParent(policy, firstCall, result, rdata);
+    return result->rec->selection_strategy->selectParent(&policy, firstCall, result, rdata);
   }
 
   void
   markParentDown(ParentResult *result)
   {
     ink_release_assert(result->rec->selection_strategy != NULL);
-    result->rec->selection_strategy->markParentDown(policy, result);
+    result->rec->selection_strategy->markParentDown(&policy, result);
   }
 
   uint32_t
@@ -234,6 +231,10 @@ public:
     ink_release_assert(result != NULL);
     result->rec->selection_strategy->markParentUp(result);
   }
+
+  P_table *parent_table;
+  ParentRecord *DefaultParent;
+  ParentSelectionPolicy policy;
 };
 
 class HttpRequestData;