You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by mt...@apache.org on 2010/05/18 13:43:21 UTC
svn commit: r945598 - in /trafficserver/traffic/trunk/proxy: Initialize.cc
Main.cc Main.h logging/LogStandalone.cc
Author: mturk
Date: Tue May 18 11:43:21 2010
New Revision: 945598
URL: http://svn.apache.org/viewvc?rev=945598&view=rev
Log:
First one in the series of programs for which we are removing all hard coded paths. Also fill in XXX and TODO as we go
Modified:
trafficserver/traffic/trunk/proxy/Initialize.cc
trafficserver/traffic/trunk/proxy/Main.cc
trafficserver/traffic/trunk/proxy/Main.h
trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
Modified: trafficserver/traffic/trunk/proxy/Initialize.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Initialize.cc?rev=945598&r1=945597&r2=945598&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Initialize.cc (original)
+++ trafficserver/traffic/trunk/proxy/Initialize.cc Tue May 18 11:43:21 2010
@@ -35,6 +35,7 @@
#include "Diags.h"
#include "I_EventSystem.h"
#include "I_Net.h"
+#include "I_Layout.h"
#include "I_Version.h"
#include "Initialize.h" // TODO: move to I_Initialize.h ???
@@ -96,6 +97,8 @@ init_system_settings(void)
#endif
}
+// XXX: This is unused function
+// Either remove it or implement Layout functions
void
init_system_dirs(void)
{
Modified: trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.cc?rev=945598&r1=945597&r2=945598&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ trafficserver/traffic/trunk/proxy/Main.cc Tue May 18 11:43:21 2010
@@ -165,15 +165,15 @@ extern int cache_clustering_enabled;
char cluster_host[DOMAIN_NAME_MAX + 1] = DEFAULT_CLUSTER_HOST;
// = DEFAULT_CLUSTER_PORT_NUMBER;
-char proxy_name[256] = "unknown";
+char proxy_name[DOMAIN_NAME_MAX + 1] = "unknown";
char command_string[512] = "";
int remote_management_flag = DEFAULT_REMOTE_MANAGEMENT_FLAG;
-char management_directory[256] = DEFAULT_SYSTEM_CONFIG_DIRECTORY;
-char system_root_dir[PATH_NAME_MAX + 1] = DEFAULT_ROOT_DIRECTORY;
-char system_local_state_dir[PATH_NAME_MAX + 1] = DEFAULT_LOCAL_STATE_DIRECTORY;
-char system_config_directory[PATH_NAME_MAX + 1] = DEFAULT_SYSTEM_CONFIG_DIRECTORY;
-char system_log_dir[PATH_NAME_MAX + 1] = DEFAULT_LOG_DIRECTORY;
+char management_directory[PATH_NAME_MAX+1]; // Layout->sysconfdir
+char system_root_dir[PATH_NAME_MAX + 1]; // Layout->prefix
+char system_local_state_dir[PATH_NAME_MAX + 1]; // Layout->localstatedir
+char system_config_directory[PATH_NAME_MAX + 1]; // Layout->sysconfdir
+char system_log_dir[PATH_NAME_MAX + 1]; // Layout->logdir
int logging_port_override = 0;
char logging_server_override[256] = " do not override";
@@ -379,30 +379,27 @@ init_system()
static void
check_lockfile()
{
- char lockfile[PATH_NAME_MAX];
- char lockdir[PATH_NAME_MAX] = DEFAULT_LOCAL_STATE_DIRECTORY;
+ char *lockfile = NULL;
int err;
pid_t holding_pid;
struct stat s;
#ifndef _DLL_FOR_HNS
- if ((err = stat(lockdir, &s)) < 0) {
- // Try 'system_root_dir/var/trafficserver' directory
- snprintf(lockdir, sizeof(lockdir),
- "%s%s%s%s%s",system_root_dir, DIR_SEP,"var",DIR_SEP,"trafficserver");
- if ((err = stat(lockdir, &s)) < 0) {
- fprintf(stderr,"unable to stat() dir'%s': %d %d, %s\n",
- lockdir, err, errno, strerror(errno));
- fprintf(stderr," please set correct path in env variable TS_ROOT \n");
- _exit(1);
- }
+ if ((err = stat(Layout::get()->runtimedir, &s)) < 0) {
+ fprintf(stderr,"unable to stat() dir'%s': %d %d, %s\n",
+ Layout::get()->runtimedir, err, errno, strerror(errno));
+ fprintf(stderr," please set correct path in env variable TS_ROOT \n");
+ _exit(1);
}
- snprintf(lockfile, sizeof(lockfile),"%s%s%s", lockdir,DIR_SEP,SERVER_LOCK);
+ lockfile = Layout::relative_to(Layout::get()->runtimedir, SERVER_LOCK);
#else
#define MAX_ENVVAR_LENGTH 128
char tempvar[MAX_ENVVAR_LENGTH + 1];
+ // TODO: Need an portable ink_file_tmppath()
+ // XXX: What's the _DLL_FOR_HS?
+ //
ink_assert(GetEnvironmentVariable("TEMP", tempvar, MAX_ENVVAR_LENGTH + 1));
- snprintf(lockfile, sizeof(lockfile), "%s%s%s", tempvar, DIR_SEP, SERVER_LOCK);
+ lockfile = Layout::relative_to(tempvar, SERVER_LOCK);
#endif
Lockfile server_lockfile(lockfile);
@@ -427,6 +424,7 @@ check_lockfile()
}
_exit(1);
}
+ xfree(lockfile);
}
static void
@@ -434,53 +432,48 @@ init_dirs(void)
{
struct stat s;
int err;
+ char buf[PATH_NAME_MAX+1];
-
+ ink_strncpy(system_config_directory, Layout::get()->sysconfdir, PATH_NAME_MAX);
+ ink_strncpy(system_local_state_dir, Layout::get()->localstatedir, PATH_NAME_MAX);
+ ink_strncpy(system_log_dir, Layout::get()->logdir, PATH_NAME_MAX);
+
+ /*
+ * XXX: There is not much sense in the following code
+ * The purpose of proxy.config.foo_dir should
+ * be checked BEFORE checking default foo directory.
+ * Otherwise one cannot change the config dir to something else
+ */
if ((err = stat(system_config_directory, &s)) < 0) {
- ink_strncpy(system_config_directory,management_directory,sizeof(system_config_directory));
+ REC_ReadConfigString(buf, "proxy.config.config_dir", PATH_NAME_MAX);
+ Layout::get()->relative(system_config_directory, PATH_NAME_MAX, buf);
if ((err = stat(system_config_directory, &s)) < 0) {
- REC_ReadConfigString(system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
- if ((err = stat(system_config_directory, &s)) < 0) {
- // Try 'system_root_dir/etc/trafficserver' directory
- snprintf(system_config_directory, sizeof(system_config_directory),
- "%s%s%s%s%s",system_root_dir, DIR_SEP,"etc",DIR_SEP,"trafficserver");
- if ((err = stat(system_config_directory, &s)) < 0) {
- fprintf(stderr,"unable to stat() config dir '%s': %d %d, %s\n",
- system_config_directory, err, errno, strerror(errno));
- fprintf(stderr, "please set config path via 'proxy.config.config_dir' \n");
- _exit(1);
- }
- }
+ fprintf(stderr,"unable to stat() config dir '%s': %d %d, %s\n",
+ system_config_directory, err, errno, strerror(errno));
+ fprintf(stderr, "please set config path via 'proxy.config.config_dir' \n");
+ _exit(1);
}
}
if ((err = stat(system_local_state_dir, &s)) < 0) {
- REC_ReadConfigString(system_local_state_dir, "proxy.config.local_state_dir", PATH_NAME_MAX);
+ REC_ReadConfigString(buf, "proxy.config.local_state_dir", PATH_NAME_MAX);
+ Layout::get()->relative(system_local_state_dir, PATH_NAME_MAX, buf);
if ((err = stat(system_local_state_dir, &s)) < 0) {
- // Try 'system_root_dir/var/trafficserver' directory
- snprintf(system_local_state_dir, sizeof(system_local_state_dir),
- "%s%s%s%s%s",system_root_dir, DIR_SEP,"var",DIR_SEP,"trafficserver");
- if ((err = stat(system_local_state_dir, &s)) < 0) {
- fprintf(stderr,"unable to stat() local state dir '%s': %d %d, %s\n",
- system_local_state_dir, err, errno, strerror(errno));
- fprintf(stderr,"please set 'proxy.config.local_state_dir'\n");
- _exit(1);
- }
+ fprintf(stderr,"unable to stat() local state dir '%s': %d %d, %s\n",
+ system_local_state_dir, err, errno, strerror(errno));
+ fprintf(stderr,"please set 'proxy.config.local_state_dir'\n");
+ _exit(1);
}
}
if ((err = stat(system_log_dir, &s)) < 0) {
- REC_ReadConfigString(system_log_dir, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+ REC_ReadConfigString(buf, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+ Layout::get()->relative(system_log_dir, PATH_NAME_MAX, buf);
if ((err = stat(system_log_dir, &s)) < 0) {
- // Try 'system_root_dir/var/log/trafficserver' directory
- snprintf(system_log_dir, sizeof(system_log_dir), "%s%s%s%s%s%s%s",
- system_root_dir, DIR_SEP,"var",DIR_SEP,"log",DIR_SEP,"trafficserver");
- if ((err = stat(system_log_dir, &s)) < 0) {
- fprintf(stderr,"unable to stat() log dir'%s': %d %d, %s\n",
- system_log_dir, err, errno, strerror(errno));
- fprintf(stderr,"please set 'proxy.config.log2.logfile_dir'\n");
- _exit(1);
- }
+ fprintf(stderr,"unable to stat() log dir'%s': %d %d, %s\n",
+ system_log_dir, err, errno, strerror(errno));
+ fprintf(stderr,"please set 'proxy.config.log2.logfile_dir'\n");
+ _exit(1);
}
}
@@ -502,16 +495,9 @@ initialize_process_manager()
if (getenv("PROXY_REMOTE_MGMT")) {
remote_management_flag = true;
}
- //
- // Remove excess '/'
- //
- if (management_directory[strlen(management_directory) - 1] == '/')
- management_directory[strlen(management_directory) - 1] = 0;
if ((err = stat(management_directory, &s)) < 0) {
- // Try 'system_root_dir/etc/trafficserver' directory
- snprintf(management_directory, sizeof(management_directory),
- "%s%s%s%s%s",system_root_dir, DIR_SEP,"etc",DIR_SEP,"trafficserver");
+ ink_strncpy(management_directory, Layout::get()->sysconfdir, PATH_NAME_MAX);
if ((err = stat(management_directory, &s)) < 0) {
fprintf(stderr,"unable to stat() management path '%s': %d %d, %s\n",
management_directory, err, errno, strerror(errno));
@@ -781,7 +767,8 @@ cmd_clear(char *cmd)
char p[PATH_NAME_MAX];
if (c_all || c_hdb) {
Note("Clearing Configuration");
- snprintf(p, sizeof(p), "%s" DIR_SEP "internal" DIR_SEP "hostdb.config", system_config_directory);
+ Layout::relative_to(p, sizeof(p), system_config_directory,
+ "internal" DIR_SEP "hostdb.config");
if (unlink(p) < 0)
Note("unable to unlink %s", p);
}
@@ -1520,33 +1507,13 @@ run_RegressionTest()
static void
chdir_root()
{
- char buffer[1024];
- char *env_path;
- FILE *ts_file;
- int i = 0;
-
- if ((env_path = getenv("TS_ROOT"))) {
- ink_strncpy(system_root_dir, env_path, sizeof(system_root_dir));
- } else {
- if ((ts_file = fopen(DEFAULT_TS_DIRECTORY_FILE, "r")) != NULL) {
- NOWARN_UNUSED_RETURN(fgets(buffer, 1024, ts_file));
- fclose(ts_file);
- while (!isspace(buffer[i])) {
- system_root_dir[i] = buffer[i];
- i++;
- }
- system_root_dir[i] = '\0';
- } else {
- ink_strncpy(system_root_dir, PREFIX, sizeof(system_root_dir));
- }
- }
-
if (system_root_dir[0] && (chdir(system_root_dir) < 0)) {
- fprintf(stderr,"unable to change to root directory \"%s\" [%d '%s']\n", system_root_dir, errno, strerror(errno));
+ fprintf(stderr,"unable to change to root directory \"%s\" [%d '%s']\n",
+ system_root_dir, errno, strerror(errno));
fprintf(stderr," please set correct path in env variable TS_ROOT \n");
_exit(1);
} else {
- printf("[TrafficServer] using root directory '%s'\n",system_root_dir);
+ printf("[TrafficServer] using root directory '%s'\n", system_root_dir);
}
}
@@ -1784,6 +1751,8 @@ main(int argc, char **argv)
// Before accessing file system initialize Layout engine
Layout::create();
+ ink_strncpy(system_root_dir, Layout::get()->prefix, PATH_NAME_MAX);
+ ink_strncpy(management_directory, Layout::get()->sysconfdir, PATH_NAME_MAX);
chdir_root(); // change directory to the install root of traffic server.
process_args(argument_descriptions, n_argument_descriptions, argv);
Modified: trafficserver/traffic/trunk/proxy/Main.h
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/Main.h?rev=945598&r1=945597&r2=945598&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/Main.h (original)
+++ trafficserver/traffic/trunk/proxy/Main.h Tue May 18 11:43:21 2010
@@ -71,10 +71,10 @@ extern int fds_limit;
extern int debug_level;
extern char cluster_host[DOMAIN_NAME_MAX + 1];
extern int cluster_port_number;
-extern char proxy_name[256];
+extern char proxy_name[DOMAIN_NAME_MAX + 1];
extern int remote_management_flag;
-extern char management_directory[256];
+extern char management_directory[PATH_NAME_MAX + 1];
inkcoreapi extern int qt_accept_file_descriptor;
inkcoreapi extern int CacheClusteringEnabled;
Modified: trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
URL: http://svn.apache.org/viewvc/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc?rev=945598&r1=945597&r2=945598&view=diff
==============================================================================
--- trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc (original)
+++ trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc Tue May 18 11:43:21 2010
@@ -63,13 +63,13 @@ int http_accept_port_number = 0;
int http_accept_file_descriptor = 0;
int remote_management_flag = 0;
int auto_clear_hostdb_flag = 0;
-char proxy_name[256] = "unknown";
+char proxy_name[DOMAIN_NAME_MAX + 1] = "unknown";
char system_root_dir[PATH_NAME_MAX + 1] = DEFAULT_ROOT_DIRECTORY;
char system_config_directory[PATH_NAME_MAX + 1] = DEFAULT_SYSTEM_CONFIG_DIRECTORY;
char system_local_state_dir[PATH_NAME_MAX + 1] = DEFAULT_LOCAL_STATE_DIRECTORY;
char system_log_dir[PATH_NAME_MAX + 1] = DEFAULT_LOG_DIRECTORY;
-char management_directory[256] = DEFAULT_SYSTEM_CONFIG_DIRECTORY;
+char management_directory[PATH_NAME_MAX + 1] = DEFAULT_SYSTEM_CONFIG_DIRECTORY;
char error_tags[1024] = "";
char action_tags[1024] = "";