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 2013/11/06 01:50:28 UTC
[09/12] git commit: TS-2323: use the Layout API to find remap.config
TS-2323: use the Layout API to find remap.config
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/238e3396
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/238e3396
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/238e3396
Branch: refs/heads/master
Commit: 238e3396b591be810728ed316c53354560e14be2
Parents: 90f923e
Author: James Peach <jp...@apache.org>
Authored: Fri Nov 1 10:45:52 2013 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Nov 5 16:46:39 2013 -0800
----------------------------------------------------------------------
proxy/ReverseProxy.cc | 4 ++--
proxy/http/remap/UrlRewrite.cc | 30 +++++++++++++-----------------
proxy/http/remap/UrlRewrite.h | 7 +++----
3 files changed, 18 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/ReverseProxy.cc
----------------------------------------------------------------------
diff --git a/proxy/ReverseProxy.cc b/proxy/ReverseProxy.cc
index 4b4b578..51c3664 100644
--- a/proxy/ReverseProxy.cc
+++ b/proxy/ReverseProxy.cc
@@ -74,7 +74,7 @@ init_reverse_proxy()
{
ink_assert(rewrite_table == NULL);
reconfig_mutex = new_ProxyMutex();
- rewrite_table = NEW(new UrlRewrite("proxy.config.url_remap.filename"));
+ rewrite_table = NEW(new UrlRewrite());
if (!rewrite_table->is_valid()) {
Warning("Can not load the remap table, exiting out!");
@@ -178,7 +178,7 @@ reloadUrlRewrite()
UrlRewrite *newTable;
Debug("url_rewrite", "remap.config updated, reloading...");
- newTable = new UrlRewrite("proxy.config.url_remap.filename");
+ newTable = NEW(new UrlRewrite());
if (newTable->is_valid()) {
eventProcessor.schedule_in(new UR_FreerContinuation(rewrite_table), URL_REWRITE_TIMEOUT, ET_TASK);
Debug("url_rewrite", "remap.config done reloading!");
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/http/remap/UrlRewrite.cc
----------------------------------------------------------------------
diff --git a/proxy/http/remap/UrlRewrite.cc b/proxy/http/remap/UrlRewrite.cc
index 32c6de6..a6f1c23 100644
--- a/proxy/http/remap/UrlRewrite.cc
+++ b/proxy/http/remap/UrlRewrite.cc
@@ -33,6 +33,7 @@
#include "api/ts/remap.h"
#include "UrlMappingPathIndex.h"
#include "RemapConfig.h"
+#include "I_Layout.h"
#include "ink_string.h"
@@ -60,9 +61,9 @@ SetHomePageRedirectFlag(url_mapping *new_mapping, URL &new_to_url)
//
// CTOR / DTOR for the UrlRewrite class.
//
-UrlRewrite::UrlRewrite(const char *file_var_in)
+UrlRewrite::UrlRewrite()
: nohost_rules(0), reverse_proxy(0), backdoor_enabled(0),
- mgmt_autoconf_port(0), default_to_pac(0), default_to_pac_port(0), file_var(NULL), ts_name(NULL),
+ mgmt_autoconf_port(0), default_to_pac(0), default_to_pac_port(0), ts_name(NULL),
http_default_redirect_url(NULL), num_rules_forward(0), num_rules_reverse(0), num_rules_redirect_permanent(0),
num_rules_redirect_temporary(0), num_rules_forward_with_recv_port(0), _valid(false)
{
@@ -71,14 +72,10 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
permanent_redirects.hash_lookup = temporary_redirects.hash_lookup =
forward_mappings_with_recv_port.hash_lookup = NULL;
- char *config_file = NULL;
-
- ink_assert(file_var_in != NULL);
- this->file_var = ats_strdup(file_var_in);
- config_file_path[0] = '\0';
-
- REC_ReadConfigStringAlloc(config_file, file_var_in);
+ char * config_file = NULL;
+ char * config_file_path = NULL;
+ REC_ReadConfigStringAlloc(config_file, "proxy.config.url_remap.filename");
if (config_file == NULL) {
pmgmt->signalManager(MGMT_SIGNAL_CONFIG_ERROR, "Unable to find proxy.config.url_remap.filename");
Warning("%s Unable to locate remap.config. No remappings in effect", modulePrefix);
@@ -108,12 +105,9 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
REC_ReadConfigInteger(url_remap_mode, "proxy.config.url_remap.url_remap_mode");
REC_ReadConfigInteger(backdoor_enabled, "proxy.config.url_remap.handle_backdoor_urls");
- ink_strlcpy(config_file_path, system_config_directory, sizeof(config_file_path));
- ink_strlcat(config_file_path, "/", sizeof(config_file_path));
- ink_strlcat(config_file_path, config_file, sizeof(config_file_path));
- ats_free(config_file);
+ config_file_path = Layout::relative_to(Layout::get()->sysconfdir, config_file);
- if (0 == this->BuildTable()) {
+ if (0 == this->BuildTable(config_file_path)) {
_valid = true;
if (is_debug_tag_set("url_rewrite")) {
Print();
@@ -121,11 +115,13 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
} else {
Warning("something failed during BuildTable() -- check your remap plugins!");
}
+
+ ats_free(config_file_path);
+ ats_free(config_file);
}
UrlRewrite::~UrlRewrite()
{
- ats_free(this->file_var);
ats_free(this->ts_name);
ats_free(this->http_default_redirect_url);
@@ -676,7 +672,7 @@ UrlRewrite::InsertForwardMapping(mapping_type maptype, url_mapping * mapping, co
*/
int
-UrlRewrite::BuildTable()
+UrlRewrite::BuildTable(const char * path)
{
BUILD_TABLE_INFO bti;
url_mapping * new_mapping = NULL;
@@ -699,7 +695,7 @@ UrlRewrite::BuildTable()
temporary_redirects.hash_lookup = ink_hash_table_create(InkHashTableKeyType_String);
forward_mappings_with_recv_port.hash_lookup = ink_hash_table_create(InkHashTableKeyType_String);
- if (!remap_parse_config(config_file_path, this)) {
+ if (!remap_parse_config(path, this)) {
// XXX handle file reload error
return 3;
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/http/remap/UrlRewrite.h
----------------------------------------------------------------------
diff --git a/proxy/http/remap/UrlRewrite.h b/proxy/http/remap/UrlRewrite.h
index 35788f9..8785a1a 100644
--- a/proxy/http/remap/UrlRewrite.h
+++ b/proxy/http/remap/UrlRewrite.h
@@ -52,9 +52,10 @@ enum mapping_type
class UrlRewrite
{
public:
- UrlRewrite(const char *file_var_in);
+ UrlRewrite();
~UrlRewrite();
- int BuildTable();
+
+ int BuildTable(const char * path);
mapping_type Remap_redirect(HTTPHdr * request_header, URL *redirect_url);
bool ReverseMap(HTTPHdr *response_header);
void SetReverseFlag(int flag);
@@ -160,8 +161,6 @@ public:
int default_to_pac;
int default_to_pac_port;
- char config_file_path[PATH_NAME_MAX];
- char *file_var;
char *ts_name; // Used to send redirects when no host info
char *http_default_redirect_url; // Used if redirect in "referer" filtering was not defined properly
Re: [09/12] git commit: TS-2323: use the Layout API to find
remap.config
Posted by Igor Galić <i....@brainsware.org>.
+1
Can we get the API exposed for plugins also?
----- Original Message -----
> TS-2323: use the Layout API to find remap.config
>
>
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/238e3396
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/238e3396
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/238e3396
>
> Branch: refs/heads/master
> Commit: 238e3396b591be810728ed316c53354560e14be2
> Parents: 90f923e
> Author: James Peach <jp...@apache.org>
> Authored: Fri Nov 1 10:45:52 2013 -0700
> Committer: James Peach <jp...@apache.org>
> Committed: Tue Nov 5 16:46:39 2013 -0800
>
> ----------------------------------------------------------------------
> proxy/ReverseProxy.cc | 4 ++--
> proxy/http/remap/UrlRewrite.cc | 30 +++++++++++++-----------------
> proxy/http/remap/UrlRewrite.h | 7 +++----
> 3 files changed, 18 insertions(+), 23 deletions(-)
> ----------------------------------------------------------------------
>
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/ReverseProxy.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/ReverseProxy.cc b/proxy/ReverseProxy.cc
> index 4b4b578..51c3664 100644
> --- a/proxy/ReverseProxy.cc
> +++ b/proxy/ReverseProxy.cc
> @@ -74,7 +74,7 @@ init_reverse_proxy()
> {
> ink_assert(rewrite_table == NULL);
> reconfig_mutex = new_ProxyMutex();
> - rewrite_table = NEW(new UrlRewrite("proxy.config.url_remap.filename"));
> + rewrite_table = NEW(new UrlRewrite());
>
> if (!rewrite_table->is_valid()) {
> Warning("Can not load the remap table, exiting out!");
> @@ -178,7 +178,7 @@ reloadUrlRewrite()
> UrlRewrite *newTable;
>
> Debug("url_rewrite", "remap.config updated, reloading...");
> - newTable = new UrlRewrite("proxy.config.url_remap.filename");
> + newTable = NEW(new UrlRewrite());
> if (newTable->is_valid()) {
> eventProcessor.schedule_in(new UR_FreerContinuation(rewrite_table),
> URL_REWRITE_TIMEOUT, ET_TASK);
> Debug("url_rewrite", "remap.config done reloading!");
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/http/remap/UrlRewrite.cc
> ----------------------------------------------------------------------
> diff --git a/proxy/http/remap/UrlRewrite.cc b/proxy/http/remap/UrlRewrite.cc
> index 32c6de6..a6f1c23 100644
> --- a/proxy/http/remap/UrlRewrite.cc
> +++ b/proxy/http/remap/UrlRewrite.cc
> @@ -33,6 +33,7 @@
> #include "api/ts/remap.h"
> #include "UrlMappingPathIndex.h"
> #include "RemapConfig.h"
> +#include "I_Layout.h"
>
> #include "ink_string.h"
>
> @@ -60,9 +61,9 @@ SetHomePageRedirectFlag(url_mapping *new_mapping, URL
> &new_to_url)
> //
> // CTOR / DTOR for the UrlRewrite class.
> //
> -UrlRewrite::UrlRewrite(const char *file_var_in)
> +UrlRewrite::UrlRewrite()
> : nohost_rules(0), reverse_proxy(0), backdoor_enabled(0),
> - mgmt_autoconf_port(0), default_to_pac(0), default_to_pac_port(0),
> file_var(NULL), ts_name(NULL),
> + mgmt_autoconf_port(0), default_to_pac(0), default_to_pac_port(0),
> ts_name(NULL),
> http_default_redirect_url(NULL), num_rules_forward(0),
> num_rules_reverse(0), num_rules_redirect_permanent(0),
> num_rules_redirect_temporary(0), num_rules_forward_with_recv_port(0),
> _valid(false)
> {
> @@ -71,14 +72,10 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
> permanent_redirects.hash_lookup = temporary_redirects.hash_lookup =
> forward_mappings_with_recv_port.hash_lookup = NULL;
>
> - char *config_file = NULL;
> -
> - ink_assert(file_var_in != NULL);
> - this->file_var = ats_strdup(file_var_in);
> - config_file_path[0] = '\0';
> -
> - REC_ReadConfigStringAlloc(config_file, file_var_in);
> + char * config_file = NULL;
> + char * config_file_path = NULL;
>
> + REC_ReadConfigStringAlloc(config_file, "proxy.config.url_remap.filename");
> if (config_file == NULL) {
> pmgmt->signalManager(MGMT_SIGNAL_CONFIG_ERROR, "Unable to find
> proxy.config.url_remap.filename");
> Warning("%s Unable to locate remap.config. No remappings in effect",
> modulePrefix);
> @@ -108,12 +105,9 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
> REC_ReadConfigInteger(url_remap_mode,
> "proxy.config.url_remap.url_remap_mode");
> REC_ReadConfigInteger(backdoor_enabled,
> "proxy.config.url_remap.handle_backdoor_urls");
>
> - ink_strlcpy(config_file_path, system_config_directory,
> sizeof(config_file_path));
> - ink_strlcat(config_file_path, "/", sizeof(config_file_path));
> - ink_strlcat(config_file_path, config_file, sizeof(config_file_path));
> - ats_free(config_file);
> + config_file_path = Layout::relative_to(Layout::get()->sysconfdir,
> config_file);
>
> - if (0 == this->BuildTable()) {
> + if (0 == this->BuildTable(config_file_path)) {
> _valid = true;
> if (is_debug_tag_set("url_rewrite")) {
> Print();
> @@ -121,11 +115,13 @@ UrlRewrite::UrlRewrite(const char *file_var_in)
> } else {
> Warning("something failed during BuildTable() -- check your remap
> plugins!");
> }
> +
> + ats_free(config_file_path);
> + ats_free(config_file);
> }
>
> UrlRewrite::~UrlRewrite()
> {
> - ats_free(this->file_var);
> ats_free(this->ts_name);
> ats_free(this->http_default_redirect_url);
>
> @@ -676,7 +672,7 @@ UrlRewrite::InsertForwardMapping(mapping_type maptype,
> url_mapping * mapping, co
>
> */
> int
> -UrlRewrite::BuildTable()
> +UrlRewrite::BuildTable(const char * path)
> {
> BUILD_TABLE_INFO bti;
> url_mapping * new_mapping = NULL;
> @@ -699,7 +695,7 @@ UrlRewrite::BuildTable()
> temporary_redirects.hash_lookup =
> ink_hash_table_create(InkHashTableKeyType_String);
> forward_mappings_with_recv_port.hash_lookup =
> ink_hash_table_create(InkHashTableKeyType_String);
>
> - if (!remap_parse_config(config_file_path, this)) {
> + if (!remap_parse_config(path, this)) {
> // XXX handle file reload error
> return 3;
> }
>
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/238e3396/proxy/http/remap/UrlRewrite.h
> ----------------------------------------------------------------------
> diff --git a/proxy/http/remap/UrlRewrite.h b/proxy/http/remap/UrlRewrite.h
> index 35788f9..8785a1a 100644
> --- a/proxy/http/remap/UrlRewrite.h
> +++ b/proxy/http/remap/UrlRewrite.h
> @@ -52,9 +52,10 @@ enum mapping_type
> class UrlRewrite
> {
> public:
> - UrlRewrite(const char *file_var_in);
> + UrlRewrite();
> ~UrlRewrite();
> - int BuildTable();
> +
> + int BuildTable(const char * path);
> mapping_type Remap_redirect(HTTPHdr * request_header, URL *redirect_url);
> bool ReverseMap(HTTPHdr *response_header);
> void SetReverseFlag(int flag);
> @@ -160,8 +161,6 @@ public:
> int default_to_pac;
> int default_to_pac_port;
>
> - char config_file_path[PATH_NAME_MAX];
> - char *file_var;
> char *ts_name; // Used to send redirects when no host info
>
> char *http_default_redirect_url; // Used if redirect in "referer"
> filtering was not defined properly
>
>
--
Igor Galić
Tel: +43 (0) 664 886 22 883
Mail: i.galic@brainsware.org
URL: http://brainsware.org/
GPG: 8716 7A9F 989B ABD5 100F 4008 F266 55D6 2998 1641