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/12/06 05:35:44 UTC
[10/11] git commit: TS-2401: Remove cache_system_config_directory
TS-2401: Remove cache_system_config_directory
Remove the global cache_system_config_directory array. It was only
really being used for an error message. The only real place where
it could have been use already used Layout::sysconfdir.
Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/b6288c44
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/b6288c44
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/b6288c44
Branch: refs/heads/master
Commit: b6288c446f65d48f047af8b57991d41203e4f2c0
Parents: 67306a7
Author: James Peach <jp...@apache.org>
Authored: Mon Dec 2 15:19:56 2013 -0800
Committer: James Peach <jp...@apache.org>
Committed: Thu Dec 5 20:33:49 2013 -0800
----------------------------------------------------------------------
iocore/cache/Cache.cc | 33 +++------------------------
iocore/cache/CacheHosting.cc | 42 ++++++++++++-----------------------
iocore/cache/P_CacheHosting.h | 5 ++---
iocore/cache/P_CacheInternal.h | 1 -
iocore/cache/Store.cc | 12 ++--------
iocore/cluster/ClusterMachine.cc | 12 ++++------
lib/records/I_RecCore.h | 2 +-
lib/records/RecCore.cc | 6 ++++-
8 files changed, 31 insertions(+), 82 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cache/Cache.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/Cache.cc b/iocore/cache/Cache.cc
index bf80228..39688a7 100644
--- a/iocore/cache/Cache.cc
+++ b/iocore/cache/Cache.cc
@@ -77,7 +77,6 @@ int cache_config_agg_write_backlog = AGG_SIZE * 2;
int cache_config_enable_checksum = 0;
int cache_config_alt_rewrite_max_size = 4096;
int cache_config_read_while_writer = 0;
-char cache_system_config_directory[PATH_NAME_MAX + 1];
int cache_config_mutex_retry_delay = 2;
#ifdef HTTP_CACHE
static int enable_cache_empty_http_doc = 0;
@@ -3358,26 +3357,6 @@ ink_cache_init(ModuleVersion v)
REC_EstablishStaticConfigInt32(cache_config_mutex_retry_delay, "proxy.config.cache.mutex_retry_delay");
Debug("cache_init", "proxy.config.cache.mutex_retry_delay = %dms", cache_config_mutex_retry_delay);
- // This is just here to make sure IOCORE "standalone" works, it's usually configured in RecordsConfig.cc
- RecRegisterConfigString(RECT_CONFIG, "proxy.config.config_dir", TS_BUILD_SYSCONFDIR, RECU_DYNAMIC, RECC_NULL, NULL);
- REC_ReadConfigString(cache_system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
- if (cache_system_config_directory[0] != '/') {
- // Not an absolute path so use system one
- Layout::get()->relative(cache_system_config_directory, sizeof(cache_system_config_directory), cache_system_config_directory);
- }
- Debug("cache_init", "proxy.config.config_dir = \"%s\"", cache_system_config_directory);
- if (access(cache_system_config_directory, R_OK) == -1) {
- ink_strlcpy(cache_system_config_directory, Layout::get()->sysconfdir,
- sizeof(cache_system_config_directory));
- Debug("cache_init", "proxy.config.config_dir = \"%s\"", cache_system_config_directory);
- if (access(cache_system_config_directory, R_OK) == -1) {
- fprintf(stderr,"unable to access() config dir '%s': %d, %s\n",
- cache_system_config_directory, errno, strerror(errno));
- fprintf(stderr, "please set config path via 'proxy.config.config_dir' \n");
- _exit(1);
- }
- }
-
REC_EstablishStaticConfigInt32(cache_config_hit_evacuate_percent, "proxy.config.cache.hit_evacuate_percent");
Debug("cache_init", "proxy.config.cache.hit_evacuate_percent = %d", cache_config_hit_evacuate_percent);
@@ -3423,16 +3402,10 @@ ink_cache_init(ModuleVersion v)
printf("%s failed\n", err);
exit(1);
}
- // XXX: The read for proxy.config.cache.storage_filename is unused!
- //
+
if (theCacheStore.n_disks == 0) {
- char p[PATH_NAME_MAX + 1];
- snprintf(p, sizeof(p), "%s/", cache_system_config_directory);
- REC_ReadConfigString(p + strlen(p), "proxy.config.cache.storage_filename", PATH_NAME_MAX - strlen(p) - 1);
- if (p[strlen(p) - 1] == '/' || p[strlen(p) - 1] == '\\') {
- ink_strlcat(p, "storage.config", sizeof(p));
- }
- Warning("no cache disks specified in %s: cache disabled\n", p);
+ xptr<char> path(RecConfigReadConfigPath("proxy.config.cache.storage_filename", "storage.config"));
+ Warning("no cache disks specified in %s: cache disabled\n", (const char *)path);
//exit(1);
}
#if TS_USE_INTERIM_CACHE == 1
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cache/CacheHosting.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/CacheHosting.cc b/iocore/cache/CacheHosting.cc
index 93ba8e6..e3c07e3 100644
--- a/iocore/cache/CacheHosting.cc
+++ b/iocore/cache/CacheHosting.cc
@@ -192,7 +192,7 @@ CacheHostMatcher::NewEntry(matcher_line * line_info)
CacheHostTable::CacheHostTable(Cache * c, CacheType typ)
{
-
+ xptr<char> config_path;
config_tags = &CacheHosting_tags;
ink_assert(config_tags != NULL);
@@ -200,16 +200,12 @@ CacheHostTable::CacheHostTable(Cache * c, CacheType typ)
type = typ;
cache = c;
matcher_name = "[CacheHosting]";;
- config_file_path[0] = '\0';
- char *config_file = NULL;
- REC_ReadConfigStringAlloc(config_file, "proxy.config.cache.hosting_filename");
- ink_release_assert(config_file != NULL);
- Layout::relative_to(config_file_path, sizeof(config_file_path),
- cache_system_config_directory, config_file);
- ats_free(config_file);
hostMatch = NULL;
- m_numEntries = this->BuildTable();
+ config_path = RecConfigReadConfigPath("proxy.config.cache.hosting_filename");
+ ink_release_assert(config_path);
+
+ m_numEntries = this->BuildTable(config_path);
}
CacheHostTable::~CacheHostTable()
@@ -263,7 +259,7 @@ int fstat_wrapper(int fd, struct stat *s);
// from it
//
int
-CacheHostTable::BuildTableFromString(char *file_buf)
+CacheHostTable::BuildTableFromString(const char * config_file_path, char *file_buf)
{
// Table build locals
Tokenizer bufTok("\n");
@@ -417,10 +413,8 @@ CacheHostTable::BuildTableFromString(char *file_buf)
}
int
-CacheHostTable::BuildTable()
+CacheHostTable::BuildTable(const char * config_file_path)
{
-
- // File I/O Locals
char *file_buf;
int ret;
@@ -432,7 +426,7 @@ CacheHostTable::BuildTable()
return 0;
}
- ret = BuildTableFromString(file_buf);
+ ret = BuildTableFromString(config_file_path, file_buf);
ats_free(file_buf);
return ret;
}
@@ -631,27 +625,19 @@ CacheHostRecord::Print()
void
ConfigVolumes::read_config_file()
{
-
-// File I/O Locals
+ xptr<char> config_path;
char *file_buf;
- char config_file_path[PATH_NAME_MAX];
- char *config_file = NULL;
- config_file_path[0] = '\0';
-
- REC_ReadConfigStringAlloc(config_file, "proxy.config.cache.volume_filename");
- ink_release_assert(config_file != NULL);
- Layout::relative_to(config_file_path, sizeof(config_file_path),
- cache_system_config_directory, config_file);
- ats_free(config_file);
- file_buf = readIntoBuffer(config_file_path, "[CacheVolition]", NULL);
+ config_path = RecConfigReadConfigPath("proxy.config.cache.volume_filename");
+ ink_release_assert(config_path);
+ file_buf = readIntoBuffer(config_path, "[CacheVolition]", NULL);
if (file_buf == NULL) {
- Warning("Cannot read the config file: %s", config_file_path);
+ Warning("Cannot read the config file: %s", (const char *)config_path);
return;
}
- BuildListFromString(config_file_path, file_buf);
+ BuildListFromString(config_path, file_buf);
ats_free(file_buf);
return;
}
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cache/P_CacheHosting.h
----------------------------------------------------------------------
diff --git a/iocore/cache/P_CacheHosting.h b/iocore/cache/P_CacheHosting.h
index cd3ca2b..dc7008a 100644
--- a/iocore/cache/P_CacheHosting.h
+++ b/iocore/cache/P_CacheHosting.h
@@ -105,8 +105,8 @@ public:
// object is
CacheHostTable(Cache *c, CacheType typ);
~CacheHostTable();
- int BuildTable();
- int BuildTableFromString(char *str);
+ int BuildTable(const char * config_file_path);
+ int BuildTableFromString(const char * config_file_path, char *str);
void Match(char *rdata, int rlen, CacheHostResult *result);
void Print();
@@ -128,7 +128,6 @@ public:
private:
CacheHostMatcher *hostMatch;
const matcher_tags *config_tags;
- char config_file_path[PATH_NAME_MAX];
const char *matcher_name; // Used for Debug/Warning/Error messages
};
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cache/P_CacheInternal.h
----------------------------------------------------------------------
diff --git a/iocore/cache/P_CacheInternal.h b/iocore/cache/P_CacheInternal.h
index 20b89b3..f9a5845 100644
--- a/iocore/cache/P_CacheInternal.h
+++ b/iocore/cache/P_CacheInternal.h
@@ -219,7 +219,6 @@ extern int cache_config_agg_write_backlog;
extern int cache_config_enable_checksum;
extern int cache_config_alt_rewrite_max_size;
extern int cache_config_read_while_writer;
-extern char cache_system_config_directory[PATH_NAME_MAX + 1];
extern int cache_clustering_enabled;
extern int cache_config_agg_write_backlog;
extern int cache_config_ram_cache_compress;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cache/Store.cc
----------------------------------------------------------------------
diff --git a/iocore/cache/Store.cc b/iocore/cache/Store.cc
index bd13bfd..2e79958 100644
--- a/iocore/cache/Store.cc
+++ b/iocore/cache/Store.cc
@@ -296,17 +296,9 @@ Store::read_config(int fd)
// Get pathname if not checking file
if (fd < 0) {
- char storage_path[PATH_NAME_MAX + 1];
- char storage_file[PATH_NAME_MAX + 1];
- // XXX: cache_system_config_directory is initialized
- // inside ink_cache_init() which is called AFTER
- // initialize_store().
- //
- // ink_strlcpy(p, cache_system_config_directory, sizeof(p));
- REC_ReadConfigString(storage_file, "proxy.config.cache.storage_filename", PATH_NAME_MAX);
- Layout::relative_to(storage_path, PATH_NAME_MAX, Layout::get()->sysconfdir, storage_file);
- Debug("cache_init", "Store::read_config, fd = -1, \"%s\"", storage_path);
+ xptr<char> storage_path(RecConfigReadConfigPath("proxy.config.cache.storage_filename", "storage.config"));
+ Debug("cache_init", "Store::read_config, fd = -1, \"%s\"", (const char *)storage_path);
fd =::open(storage_path, O_RDONLY);
if (fd < 0) {
err = "error on open";
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/iocore/cluster/ClusterMachine.cc
----------------------------------------------------------------------
diff --git a/iocore/cluster/ClusterMachine.cc b/iocore/cluster/ClusterMachine.cc
index 00e99e6..408ae8a 100644
--- a/iocore/cluster/ClusterMachine.cc
+++ b/iocore/cluster/ClusterMachine.cc
@@ -29,7 +29,7 @@
#include "ink_config.h"
#include <unistd.h>
#include "P_Cluster.h"
-extern char cache_system_config_directory[PATH_NAME_MAX + 1];
+#include "I_Layout.h"
extern int num_of_cluster_threads;
MachineList *machines_config = NULL;
@@ -214,13 +214,9 @@ read_MachineList(char *filename, int afd)
int n = -1, i = 0, ln = 0;
MachineList *l = NULL;
ink_assert(filename || (afd != -1));
- char p[PATH_NAME_MAX];
- if (filename) {
- ink_strlcpy(p, cache_system_config_directory, sizeof(p));
- ink_strlcat(p, "/", sizeof(p));
- ink_strlcat(p, filename, sizeof(p));
- }
- int fd = ((afd != -1) ? afd : open(p, O_RDONLY));
+ xptr<char> path(Layout::get()->relative_to(Layout::get()->sysconfdir, filename));
+
+ int fd = ((afd != -1) ? afd : open(path, O_RDONLY));
if (fd >= 0) {
while (ink_file_fd_readline(fd, sizeof(line) - 1, line) > 0) {
ln++;
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/lib/records/I_RecCore.h
----------------------------------------------------------------------
diff --git a/lib/records/I_RecCore.h b/lib/records/I_RecCore.h
index 44b0922..8462752 100644
--- a/lib/records/I_RecCore.h
+++ b/lib/records/I_RecCore.h
@@ -56,7 +56,7 @@ char * RecConfigReadSnapshotDir();
// Return a copy of a configuration file that is relative to sysconfdir. The relative path to the configuration
// file is specified in the configuration variable named by "file_variable". If the configuration variable has no
// value, NULL is returned. The caller MUST release the result with ats_free().
-char * RecConfigReadConfigPath(const char * file_variable);
+char * RecConfigReadConfigPath(const char * file_variable, const char * default_value = NULL);
// Test whether the named configuration value is overridden by an environment variable. Return either
// the overridden value, or the original value. Caller MUST NOT free the result.
http://git-wip-us.apache.org/repos/asf/trafficserver/blob/b6288c44/lib/records/RecCore.cc
----------------------------------------------------------------------
diff --git a/lib/records/RecCore.cc b/lib/records/RecCore.cc
index d76cb90..6c17cc9 100644
--- a/lib/records/RecCore.cc
+++ b/lib/records/RecCore.cc
@@ -1091,7 +1091,7 @@ RecConfigReadSnapshotDir()
// RecConfigReadConfigPath
//-------------------------------------------------------------------------
char *
-RecConfigReadConfigPath(const char * file_variable)
+RecConfigReadConfigPath(const char * file_variable, const char * default_value)
{
char buf[PATH_NAME_MAX + 1];
@@ -1101,6 +1101,10 @@ RecConfigReadConfigPath(const char * file_variable)
return Layout::get()->relative_to(Layout::get()->sysconfdir, buf);
}
+ if (default_value) {
+ return Layout::get()->relative_to(Layout::get()->sysconfdir, default_value);
+ }
+
return NULL;
}