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;