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/03/04 04:27:53 UTC
svn commit: r1076981 - in /trafficserver/traffic/trunk/proxy:
ControlMatcher.h ParentSelection.cc ParentSelection.h config/parent.config
Author: zwoop
Date: Fri Mar 4 03:27:53 2011
New Revision: 1076981
URL: http://svn.apache.org/viewvc?rev=1076981&view=rev
Log:
TS-688 Remove the "tag" modifier from parent.config.
This tag modifier has no purpose any more.
Modified:
trafficserver/traffic/trunk/proxy/ControlMatcher.h
trafficserver/traffic/trunk/proxy/ParentSelection.cc
trafficserver/traffic/trunk/proxy/ParentSelection.h
trafficserver/traffic/trunk/proxy/config/parent.config
Modified: trafficserver/traffic/trunk/proxy/ControlMatcher.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/ControlMatcher.h?rev=1076981&r1=1076980&r2=1076981&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/ControlMatcher.h (original)
+++ trafficserver/traffic/trunk/proxy/ControlMatcher.h Fri Mar 4 03:27:53 2011
@@ -141,10 +141,10 @@ public:
inkcoreapi ip_addr_t get_ip();
inkcoreapi ip_addr_t get_client_ip();
- HttpRequestData():hdr(NULL), hostname_str(NULL), api_info(NULL),
- xact_start(0), src_ip(0), dest_ip(0), incoming_port(0), tag(NULL)
- {
- }
+ HttpRequestData()
+ : hdr(NULL), hostname_str(NULL), api_info(NULL),
+ xact_start(0), src_ip(0), dest_ip(0), incoming_port(0), tag(NULL)
+ { }
HTTPHdr *hdr;
char *hostname_str;
Modified: trafficserver/traffic/trunk/proxy/ParentSelection.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/ParentSelection.cc?rev=1076981&r1=1076980&r2=1076981&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/ParentSelection.cc (original)
+++ trafficserver/traffic/trunk/proxy/ParentSelection.cc Fri Mar 4 03:27:53 2011
@@ -25,7 +25,6 @@
*
* ParentSelection.cc - Implementation of Parent Proxy routing
*
- *
****************************************************************************/
#include "ink_unused.h" /* MAGIC_EDITING_TAG */
@@ -75,7 +74,8 @@ static const char *ParentRRStr[] = {
// Config Callback Prototypes
//
enum ParentCB_t
-{ PARENT_FILE_CB, PARENT_DEFAULT_CB,
+{
+ PARENT_FILE_CB, PARENT_DEFAULT_CB,
PARENT_RETRY_CB, PARENT_ENABLE_CB,
PARENT_THRESHOLD_CB, PARENT_DNS_ONLY_CB
};
@@ -86,10 +86,9 @@ enum ParentCB_t
// between HttpTransact & the parent selection code. The following
ParentRecord *const extApiRecord = (ParentRecord *) 0xeeeeffff;
-ParentConfigParams::ParentConfigParams():
-ParentTable(NULL), DefaultParent(NULL), ParentRetryTime(30), ParentEnable(0), FailThreshold(10), DNS_ParentOnly(0)
-{
-}
+ParentConfigParams::ParentConfigParams()
+ : ParentTable(NULL), DefaultParent(NULL), ParentRetryTime(30), ParentEnable(0), FailThreshold(10), DNS_ParentOnly(0)
+{ }
ParentConfigParams::~ParentConfigParams()
{
@@ -102,25 +101,11 @@ ParentConfigParams::~ParentConfigParams(
}
}
-int
- ParentConfig::m_id = 0;
+int ParentConfig::m_id = 0;
//
// Begin API functions
//
-
-ParentConfigParams *
-ParentConfig::acquire()
-{
- return (ParentConfigParams *) configProcessor.get(ParentConfig::m_id);
-}
-
-void
-ParentConfig::release(ParentConfigParams * params)
-{
- configProcessor.release(ParentConfig::m_id, params);
-}
-
void
ParentConfig::startup()
{
@@ -149,7 +134,6 @@ ParentConfig::startup()
void
ParentConfig::reconfigure()
{
-
char *default_val = NULL;
int retry_time = 30;
int enable = 0;
@@ -236,7 +220,7 @@ ParentConfigParams::parentExists(HttpReq
}
void
-ParentConfigParams::findParent(HttpRequestData * rdata, ParentResult * result, char *tag)
+ParentConfigParams::findParent(HttpRequestData * rdata, ParentResult * result)
{
P_table *tablePtr = ParentTable;
ParentRecord *defaultPtr = DefaultParent;
@@ -263,7 +247,6 @@ ParentConfigParams::findParent(HttpReque
// Check to see if the parent was set through the
// api
if (apiParentExists(rdata)) {
-
result->r = PARENT_SPECIFIED;
result->hostname = rdata->api_info->parent_proxy_name;
result->port = rdata->api_info->parent_proxy_port;
@@ -275,7 +258,6 @@ ParentConfigParams::findParent(HttpReque
Debug("parent_select", "Result for %s was API set parent %s:%d", rdata->get_host(), result->hostname, result->port);
}
- rdata->tag = tag;
tablePtr->Match(rdata, result);
rec = result->rec;
@@ -302,7 +284,6 @@ ParentConfigParams::findParent(HttpReque
rec->FindParent(true, result, rdata, this);
if (is_debug_tag_set("parent_select") || is_debug_tag_set("cdn")) {
-
switch (result->r) {
case PARENT_UNDEFINED:
Debug("cdn", "PARENT_UNDEFINED");
@@ -346,7 +327,6 @@ ParentConfigParams::findParent(HttpReque
void
ParentConfigParams::recordRetrySuccess(ParentResult * result)
{
-
pRecord *pRec;
// Make sure that we are being called back with with a
@@ -377,7 +357,6 @@ ParentConfigParams::recordRetrySuccess(P
void
ParentConfigParams::markParentDown(ParentResult * result)
{
-
time_t now;
pRecord *pRec;
int new_fail_count = 0;
@@ -406,7 +385,6 @@ ParentConfigParams::markParentDown(Paren
// must update move the failedAt timestamp to now so that we continue
// negative cache the parent
if (pRec->failedAt == 0 || result->retry == true) {
-
// Reread the current time. We want this to be accurate since
// it relates to how long the parent has been down.
now = time(NULL);
@@ -420,11 +398,11 @@ ParentConfigParams::markParentDown(Paren
new_fail_count = pRec->failCount = 1;
}
- Debug("parent_select", "Parent %s marked as down %s:%d",
- (result->retry) ? "retry" : "initially", pRec->hostname, pRec->port);
+ Debug("parent_select", "Parent %s marked as down %s:%d", (result->retry) ? "retry" : "initially", pRec->hostname, pRec->port);
} else {
int old_count = ink_atomic_increment(&pRec->failCount, 1);
+
Debug("parent_select", "Parent fail count increased to %d for %s:%d", old_count + 1, pRec->hostname, pRec->port);
new_fail_count = old_count + 1;
}
@@ -547,7 +525,6 @@ ParentRecord::FindParent(bool first_call
}
}
} else {
-
// Move to next parent due to failure
cur_index = (result->last_parent + 1) % num_parents;
@@ -754,7 +731,6 @@ ParentRecord::DefaultInit(char *val)
char *
ParentRecord::Init(matcher_line * line_info)
{
-
const char *errPtr = NULL;
char *errBuf;
const int errBufLen = 1024;
@@ -850,7 +826,6 @@ ParentRecord::Init(matcher_line * line_i
void
ParentRecord::UpdateMatch(ParentResult * result, RD * rdata)
{
-
if (this->CheckForMatch((HttpRequestData *) rdata, result->line_number) == true) {
result->rec = this;
result->line_number = this->line_num;
@@ -882,7 +857,6 @@ ParentRecord::Print()
//
struct PA_UpdateContinuation: public Continuation
{
-
int handle_event(int event, void *data)
{
NOWARN_UNUSED(event);
@@ -959,23 +933,8 @@ parentSelection_CB(const char *name, Rec
//ParentConfig equivalent functions for SocksServerConfig
//
-int
- SocksServerConfig::m_id = 0;
-static ProxyMutexPtr
- socks_server_reconfig_mutex = NULL;
-
-ParentConfigParams *
-SocksServerConfig::acquire()
-{
- return (ParentConfigParams *) configProcessor.get(SocksServerConfig::m_id);
-}
-
-void
-SocksServerConfig::release(ParentConfigParams * params)
-{
- configProcessor.release(SocksServerConfig::m_id, params);
-}
-
+int SocksServerConfig::m_id = 0;
+static ProxyMutexPtr socks_server_reconfig_mutex = NULL;
void
SocksServerConfig::startup()
{
@@ -991,7 +950,6 @@ static int
setup_socks_servers(ParentRecord * rec_arr, int len)
{
/* This changes hostnames into ip addresses and sets go_direct to false */
-
for (int j = 0; j < len; j++) {
rec_arr[j].go_direct = false;
@@ -1022,7 +980,6 @@ setup_socks_servers(ParentRecord * rec_a
void
SocksServerConfig::reconfigure()
{
-
char *default_val = NULL;
int retry_time = 30;
int fail_threshold;
Modified: trafficserver/traffic/trunk/proxy/ParentSelection.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/ParentSelection.h?rev=1076981&r1=1076980&r2=1076981&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/ParentSelection.h (original)
+++ trafficserver/traffic/trunk/proxy/ParentSelection.h Fri Mar 4 03:27:53 2011
@@ -47,8 +47,6 @@ struct matcher_line;
struct ParentResult;
class ParentRecord;
-#define PARENT_SELECTION_TIMEOUT (HRTIME_HOUR*4)
-
enum ParentResultType
{
PARENT_UNDEFINED, PARENT_DIRECT,
@@ -63,8 +61,8 @@ typedef ControlMatcher<ParentRecord, Par
struct ParentResult
{
ParentResult()
- : r(PARENT_UNDEFINED), hostname(NULL), port(0),
- line_number(0), epoch(NULL), rec(NULL), last_parent(0), start_parent(0), wrap_around(false), retry(false)
+ : r(PARENT_UNDEFINED), hostname(NULL), port(0), line_number(0), epoch(NULL), rec(NULL),
+ last_parent(0), start_parent(0), wrap_around(false), retry(false)
{ };
// For outside consumption
@@ -94,38 +92,38 @@ struct ParentConfigParams:public ConfigI
//
// Does initial parent lookup
//
- inkcoreapi void findParent(HttpRequestData * rdata, ParentResult * result, char *tag = NULL);
+ inkcoreapi void findParent(HttpRequestData *rdata, ParentResult *result);
// void markParentDown(ParentResult* rsult)
//
// Marks the parent pointed to by result as down
//
- inkcoreapi void markParentDown(ParentResult * result);
+ inkcoreapi void markParentDown(ParentResult *result);
// void recordRetrySuccess
//
// After a successful retry, http calls this function
// to clear the bits indicating the parent is down
//
- void recordRetrySuccess(ParentResult * result);
+ void recordRetrySuccess(ParentResult *result);
// void nextParent(RD* rdata, ParentResult* result);
//
// Marks the parent pointed to by result as down and attempts
// to find the next parent
//
- inkcoreapi void nextParent(HttpRequestData * rdata, ParentResult * result);
+ inkcoreapi void nextParent(HttpRequestData *rdata, ParentResult *result);
// bool parentExists(HttpRequestData* rdata)
//
// Returns true if there is a parent matching the request data and
// false otherwise
- bool parentExists(HttpRequestData * rdata);
+ bool parentExists(HttpRequestData *rdata);
// bool apiParentExists(HttpRequestData* rdata)
//
// Retures true if a parent has been set through the api
- bool apiParentExists(HttpRequestData * rdata);
+ bool apiParentExists(HttpRequestData *rdata);
P_table *ParentTable;
ParentRecord *DefaultParent;
@@ -139,12 +137,13 @@ struct ParentConfig
{
public:
static void startup();
-
static void reconfigure();
- inkcoreapi static ParentConfigParams *acquire();
- inkcoreapi static void release(ParentConfigParams * params);
static void print();
+ inkcoreapi static ParentConfigParams *acquire() { return (ParentConfigParams *) configProcessor.get(ParentConfig::m_id); }
+ inkcoreapi static void release(ParentConfigParams *params) { configProcessor.release(ParentConfig::m_id, params); }
+
+
static int m_id;
};
//
@@ -178,24 +177,24 @@ enum ParentRR_t
// A record for a configuration line in the parent.config
// file
//
-class ParentRecord:public ControlBase
+class ParentRecord: public ControlBase
{
public:
- ParentRecord();
+ ParentRecord()
+ : parents(NULL), num_parents(0), round_robin(P_NO_ROUND_ROBIN), rr_next(0), go_direct(true)
+ { }
+
~ParentRecord();
- char *Init(matcher_line * line_info);
+ char *Init(matcher_line *line_info);
bool DefaultInit(char *val);
- void UpdateMatch(ParentResult * result, RD * rdata);
- void FindParent(bool firstCall, ParentResult * result, RD * rdata, ParentConfigParams * config);
+ void UpdateMatch(ParentResult *result, RD *rdata);
+ void FindParent(bool firstCall, ParentResult *result, RD *rdata, ParentConfigParams *config);
void Print();
pRecord *parents;
int num_parents;
- bool bypass_ok()
- {
- return go_direct;
- };
+ bool bypass_ok() const { return go_direct; }
const char *scheme;
//private:
@@ -205,16 +204,6 @@ public:
bool go_direct;
};
-inline
-ParentRecord::ParentRecord()
- : parents(NULL),
- num_parents(0),
- round_robin(P_NO_ROUND_ROBIN),
- rr_next(0),
- go_direct(true)
-{
-}
-
// Helper Functions
ParentRecord *createDefaultParent(char *val);
void reloadDefaultParent(char *val);
@@ -222,9 +211,9 @@ void reloadParentFile();
int parentSelection_CB(const char *name, RecDataT data_type, RecData data, void *cookie);
// Unit Test Functions
-void show_result(ParentResult * aParentResult);
-void br(HttpRequestData * h, const char *os_hostname, int dest_ip = 0); // short for build request
-int verify(ParentResult * r, ParentResultType e, const char *h, int p);
+void show_result(ParentResult *aParentResult);
+void br(HttpRequestData *h, const char *os_hostname, int dest_ip = 0); // short for build request
+int verify(ParentResult *r, ParentResultType e, const char *h, int p);
/*
For supporting multiple Socks servers, we essentially use the
@@ -236,17 +225,15 @@ int verify(ParentResult * r, ParentResul
All the members in ParentConfig are static. Right now
we will duplicate the code for these static functions.
*/
-
struct SocksServerConfig
{
-public:
static void startup();
-
static void reconfigure();
- static ParentConfigParams *acquire();
- static void release(ParentConfigParams * params);
static void print();
+ static ParentConfigParams *acquire() { return (ParentConfigParams *) configProcessor.get(SocksServerConfig::m_id); }
+ static void release(ParentConfigParams *params) { configProcessor.release(SocksServerConfig::m_id, params); }
+
static int m_id;
};
Modified: trafficserver/traffic/trunk/proxy/config/parent.config
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/config/parent.config?rev=1076981&r1=1076980&r2=1076981&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/config/parent.config (original)
+++ trafficserver/traffic/trunk/proxy/config/parent.config Fri Mar 4 03:27:53 2011
@@ -28,10 +28,6 @@
# method=
# time=
# src_ip=
-# tag=<tag_value>: this OPTIONAL directive specifies a unique identifier
-# for the current record. This is needed for MIXT, since we may want
-# to select a parent record that is not necessarily the first one
-# that matches. Valid values for tag are 'RNI' and 'QT'.
#
# Available parent directives are:
# parent= (a semicolon separated list of parent proxies)