You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ge...@apache.org on 2010/01/21 20:27:34 UTC

svn commit: r901835 - in /incubator/trafficserver/traffic/trunk: iocore/cache/ iocore/hostdb/ libinktomi++/ librecords/ proxy/ proxy/config/ proxy/http2/ proxy/logging/ proxy/mgmt2/ proxy/mgmt2/cli/ proxy/mgmt2/cli2/ proxy/mgmt2/cop/ proxy/mgmt2/web2/

Author: georgep
Date: Thu Jan 21 19:27:31 2010
New Revision: 901835

URL: http://svn.apache.org/viewvc?rev=901835&view=rev
Log:
TS-103: This fix allows Traffic Server (TC, TM & TS) to honor the TS_ROOT environment variable setting. 
Review: Leif
Tested: ubuntu804,fedora11

Modified:
    incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc
    incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h
    incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc
    incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc
    incubator/trafficserver/traffic/trunk/libinktomi++/ink_platform.h
    incubator/trafficserver/traffic/trunk/librecords/P_RecDefs.h
    incubator/trafficserver/traffic/trunk/librecords/RecCore.cc
    incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc
    incubator/trafficserver/traffic/trunk/proxy/Main.cc
    incubator/trafficserver/traffic/trunk/proxy/Main.h
    incubator/trafficserver/traffic/trunk/proxy/Makefile.am
    incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc
    incubator/trafficserver/traffic/trunk/proxy/config/records.config.in
    incubator/trafficserver/traffic/trunk/proxy/config/storage.config
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc
    incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc
    incubator/trafficserver/traffic/trunk/proxy/logcat.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
    incubator/trafficserver/traffic/trunk/proxy/logstats.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.h
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc
    incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc
    incubator/trafficserver/traffic/trunk/proxy/sac.cc

Modified: incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/cache/Cache.cc Thu Jan 21 19:27:31 2010
@@ -2788,6 +2788,8 @@
 void
 ink_cache_init(ModuleVersion v)
 {
+  struct stat s;
+  int ierr;
   ink_release_assert(!checkModuleVersion(v, CACHE_MODULE_VERSION));
 
   cache_rsb = RecAllocateRawStatBlock((int) cache_stat_count);
@@ -2846,6 +2848,20 @@
   IOCORE_RegisterConfigString(RECT_CONFIG, "proxy.config.config_dir", SYSCONFDIR, RECU_DYNAMIC, RECC_NULL, NULL);
   IOCORE_ReadConfigString(cache_system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
   Debug("cache_init", "proxy.config.config_dir = \"%s\"", cache_system_config_directory);
+  if ((ierr = stat(cache_system_config_directory, &s)) < 0) {
+    ink_strncpy(cache_system_config_directory,system_config_directory,PATH_NAME_MAX); 
+    if ((ierr = stat(cache_system_config_directory, &s)) < 0) {
+      // Try 'system_root_dir/etc/trafficserver' directory
+      snprintf(cache_system_config_directory, sizeof(cache_system_config_directory), 
+               "%s%s%s%s%s",system_root_dir, DIR_SEP,"etc",DIR_SEP,"trafficserver");
+      if ((ierr = stat(cache_system_config_directory, &s)) < 0) {
+        fprintf(stderr,"unable to stat() config dir '%s': %d %d, %s\n", 
+                cache_system_config_directory, ierr, errno, strerror(errno));
+        fprintf(stderr, "please set config path via 'proxy.config.config_dir' \n");
+        _exit(1);
+      }
+    }
+  }
 #ifdef HIT_EVACUATE
 
   IOCORE_RegisterConfigInteger(RECT_CONFIG,

Modified: incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/cache/NewCacheVC.h Thu Jan 21 19:27:31 2010
@@ -28,6 +28,7 @@
 #include "api/include/InkAPI.h"
 #include "HTTP.h"
 #include "I_Cache.h"
+#include "P_Cache.h"
 #include "P_CacheHttp.h"
 
 class APIHook;

Modified: incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/hostdb/HostDB.cc Thu Jan 21 19:27:31 2010
@@ -26,7 +26,7 @@
 #include "P_HostDB.h"
 
 #ifndef NON_MODULAR
-char system_config_directory[512] = "conf/yts";
+//char system_config_directory[512] = "conf/yts";
 #else
 #include "Show.h"
 #endif
@@ -330,7 +330,7 @@
       szPath[i] = '\\';
     i++;
   }
-  strcpy(storage_path, system_base_install);
+  ink_strncpy(storage_path, system_root_dir, PATH_NAME_MAX);
   strcat(storage_path, DIR_SEP);
   strcat(storage_path, szPath);
 #else
@@ -338,6 +338,15 @@
 #endif
   IOCORE_ReadConfigInt32(storage_size, "proxy.config.hostdb.storage_size");
 
+  struct stat s;
+  int err;
+  if ((err = stat(storage_path, &s)) < 0) {
+    ink_strncpy(storage_path,system_local_state_dir,PATH_NAME_MAX); 
+    if ((err = stat(storage_path, &s)) < 0) {
+      Warning("Unable to stat() directory '%s': %d %d, %s", storage_path, err, errno, strerror(errno));
+      Warning(" Please set 'proxy.config.hostdb.storage_path' or 'proxy.config.local_state_dir' ");
+    }
+  }
   hostDBStore = NEW(new Store);
   hostDBSpan = NEW(new Span);
   hostDBSpan->init(storage_path, storage_size);

Modified: incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/hostdb/MultiCache.cc Thu Jan 21 19:27:31 2010
@@ -34,7 +34,7 @@
 #ifdef NON_MODULAR
 #include "P_HostDB.h"
 #else
-extern const char *system_config_directory;
+//extern const char *system_config_directory;
 #endif
 
 #include "P_MultiCache.h"

Modified: incubator/trafficserver/traffic/trunk/libinktomi++/ink_platform.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/libinktomi%2B%2B/ink_platform.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/libinktomi++/ink_platform.h (original)
+++ incubator/trafficserver/traffic/trunk/libinktomi++/ink_platform.h Thu Jan 21 19:27:31 2010
@@ -169,4 +169,10 @@
 #define MAXINT INT_MAX
 #endif
 
+#ifndef PATH_NAME_MAX
+#define PATH_NAME_MAX 511 // instead of PATH_MAX which is inconsistent
+                          // on various OSs (linux-4096,osx/bsd-1024,
+                          //                 windows-260,etc)
+#endif
+
 #endif /* _PLATFORM_H_ */

Modified: incubator/trafficserver/traffic/trunk/librecords/P_RecDefs.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/librecords/P_RecDefs.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/librecords/P_RecDefs.h (original)
+++ incubator/trafficserver/traffic/trunk/librecords/P_RecDefs.h Thu Jan 21 19:27:31 2010
@@ -28,13 +28,13 @@
 
 #include "I_RecDefs.h"
 
-#define REC_CONFIG_DIR                 PKGSYSCONFDIR "/"
+#define REC_CONFIG_DIR                 "./etc/trafficserver/"
 #define REC_CONFIG_FILE                "records.config"
 #define REC_SHADOW_EXT                 ".shadow"
-#define REC_RAW_STATS_DIR              PKGLOCALSTATEDIR "/"
+#define REC_RAW_STATS_DIR              "./var/trafficserver/"
 #define REC_RAW_STATS_FILE             "records.snap"
 
-#define REC_PIPE_DIR                   PKGLOCALSTATEDIR
+#define REC_PIPE_DIR                   "./var/trafficserver"
 #define REC_PIPE_NAME                  "librecords_pipe"
 
 #define REC_MESSAGE_ELE_MAGIC           0xF00DF00D

Modified: incubator/trafficserver/traffic/trunk/librecords/RecCore.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/librecords/RecCore.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/librecords/RecCore.cc (original)
+++ incubator/trafficserver/traffic/trunk/librecords/RecCore.cc Thu Jan 21 19:27:31 2010
@@ -222,9 +222,9 @@
     g_rec_config_contents_llq = create_queue();
     g_rec_config_contents_ht = ink_hash_table_create(InkHashTableKeyType_String);
     // Import the file into memory; try the following in this order:
-    // ./conf/yts/records.config.shadow
+    // ./etc/trafficserver/records.config.shadow
     // ./records.config.shadow
-    // ./conf/yts/records.config
+    // ./etc/trafficserver/records.config
     // ./records.config
     bool file_exists = true;
     g_rec_config_fpath = REC_CONFIG_DIR REC_CONFIG_FILE REC_SHADOW_EXT;

Modified: incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/DiagsConfig.cc Thu Jan 21 19:27:31 2010
@@ -29,7 +29,7 @@
 #define DIAGS_LOG_FILE "manager.log"
 
 #else
-
+#include "Main.h"
 #include "Config.h"
 #define MGMT_PTR       pmgmt
 #define DIAGS_LOG_FILE "diags.log"
@@ -292,8 +292,9 @@
 DiagsConfig::DiagsConfig(char *bdt, char *bat, bool use_records)
 {
   char *diags_logdir = NULL;
-  char diags_logpath[MAXPATHLEN];
-
+  char diags_logpath[PATH_NAME_MAX];
+  struct stat s;
+  int err;
   callbacks_established = false;
   diags_log_fp = (FILE *) NULL;
   diags = NULL;
@@ -314,14 +315,38 @@
   // open the diags log //
   ////////////////////////
 
+  if ((err = stat(system_log_dir, &s)) < 0) {
+    REC_ReadConfigString(system_log_dir, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+    if ((err = stat(system_log_dir, &s)) < 0) {
+      diags_logdir = REC_readString("proxy.config.log2.logfile_dir", &found);
+      if (found && (diags_logdir != NULL)) {
+        snprintf(system_log_dir, sizeof(system_log_dir), "%s",diags_logdir);
+      }
+      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);
+        }
+      }
+    }
+  }
+#if 0
   diags_logdir = REC_readString("proxy.config.log2.logfile_dir", &found);
-
   if (!found || (diags_logdir == NULL) || (diags_logdir[0] == '\0')) {
     ink_strncpy(diags_logpath, DIAGS_LOG_FILE, sizeof(diags_logpath));
   } else {
     snprintf(diags_logpath, sizeof(diags_logpath), "%s%s%s", diags_logdir, DIR_SEP, DIAGS_LOG_FILE);
   }
 
+#else
+    snprintf(diags_logpath, sizeof(diags_logpath), "%s%s%s", system_log_dir, DIR_SEP, DIAGS_LOG_FILE);
+#endif
+
   // open write append
   // diags_log_fp = fopen(diags_logpath,"w");
   diags_log_fp = fopen(diags_logpath, "a+");

Modified: incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/InkAPI.cc Thu Jan 21 19:27:31 2010
@@ -1816,7 +1816,7 @@
 const char *
 INKInstallDirGet(void)
 {
-  return system_base_install;
+  return system_root_dir;
 }
 
 const char *
@@ -1843,7 +1843,7 @@
     if (*plugin_dir == '/') {
       ink_strncpy(path, plugin_dir, sizeof(path));
     } else {
-      snprintf(path, sizeof(path), "%s%s%s", system_base_install, DIR_SEP, plugin_dir);
+      snprintf(path, sizeof(path), "%s%s%s", system_root_dir, DIR_SEP, plugin_dir);
     }
 
   }

Modified: incubator/trafficserver/traffic/trunk/proxy/Main.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/Main.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/Main.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/Main.cc Thu Jan 21 19:27:31 2010
@@ -166,9 +166,13 @@
 char proxy_name[256] = "unknown";
 char command_string[512] = "";
 int remote_management_flag = DEFAULT_REMOTE_MANAGEMENT_FLAG;
-char management_directory[256] = PKGSYSCONFDIR;  // e.g. /usr/local/etc/trafficserver
-char system_config_directory[PATH_NAME_MAX + 1] = PKGSYSCONFDIR;  // e.g. /usr/local/etc/trafficserver
-char system_base_install[256] = "";
+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;
+
 int logging_port_override = 0;
 char logging_server_override[256] = " do not override";
 char error_tags[1024] = "";
@@ -354,12 +358,25 @@
 static void
 check_lockfile()
 {
-  char lockfile[PATH_MAX];
+  char lockfile[PATH_NAME_MAX];
+  char lockdir[PATH_NAME_MAX] = DEFAULT_LOCAL_STATE_DIRECTORY;
   int err;
   pid_t holding_pid;
+  struct stat s;
 
 #ifndef _DLL_FOR_HNS
-  snprintf(lockfile, sizeof(lockfile), PKGLOCALSTATEDIR DIR_SEP SERVER_LOCK);
+  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);
+    }
+  } 
+  snprintf(lockfile, sizeof(lockfile),"%s%s%s", lockdir,DIR_SEP,SERVER_LOCK);
 #else
 #define MAX_ENVVAR_LENGTH 128
   char tempvar[MAX_ENVVAR_LENGTH + 1];
@@ -387,6 +404,63 @@
   }
 }
 
+static void
+init_dirs(void)
+{
+  struct stat s;
+  int err;
+
+
+  if ((err = stat(system_config_directory, &s)) < 0) {
+    ink_strncpy(system_config_directory,management_directory,PATH_NAME_MAX); 
+    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);
+        }
+      }
+    }
+  }
+
+  if ((err = stat(system_local_state_dir, &s)) < 0) {
+    REC_ReadConfigString(system_local_state_dir, "proxy.config.local_state_dir", PATH_NAME_MAX);
+    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);
+      }
+    }
+  }
+
+  if ((err = stat(system_log_dir, &s)) < 0) {
+    REC_ReadConfigString(system_log_dir, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+    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);
+      }
+    }
+  }
+
+}
+
 //
 // Startup process manager
 //
@@ -394,6 +468,8 @@
 initialize_process_manager()
 {
   ProcessRecords *precs;
+  struct stat s;
+  int err;
 
   mgmt_use_syslog();
 
@@ -407,6 +483,18 @@
   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");
+    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));
+      fprintf(stderr,"please set management path via command line '-d <managment directory>'\n");
+      _exit(1);
+    }
+  }
+
   RecProcessInit(remote_management_flag ? RECM_CLIENT : RECM_STAND_ALONE, diags);
 
   if (!remote_management_flag) {
@@ -426,7 +514,8 @@
 
   pmgmt->reconfigure();
 
-  TS_ReadConfigString(system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
+  //TS_ReadConfigString(system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
+  init_dirs();// setup directories
 
   //
   // Define version info records
@@ -1399,16 +1488,41 @@
 }
 #endif //INK_NO_TESTS
 
+
 static void
-find_install_dir(void)
+chdir_root()
 {
-  system_base_install[0] = 0;
-  ink_strncpy(system_base_install, PREFIX, sizeof(system_base_install));
+  char buffer[1024];
+  char *env_path;
+  FILE *ts_file;
+  int i = 0;
 
-  // change the current working directory to the installed directory
-  NOWARN_UNUSED_RETURN(chdir(system_base_install));
+  if ((env_path = getenv("TS_ROOT"))) {
+    strncpy(system_root_dir, env_path, PATH_NAME_MAX);
+  } else {
+    if ((ts_file = fopen("/etc/traffic_server", "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, PATH_NAME_MAX);
+    }
+  }
+
+  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," please set correct path in env variable TS_ROOT \n");
+    _exit(1);
+  } else {
+    printf("[TrafficServer] using root directory '%s'\n",system_root_dir);
+  }
 }
 
+
 int
 getNumSSLThreads(void)
 {
@@ -1556,8 +1670,7 @@
   // Define the version info
   appVersionInfo.setup("traffic_server", PACKAGE_VERSION, __DATE__, __TIME__, BUILD_MACHINE, BUILD_PERSON, "");
 
-  // Find the install root of traffic server.
-  find_install_dir();
+  chdir_root(); // change directory to the install root of traffic server.
 
   process_args(argument_descriptions, n_argument_descriptions, argv);
 
@@ -1657,11 +1770,11 @@
   {
     XMLDom schema;
     bool xmlBandwidthSchemaRead(XMLNode * node);
-    char *configPath = TS_ConfigReadString("proxy.config.config_dir");
+    //char *configPath = TS_ConfigReadString("proxy.config.config_dir");
     char *filename = TS_ConfigReadString("proxy.config.bandwidth_mgmt.filename");
-    char bwFilename[512];
+    char bwFilename[PATH_NAME_MAX];
 
-    snprintf(bwFilename, sizeof(bwFilename), "%s/%s", configPath, filename);
+    snprintf(bwFilename, sizeof(bwFilename), "%s/%s", system_config_directory, filename);
 
 
     Debug("bw-mgmt", "Looking to read: %s for bw-mgmt", bwFilename);

Modified: incubator/trafficserver/traffic/trunk/proxy/Main.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/Main.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/Main.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/Main.h Thu Jan 21 19:27:31 2010
@@ -46,6 +46,11 @@
 
 #define ET_CACHE ET_CALL
 
+#define DEFAULT_ROOT_DIRECTORY            PREFIX
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
+
 //
 // Global Data
 //
@@ -70,8 +75,10 @@
 
 extern int remote_management_flag;
 extern char management_directory[256];
+extern char system_root_dir[PATH_NAME_MAX + 1];
+extern char system_local_state_dir[PATH_NAME_MAX + 1];
 extern char system_config_directory[PATH_NAME_MAX + 1];
-extern char system_base_install[256];
+extern char system_log_dir[PATH_NAME_MAX + 1];
 
 inkcoreapi extern int qt_accept_file_descriptor;
 inkcoreapi extern int CacheClusteringEnabled;

Modified: incubator/trafficserver/traffic/trunk/proxy/Makefile.am
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/Makefile.am?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/Makefile.am (original)
+++ incubator/trafficserver/traffic/trunk/proxy/Makefile.am Thu Jan 21 19:27:31 2010
@@ -74,6 +74,7 @@
   -DPREFIX=\"$(prefix)\" \
   -DPKGSYSCONFDIR=\"$(pkgsysconfdir)\" \
   -DPKGLOCALSTATEDIR=\"$(pkglocalstatedir)\" \
+  -DPKGLOGDIR=\"$(pkglogdir)\" \
   -DPKGSYSUSER=\"$(pkgsysuser)\" \
   $(AM_CPPFLAGS)
 
@@ -175,6 +176,11 @@
   @LIBEXPAT@ @LIBDEMANGLE@ @LIBICONV@ \
   @LIBMLD@ @LIBEXC@ -lm
 
+logcat_CPPFLAGS = \
+  -DPREFIX=\"$(prefix)\" \
+  -DPKGLOGDIR=\"$(pkglogdir)\" \
+  -DPKGLOCALSTATEDIR=\"$(pkglocalstatedir)\" \
+  $(AM_CPPFLAGS)
 logcat_SOURCES = logcat.cc
 logcat_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 logcat_LDADD = \
@@ -233,7 +239,9 @@
   @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ -lm
 
 logstats_CPPFLAGS = \
+  -DPREFIX=\"$(prefix)\" \
   -DPKGLOGDIR=\"$(pkglogdir)\" \
+  -DPKGLOCALSTATEDIR=\"$(pkglocalstatedir)\" \
   $(AM_CPPFLAGS)
 logstats_SOURCES = logstats.cc
 logstats_LDFLAGS = @EXTRA_CXX_LDFLAGS@
@@ -294,6 +302,11 @@
   @LIBREGEX@ @LIBPCRE@ @LIBDB@ @LIBSSL@ @LIBTCL@ @LIBDL@ \
   @LIBEXPAT@ @LIBDEMANGLE@ @LIBMLD@ @LIBEXC@ @LIBICONV@ -lm
 
+sac_CPPFLAGS = \
+  -DPREFIX=\"$(prefix)\" \
+  -DPKGLOGDIR=\"$(pkglogdir)\" \
+  -DPKGLOCALSTATEDIR=\"$(pkglocalstatedir)\" \
+  $(AM_CPPFLAGS)
 sac_SOURCES = sac.cc
 sac_LDFLAGS = @EXTRA_CXX_LDFLAGS@
 sac_LDADD = \

Modified: incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/StatSystem.cc Thu Jan 21 19:27:31 2010
@@ -613,8 +613,11 @@
   // Jira TS-21
   REC_ReadConfigString(local_state_dir, "proxy.config.local_state_dir", PATH_NAME_MAX);
   if ((err = stat(local_state_dir, &s)) < 0) {
-    Warning("Unable to stat() local state directory '%s': %d %d, %s", local_state_dir, err, errno, strerror(errno));
-    Warning(" Please set 'proxy.config.local_state_dir' to allow statistics collection");
+    ink_strncpy(local_state_dir,system_local_state_dir,PATH_NAME_MAX); 
+    if ((err = stat(local_state_dir, &s)) < 0) {
+      Warning("Unable to stat() local state directory '%s': %d %d, %s", local_state_dir, err, errno, strerror(errno));
+      Warning(" Please set 'proxy.config.local_state_dir' to allow statistics collection");
+    }
   }
   REC_ReadConfigString(snap_file, "proxy.config.stats.snap_file", PATH_NAME_MAX);
   snprintf(snap_filename, sizeof(snap_filename), "%s%s%s", local_state_dir,

Modified: incubator/trafficserver/traffic/trunk/proxy/config/records.config.in
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/config/records.config.in?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/config/records.config.in (original)
+++ incubator/trafficserver/traffic/trunk/proxy/config/records.config.in Thu Jan 21 19:27:31 2010
@@ -425,7 +425,7 @@
 #
 ##############################################################################
 CONFIG proxy.config.cluster.cluster_port INT 8086
-CONFIG proxy.config.cluster.ethernet_interface STRING NULL
+CONFIG proxy.config.cluster.ethernet_interface STRING eth0
 ##############################################################################
 #
 # Cache

Modified: incubator/trafficserver/traffic/trunk/proxy/config/storage.config
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/config/storage.config?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/config/storage.config (original)
+++ incubator/trafficserver/traffic/trunk/proxy/config/storage.config Thu Jan 21 19:27:31 2010
@@ -17,6 +17,7 @@
 # Example: 128MB cache file(/usr/local/trafficserver/cache/cache.db)
 #
 #/usr/local/trafficserver/cache 134217728
+#. 536870912
 #
 #
 #############################################################

Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpBodyFactory.cc Thu Jan 21 19:27:31 2010
@@ -278,6 +278,8 @@
   RecString s;
   bool all_found;
   int rec_err;
+  struct stat st;
+  int err;
 
   lock();
   sanity_check();
@@ -318,6 +320,15 @@
       xfree(directory_of_template_sets);
     }
     directory_of_template_sets = s;
+    if ((err = stat(directory_of_template_sets, &st)) < 0) {
+      if ((err = stat(system_config_directory, &st)) < 0) {
+        Warning("Unable to stat() directory '%s': %d %d, %s", system_config_directory, err, errno, strerror(errno));
+        Warning(" Please set 'proxy.config.body_factory.template_sets_dir' ");
+      } else {
+        xfree(directory_of_template_sets);
+        directory_of_template_sets = xstrdup(system_config_directory);
+      }
+    }
   }
 
   Debug("body_factory", "directory_of_template_sets = '%s' (found = %d)", directory_of_template_sets, e);

Modified: incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/http2/HttpProxyServerMain.cc Thu Jan 21 19:27:31 2010
@@ -213,7 +213,7 @@
   ////////////////////////////////
   if ((port<1) || (port> 65535)) {
 
-    ProcessFatal("accept port is not between 1 and 65535 ", "please check configuration");
+    ProcessFatal("accept port %d is not between 1 and 65535 ", "please check configuration", port);
     return;
   }
 

Modified: incubator/trafficserver/traffic/trunk/proxy/logcat.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logcat.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logcat.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logcat.cc Thu Jan 21 19:27:31 2010
@@ -45,6 +45,9 @@
 #include "LogSock.h"
 #include "Log.h"
 
+char system_local_state_dir[PATH_NAME_MAX + 1] = DEFAULT_LOCAL_STATE_DIRECTORY;
+char system_log_dir[PATH_NAME_MAX + 1] = DEFAULT_LOG_DIRECTORY;
+
 // logcat-specific command-line flags
 static int version_flag = 0;
 static int help = 0;
@@ -85,6 +88,7 @@
   "Vw2] [input-file ...]";
 
 
+
 int
 process_file(int in_fd, int out_fd)
 {

Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogConfig.cc Thu Jan 21 19:27:31 2010
@@ -212,6 +212,8 @@
 {
   int val;
   char *ptr;
+  struct stat s;
+  int err;
 
   val = (int) LOG_ConfigReadInteger("proxy.config.log2.log_buffer_size");
   if (val > 0) {
@@ -286,7 +288,24 @@
   if (ptr != NULL) {
     xfree(logfile_dir);
     logfile_dir = ptr;
-  };
+    if ((err = stat(logfile_dir, &s)) < 0) {
+      xfree(logfile_dir);
+      logfile_dir = NULL;
+      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);
+        } 
+
+      } 
+      logfile_dir = xstrdup(system_log_dir);
+    }
+  }
 
 
   //

Modified: incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logging/LogStandalone.cc Thu Jan 21 19:27:31 2010
@@ -65,7 +65,7 @@
 char error_tags[1024] = "";
 char action_tags[1024] = "";
 char command_string[512] = "";
-char system_base_install[256] = "";
+char system_root_dir[PATH_NAME_MAX + 1] = DEFAULT_ROOT_DIRECTORY;
 
 Diags *diags = NULL;
 DiagsConfig *diagsConfig = NULL;

Modified: incubator/trafficserver/traffic/trunk/proxy/logstats.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/logstats.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/logstats.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/logstats.cc Thu Jan 21 19:27:31 2010
@@ -55,6 +55,12 @@
 // Constants, please update the VERSION number when you make a new build!!!
 #define PROGRAM_VERSION		"1.0"
 #define PROGRAM_NAME		"logstats"
+
+#define DEFAULT_ROOT_DIRECTORY            PREFIX
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
+
 const int MAX_LOGBUFFER_SIZE = 65536;
 const int DEFAULT_LINE_LEN = 78;
 const double LOG10_1024 = 3.0102999566398116;
@@ -86,10 +92,10 @@
 // Defaults/string constants
 
 // e.g. /usr/local/var/log/trafficserver/logstats.state
-const static char *STATE_FILE = PKGLOGDIR "/logstats.state";
+const static char *STATE_FILE = DEFAULT_LOG_DIRECTORY "/logstats.state";
 
 // e.g. /usr/local/var/log/trafficserver
-const static char *LOG_DIR = PKGLOGDIR;
+const static char *LOG_DIR = DEFAULT_LOG_DIRECTORY;
 
 
 // Store our "state" (position in log file etc.)
@@ -281,6 +287,8 @@
 typedef hash_map < const char *, OriginStats *, hash < const char *>, eqstr > OriginStorage;
 typedef hash_set < const char *, hash < const char *>, eqstr > OriginSet;
 
+char system_local_state_dir[PATH_NAME_MAX + 1] = DEFAULT_LOCAL_STATE_DIRECTORY;
+char system_log_dir[PATH_NAME_MAX + 1] = DEFAULT_LOG_DIRECTORY;
 
 ///////////////////////////////////////////////////////////////////////////////
 // Globals, holding the accumulated stats (ok, I'm lazy ...)
@@ -1860,7 +1868,7 @@
 
   // Change directory to the log dir
   if (chdir(LOG_DIR) < 0) {
-    strncat(ymon_notice, " can't chdir to " PKGLOGDIR, sizeof(ymon_notice) - strlen(ymon_notice) - 1);
+    strncat(ymon_notice, " can't chdir to " DEFAULT_LOG_DIRECTORY, sizeof(ymon_notice) - strlen(ymon_notice) - 1);
     my_exit(YMON_CRITICAL, ymon_notice);
   }
 

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.cc Thu Jan 21 19:27:31 2010
@@ -35,6 +35,7 @@
 #include "Compatability.h"
 #include "ink_string.h"
 #include "ink_atomic.h"
+#include "Main.h"
 #include "BaseRecords.h"
 #include "RecordsConfig.h"
 #include "MgmtSocket.h"
@@ -86,7 +87,7 @@
 
 BaseRecords::BaseRecords(char *mpath, char *cfile, char *efile)
 {
-  char fpath[1024];
+  char fpath[PATH_NAME_MAX];
   InkHashTableEntry *hash_entry;
   InkHashTableIteratorState hash_iterator_state;
 
@@ -126,7 +127,8 @@
   plugin_data.recs = (Record *) xmalloc(MAX_PLUGIN_RECORDS * sizeof(Record));
 
   /* For now, we are using a dbm for record sharing */
-  snprintf(fpath, sizeof(fpath), "%s", MGMT_DB_FILENAME);
+  snprintf(fpath, sizeof(fpath), "%s%s%s", system_local_state_dir,DIR_SEP,MGMT_DB_FILENAME);
+  unlink(fpath);
   record_db = new MgmtDBM(fpath);
 
   /* Setup RecordType->record_array mappings */

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/BaseRecords.h Thu Jan 21 19:27:31 2010
@@ -235,7 +235,7 @@
   long pid;
   char str_pid[1024];
   MgmtDBM *record_db;
-  char config_file[80];
+  char config_file[PATH_NAME_MAX + 1];
 
   MgmtHashTable *record_files;
   MgmtHashTable *record_id_map;

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/FileManager.cc Thu Jan 21 19:27:31 2010
@@ -70,9 +70,10 @@
 
 FileManager::FileManager()
 {
-  char configTmp[256];
+  char configTmp[PATH_NAME_MAX];
   int pathLen;
   struct stat statBuf;
+  int err;
 
   bindings = ink_hash_table_create(InkHashTableKeyType_String);
 
@@ -85,6 +86,15 @@
     mgmt_fatal(stderr,
                "[FileManager::FileManager] Unable to find configuration directory from proxy.config.config_dir\n");
   }
+  if ((err = stat(configTmp, &statBuf)) < 0) {
+    ink_strncpy(configTmp, system_config_directory,PATH_NAME_MAX); 
+    if ((err = stat(configTmp, &statBuf)) < 0) {
+        mgmt_elog("[FileManager::FileManager] unable to stat() directory '%s': %d %d, %s\n", 
+                mgmt_path, err, errno, strerror(errno));
+        mgmt_elog("[FileManager::FileManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        _exit(1);
+    }
+  }
   // Set up the path to the snap shot dir
   pathLen = strlen(configTmp) + strlen(snapDir) + 3;
   const size_t snapshotDir_size = pathLen + 1;

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/LMRecords.h Thu Jan 21 19:27:31 2010
@@ -45,10 +45,10 @@
 
   LMRecords(char *mpath, char *cfile, char *efile):BaseRecords(mpath, cfile, efile)
   {
-    char fpath[1024];
-      time_last_config_change = 0;
-      snprintf(fpath, sizeof(fpath), "%s", MGMT_DB_FILENAME);
-      unlink(fpath);
+    //char fpath[PATH_NAME_MAX];
+    time_last_config_change = 0;
+    //snprintf(fpath, sizeof(fpath), "%s%s%s", system_local_state_dir,DIR_SEP,MGMT_DB_FILENAME);
+    //unlink(fpath);
   };
   ~LMRecords() {
   };

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.cc Thu Jan 21 19:27:31 2010
@@ -235,7 +235,8 @@
 BaseManager(), run_proxy(proxy_on), record_data(rd)
 {
   bool found;
-
+  struct stat s;
+  int err;
 #ifdef MGMT_USE_SYSLOG
   syslog_facility = 0;
 #endif
@@ -371,6 +372,16 @@
     proxy_server_incoming_ip_to_bind = htonl(INADDR_ANY);
   }
   config_path = REC_readString("proxy.config.config_dir", &found);
+  if ((err = stat(config_path, &s)) < 0) {
+    xfree(config_path);
+    config_path = xstrdup(system_config_directory);
+    if ((err = stat(config_path, &s)) < 0) {
+        mgmt_elog("[LocalManager::LocalManager] unable to stat() directory '%s': %d %d, %s\n", 
+                config_path, err, errno, strerror(errno));
+        mgmt_fatal("[LocalManager::LocalManager] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+    }
+  }
+
   bin_path = REC_readString("proxy.config.bin_path", &found);
   process_server_timeout_secs = REC_readInteger("proxy.config.lm.pserver_timeout_secs", &found);
   process_server_timeout_msecs = REC_readInteger("proxy.config.lm.pserver_timeout_msecs", &found);

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/LocalManager.h Thu Jan 21 19:27:31 2010
@@ -148,7 +148,7 @@
   int process_server_timeout_secs;
   int process_server_timeout_msecs;
 
-  char pserver_path[1024];
+  char pserver_path[PATH_NAME_MAX];
   char *config_path;
   char *bin_path;
   char *absolute_proxy_binary;

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.cc Thu Jan 21 19:27:31 2010
@@ -293,13 +293,14 @@
 }
 
 static void
-init_dirs(void)
+init_dirs(bool use_librecords = true)
 {
   struct stat s;
   int err;
 
   if ((err = stat(mgmt_path, &s)) < 0) {
-    REC_ReadConfigString(mgmt_path, "proxy.config.config_dir", PATH_NAME_MAX);
+    if (use_librecords)
+      REC_ReadConfigString(mgmt_path, "proxy.config.config_dir", PATH_NAME_MAX);
     if ((err = stat(mgmt_path, &s)) < 0) {
       // Try 'system_root_dir/etc/trafficserver' directory
       snprintf(mgmt_path, sizeof(mgmt_path), 
@@ -316,7 +317,8 @@
   if ((err = stat(system_config_directory, &s)) < 0) {
     ink_strncpy(system_config_directory,mgmt_path,PATH_NAME_MAX); 
     if ((err = stat(system_config_directory, &s)) < 0) {
-      REC_ReadConfigString(system_config_directory, "proxy.config.config_dir", PATH_NAME_MAX);
+      if (use_librecords)
+        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), 
@@ -332,7 +334,8 @@
   }
 
   if ((err = stat(system_local_state_dir, &s)) < 0) {
-    REC_ReadConfigString(system_local_state_dir, "proxy.config.local_state_dir", PATH_NAME_MAX);
+    if (use_librecords)
+      REC_ReadConfigString(system_local_state_dir, "proxy.config.local_state_dir", PATH_NAME_MAX);
     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), 
@@ -347,7 +350,8 @@
   }
 
   if ((err = stat(system_log_dir, &s)) < 0) {
-    REC_ReadConfigString(system_log_dir, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
+    if (use_librecords)
+      REC_ReadConfigString(system_log_dir, "proxy.config.log2.logfile_dir", PATH_NAME_MAX);
     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",
@@ -391,6 +395,8 @@
     mgmt_elog("unable to change to root directory \"%s\" [%d '%s']\n", system_root_dir, errno, strerror(errno));
     mgmt_elog(" please set correct path in env variable TS_ROOT \n");
     exit(1);
+  } else {
+    mgmt_log("[TrafficManager] using root directory '%s'\n",system_root_dir);
   }
 }
 
@@ -595,7 +601,7 @@
     icmp_ping = new MgmtPing(); */
   icmp_ping = NULL;
 
-  init_dirs();// setup directories
+  init_dirs(false);// setup directories
 
   // Get the config info we need while we are still root
   extractConfigInfo(mgmt_path, recs_conf, userToRunAs);

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/Main.h Thu Jan 21 19:27:31 2010
@@ -36,9 +36,9 @@
                                   //                 windows-260,etc)
 
 #define DEFAULT_ROOT_DIRECTORY            PREFIX
-#define DEFAULT_LOCAL_STATE_DIRECTORY     PKGLOCALSTATEDIR
-#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   PKGSYSCONFDIR
-#define DEFAULT_LOG_DIRECTORY             PKGLOGDIR
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
 
 void MgmtShutdown(int status);
 void fileUpdated(char *fname);
@@ -62,7 +62,7 @@
 extern char system_root_dir[];
 extern char system_local_state_dir[];
 extern char system_config_directory[];
-extern char system_log_dir[];
+extern char system_log_dir[PATH_NAME_MAX + 1];
 
 
 // Global variable to replace ifdef MGMT_LAUNCH_PROXY so that

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/MgmtDBM.h Thu Jan 21 19:27:31 2010
@@ -62,7 +62,7 @@
 
   MgmtDBM(char *fname):SimpleDBM(), mgmt_sem_id(0)
   {
-    if (!(strlen(fname) < 80)) {
+    if (!(strlen(fname) < PATH_NAME_MAX)) {
       mgmt_fatal(stderr, "[MgmtDBM::MgmtDBM] File name to large: '%s'\n", fname);
     }
     partner_process = 0;
@@ -240,7 +240,7 @@
 #else
   HANDLE mgmt_hsem;
 #endif
-  char db_file[80];
+  char db_file[PATH_NAME_MAX + 1];
   pid_t partner_process;
 
 };                              /* End class MgmtDBM */

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/ProcessManager.cc Thu Jan 21 19:27:31 2010
@@ -43,6 +43,10 @@
 #include "ink_apidefs.h"
 #include "MgmtSocket.h"
 
+#ifndef DEFAULT_LOCAL_STATE_DIRECTORY // FIXME: consolidate defines
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#endif
+
 /*
  * Global ProcessManager
  */
@@ -84,7 +88,7 @@
 ProcessManager::ProcessManager(bool rlm, char *mpath, ProcessRecords * rd):
 BaseManager(), require_lm(rlm), mgmt_sync_key(0), record_data(rd), local_manager_sockfd(0)
 {
-  ink_strncpy(pserver_path, PKGLOCALSTATEDIR, sizeof(pserver_path));
+  ink_strncpy(pserver_path, DEFAULT_LOCAL_STATE_DIRECTORY, sizeof(pserver_path));
   mgmt_signal_queue = create_queue();
 
   // Set temp. process/manager timeout. Will be reconfigure later.

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/RecordsConfig.cc Thu Jan 21 19:27:31 2010
@@ -24,6 +24,7 @@
 
 
 #include "RecordsConfig.h"
+#include "Main.h"
 
 //-------------------------------------------------------------------------
 // RecordsConfig
@@ -58,7 +59,7 @@
 
   {CONFIG, "proxy.config.proxy_name", "", INK_STRING, "<proxy_name>", RU_REREAD, RR_REQUIRED, RC_STR, ".+", RA_NULL}
   ,
-  {CONFIG, "proxy.config.bin_path", "", INK_STRING, PREFIX "/bin", RU_NULL, RR_REQUIRED, RC_NULL, NULL, RA_NULL}
+  {CONFIG, "proxy.config.bin_path", "", INK_STRING, "./bin", RU_NULL, RR_REQUIRED, RC_NULL, NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.proxy_binary", "", INK_STRING, "traffic_server", RU_NULL, RR_REQUIRED, RC_NULL, NULL, RA_NULL}
   ,
@@ -295,13 +296,13 @@
   //# 1 is full clustering, 2 is mgmt only, 3 is no clustering
   {LOCAL, "proxy.local.cluster.type", "", INK_INT, "3", RU_RESTART_TM, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.cluster.rsport", "", INK_INT, "<reliable_service_port>", RU_NULL, RR_REQUIRED, RC_NULL, NULL,
+  {CONFIG, "proxy.config.cluster.rsport", "", INK_INT, "8088", RU_NULL, RR_REQUIRED, RC_NULL, NULL,
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.cluster.mcport", "", INK_INT, "<multicast_port>", RU_REREAD, RR_REQUIRED, RC_NULL, NULL,
+  {CONFIG, "proxy.config.cluster.mcport", "", INK_INT, "8089", RU_REREAD, RR_REQUIRED, RC_NULL, NULL,
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.cluster.mc_group_addr", "", INK_STRING, "<multicast_group_addr>", RU_REREAD, RR_REQUIRED,
+  {CONFIG, "proxy.config.cluster.mc_group_addr", "", INK_STRING, "224.0.1.37", RU_REREAD, RR_REQUIRED,
    RC_IP, "[0-255].[0-255].[0-255].[0-255]", RA_NULL}
   ,
   {CONFIG, "proxy.config.cluster.mc_ttl", "", INK_INT, "1", RU_REREAD, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -311,10 +312,10 @@
   {CONFIG, "proxy.config.admin.html_doc_root", "", INK_STRING, "<html_doc_root>", RU_NULL, RR_REQUIRED, RC_NULL, NULL,
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.admin.web_interface_port", "", INK_INT, "<web_interface_port>", RU_RESTART_TM, RR_REQUIRED,
+  {CONFIG, "proxy.config.admin.web_interface_port", "", INK_INT, "8081", RU_RESTART_TM, RR_REQUIRED,
    RC_INT, "[0-65535]", RA_NULL}
   ,
-  {CONFIG, "proxy.config.admin.autoconf_port", "", INK_INT, "<auto_config_port>", RU_RESTART_TM, RR_REQUIRED, RC_INT,
+  {CONFIG, "proxy.config.admin.autoconf_port", "", INK_INT, "8083", RU_RESTART_TM, RR_REQUIRED, RC_INT,
    "[0-65535]", RA_NULL}
   ,
   {CONFIG, "proxy.config.admin.autoconf.localhost_only", "", INK_INT, "0", RU_RESTART_TM, RR_NULL, RC_INT, "[0-1]",
@@ -329,7 +330,7 @@
   // overseer_mode: 0 disabled, 1 monitor only (get), 2 full acces (get, set, reread, bounce, restart)
   {CONFIG, "proxy.config.admin.overseer_mode", "", INK_INT, "1", RU_RESTART_TM, RR_NULL, RC_INT, "[0-2]", RA_NULL}
   ,
-  {CONFIG, "proxy.config.admin.overseer_port", "", INK_INT, "<overseer_port>", RU_NULL, RR_REQUIRED, RC_NULL, NULL,
+  {CONFIG, "proxy.config.admin.overseer_port", "", INK_INT, "9898", RU_NULL, RR_REQUIRED, RC_NULL, NULL,
    RA_NULL}
   ,
   {CONFIG, "proxy.config.admin.admin_user", "", INK_STRING, "<admin_user_name>", RU_REREAD, RR_REQUIRED, RC_STR, ".+",
@@ -369,7 +370,7 @@
   ,
   {CONFIG, "proxy.config.admin.cli_enabled", "", INK_INT, "1", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.admin.cli_path", "", INK_STRING, PKGLOCALSTATEDIR "/cli", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
+  {CONFIG, "proxy.config.admin.cli_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY "/cli", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.admin.cli_port", "", INK_INT, "9000", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
@@ -410,7 +411,7 @@
   ,
   {CONFIG, "proxy.config.process_manager.enable_mgmt_port", "", INK_INT, "1", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.process_manager.mgmt_port", "", INK_INT, "<process_mgmt_port>", RU_NULL, RR_REQUIRED, RC_NULL,
+  {CONFIG, "proxy.config.process_manager.mgmt_port", "", INK_INT, "8084", RU_NULL, RR_REQUIRED, RC_NULL,
    NULL, RA_NULL}
   ,
   //##############################################################################
@@ -559,7 +560,7 @@
    "authcache.db", RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.auth.cache.path", "", INK_STRING,
-   PKGLOCALSTATEDIR, RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
+   DEFAULT_LOCAL_STATE_DIRECTORY, RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.auth.cache.size", "", INK_INT, "5000",
    RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -586,7 +587,7 @@
   {CONFIG, "proxy.config.auth.convert_bin", "", INK_STRING, "filter_to_policy", RU_REREAD, RR_NULL, RC_STR, ".*",
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.auth.password_file_path", "", INK_STRING, PKGLOCALSTATEDIR, RU_REREAD, RR_NULL, RC_NULL,
+  {CONFIG, "proxy.config.auth.password_file_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY, RU_REREAD, RR_NULL, RC_NULL,
    ".*", RA_NULL}
   ,
   //##############################################################################x
@@ -600,7 +601,7 @@
   ,
   {CONFIG, "proxy.config.ldap.cache.size", "", INK_INT, "5000", RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.ldap.cache.storage_path", "", INK_STRING, PKGLOCALSTATEDIR, RU_RESTART_TS, RR_NULL, RC_NULL,
+  {CONFIG, "proxy.config.ldap.cache.storage_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY, RU_RESTART_TS, RR_NULL, RC_NULL,
    NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.ldap.cache.storage_size", "", INK_INT, "15728640", RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
@@ -721,7 +722,7 @@
   ,
   {CONFIG, "proxy.config.ntlm.cache.size", "", INK_INT, "5000", RU_RESTART_TS, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.ntlm.cache.storage_path", "", INK_STRING, PKGLOCALSTATEDIR, RU_RESTART_TS, RR_NULL, RC_NULL,
+  {CONFIG, "proxy.config.ntlm.cache.storage_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY, RU_RESTART_TS, RR_NULL, RC_NULL,
    NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.ntlm.cache.storage_size", "", INK_INT, "15728640", RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
@@ -808,7 +809,7 @@
   ,
   {CONFIG, "proxy.config.username.cache.size", "", INK_INT, "5000", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.username.cache.storage_path", "", INK_STRING, PKGLOCALSTATEDIR, RU_NULL, RR_NULL, RC_NULL,
+  {CONFIG, "proxy.config.username.cache.storage_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY, RU_NULL, RR_NULL, RC_NULL,
    NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.username.cache.storage_size", "", INK_INT, "15728640", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -830,7 +831,7 @@
   //       #
   {CONFIG, "proxy.config.http.enabled", "", INK_INT, "1", RU_RESTART_TM, RR_NULL, RC_INT, "[0-1]", RA_NULL}
   ,
-  {CONFIG, "proxy.config.http.server_port", "", INK_INT, "<server_port>", RU_RESTART_TM, RR_REQUIRED, RC_INT,
+  {CONFIG, "proxy.config.http.server_port", "", INK_INT, "8080", RU_RESTART_TM, RR_REQUIRED, RC_INT,
    "[0-65535]", RA_NULL}
   ,
   {CONFIG, "proxy.config.http.server_port_attr", "", INK_STRING, "X", RU_RESTART_TM, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -1282,7 +1283,7 @@
   {CONFIG, "proxy.config.body_factory.enable_logging", "", INK_INT, "1", RU_RESTART_TS, RR_NULL, RC_INT, "[0-1]",
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.body_factory.template_sets_dir", "", INK_STRING, PKGSYSCONFDIR "/body_factory", RU_RESTART_TS,
+  {CONFIG, "proxy.config.body_factory.template_sets_dir", "", INK_STRING, DEFAULT_SYSTEM_CONFIG_DIRECTORY "/body_factory", RU_RESTART_TS,
    RR_NULL, RC_STR, "^[^[:space:]]+$", RA_NULL}
   ,
   //# 0 - never suppress generated responses
@@ -2187,7 +2188,7 @@
   //# Cluster Subsystem
   //#
   //##############################################################################
-  {CONFIG, "proxy.config.cluster.cluster_port", "", INK_INT, "<cluster_port>", RU_RESTART_TS, RR_REQUIRED, RC_NULL,
+  {CONFIG, "proxy.config.cluster.cluster_port", "", INK_INT, "8086", RU_RESTART_TS, RR_REQUIRED, RC_NULL,
    NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.cluster.cluster_configuration", "", INK_STRING, "cluster.config", RU_NULL, RR_NULL, RC_NULL,
@@ -2625,7 +2626,7 @@
   //       # in entries, may not be changed while running
   {CONFIG, "proxy.config.hostdb.size", "", INK_INT, "200000", RU_REREAD, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.hostdb.storage_path", "", INK_STRING, PKGLOCALSTATEDIR, RU_REREAD, RR_NULL, RC_NULL, NULL,
+  {CONFIG, "proxy.config.hostdb.storage_path", "", INK_STRING, DEFAULT_LOCAL_STATE_DIRECTORY, RU_REREAD, RR_NULL, RC_NULL, NULL,
    RA_NULL}
   ,
   {CONFIG, "proxy.config.hostdb.storage_size", "", INK_INT, "33554432", RU_REREAD, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -2728,7 +2729,7 @@
   ,
   {CONFIG, "proxy.config.log2.hostname", "", INK_STRING, "localhost", RU_REREAD, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.log2.logfile_dir", "", INK_STRING, PKGLOGDIR , RU_REREAD, RR_NULL, RC_STR, "^[^[:space:]]+$",
+  {CONFIG, "proxy.config.log2.logfile_dir", "", INK_STRING, DEFAULT_LOG_DIRECTORY, RU_REREAD, RR_NULL, RC_STR, "^[^[:space:]]+$",
    RA_NULL}
   ,
   {CONFIG, "proxy.config.log2.logfile_perm", "", INK_STRING, "rw-r--r--", RU_REREAD, RR_NULL, RC_NULL, NULL, RA_NULL}
@@ -2792,7 +2793,7 @@
   {CONFIG, "proxy.config.log2.collation_host", "", INK_STRING, NULL, RU_REREAD, RR_NULL, RC_STR, "^[^[:space:]]*$",
    RA_NULL}
   ,
-  {CONFIG, "proxy.config.log2.collation_port", "", INK_INT, "<log2_collation_port>", RU_REREAD, RR_REQUIRED, RC_INT,
+  {CONFIG, "proxy.config.log2.collation_port", "", INK_INT, "8085", RU_REREAD, RR_REQUIRED, RC_INT,
    "[0-65535]", RA_NULL}
   ,
   {CONFIG, "proxy.config.log2.collation_secret", "", INK_STRING, "foobar", RU_REREAD, RR_NULL, RC_STR, ".*", RA_NULL}
@@ -3336,10 +3337,10 @@
   ,
   {CONFIG, "proxy.config.aaa.radius.min_timeout", "", INK_INT, "10", RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.aaa.radius.database_path", "", INK_STRING, PKGSYSCONFDIR "/plugins/aaa/raddb", RU_NULL, RR_NULL,
+  {CONFIG, "proxy.config.aaa.radius.database_path", "", INK_STRING, DEFAULT_SYSTEM_CONFIG_DIRECTORY "/plugins/aaa/raddb", RU_NULL, RR_NULL,
    RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.aaa.radius.log_path", "", INK_STRING, PKGLOGDIR, RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
+  {CONFIG, "proxy.config.aaa.radius.log_path", "", INK_STRING, DEFAULT_LOG_DIRECTORY, RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
 
   //##############################################################################
@@ -3423,7 +3424,7 @@
   {CONFIG, "proxy.config.ssl.server.cert.filename", "", INK_STRING, "server.pem", RU_RESTART_TS, RR_NULL, RC_STR,
    "^[^[:space:]]+$", RA_NULL}
   ,
-  {CONFIG, "proxy.config.ssl.server.cert.path", "", INK_STRING, PKGSYSCONFDIR, RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
+  {CONFIG, "proxy.config.ssl.server.cert.path", "", INK_STRING, DEFAULT_SYSTEM_CONFIG_DIRECTORY, RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
    RA_NULL}
   ,
   {CONFIG, "proxy.config.ssl.server.cert_chain.filename", "", INK_STRING, NULL, RU_RESTART_TS, RR_NULL, RC_STR, NULL,
@@ -3448,7 +3449,7 @@
   {CONFIG, "proxy.config.ssl.client.cert.filename", "", INK_STRING, NULL, RU_RESTART_TS, RR_NULL, RC_STR,
    "^[^[:space:]]*$", RA_NULL}
   ,
-  {CONFIG, "proxy.config.ssl.client.cert.path", "", INK_STRING, PKGSYSCONFDIR, RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
+  {CONFIG, "proxy.config.ssl.client.cert.path", "", INK_STRING, DEFAULT_SYSTEM_CONFIG_DIRECTORY, RU_RESTART_TS, RR_NULL, RC_NULL, NULL,
    RA_NULL}
   ,
   {CONFIG, "proxy.config.ssl.client.private_key.filename", "", INK_STRING, NULL, RU_RESTART_TS, RR_NULL, RC_STR,
@@ -3601,11 +3602,11 @@
   //# Directory in which to find plugins
   {CONFIG, "proxy.config.plugin.plugin_dir", "", INK_STRING, PKGLIBEXECDIR, RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
-  {CONFIG, "proxy.config.plugin.plugin_mgmt_dir", "", INK_STRING, PKGSYSCONFDIR "/plugins_mgmt", RU_NULL, RR_NULL, RC_NULL,
+  {CONFIG, "proxy.config.plugin.plugin_mgmt_dir", "", INK_STRING, DEFAULT_SYSTEM_CONFIG_DIRECTORY "/plugins_mgmt", RU_NULL, RR_NULL, RC_NULL,
    NULL, RA_NULL}
   ,
   {CONFIG, "proxy.config.plugin.extensions_dir", "", INK_STRING,
-   PKGLOCALSTATEDIR, RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
+   DEFAULT_LOCAL_STATE_DIRECTORY, RU_NULL, RR_NULL, RC_NULL, NULL, RA_NULL}
   ,
 
   //##############################################################################

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/Rollback.cc Thu Jan 21 19:27:31 2010
@@ -59,12 +59,14 @@
   :
 root_access_needed(root_access_needed_)
 {
-  char configTmp[256];
+  char configTmp[PATH_NAME_MAX];
   version_t highestSeen;        // the highest backup version
   ExpandingArray existVer(25, true);    // Exsisting versions
   struct stat fileInfo;
   MgmtInt numBak;
   char *alarmMsg;
+  struct stat s;
+  int err;
 
   // To Test, Read/Write access to the file
   int testFD;                   // For open test
@@ -89,6 +91,16 @@
     ink_assert(0);
   }
 
+  if ((err = stat(configTmp, &s)) < 0) {
+    ink_strncpy(configTmp, system_config_directory,PATH_NAME_MAX); 
+    if ((err = stat(configTmp, &s)) < 0) {
+        mgmt_elog("[Rollback::Rollback] unable to stat() directory '%s': %d %d, %s\n", 
+                mgmt_path, err, errno, strerror(errno));
+        mgmt_elog("[Rollback::Rollback] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        _exit(1);
+    }
+  }
+
   if (varIntFromName("proxy.config.admin.number_config_bak", &numBak) == true) {
     if (numBak > 1) {
       numberBackups = (int) numBak;

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.cc Thu Jan 21 19:27:31 2010
@@ -49,7 +49,7 @@
 
 #ifndef _WIN32
 const char *
-  clientCLI::defaultSockPath = PKGLOCALSTATEDIR "/cli";
+  clientCLI::defaultSockPath = DEFAULT_LOCAL_STATE_DIRECTORY "/cli";
 #else
 const int
   clientCLI::defaultCliPort = 9000;

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli/clientCLI.h Thu Jan 21 19:27:31 2010
@@ -35,6 +35,11 @@
 #include "ink_platform.h"
 #include "inktomi++.h"
 
+#define DEFAULT_ROOT_DIRECTORY            PREFIX
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
+
 class textBuffer;
 
 /* Client side part of CLI */

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.h?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.h (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/CliMgmtUtils.h Thu Jan 21 19:27:31 2010
@@ -35,6 +35,11 @@
                                   // on various OSs (linux-4096,osx/bsd-1024,
                                   //                 windows-260,etc)
 
+#define DEFAULT_ROOT_DIRECTORY            PREFIX
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
+
 #define RECORD_GET 0
 #define RECORD_SET 1
 

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cli2/cliMain.cc Thu Jan 21 19:27:31 2010
@@ -49,14 +49,14 @@
   CliDisplayPrintf = 1;
 
   // initialize MgmtAPI using TS directory specified in /etc/traffic_server
-  // or PKGLOCALSTATEDIR if /etc/traffic_server does not exist
+  // or DEFAULT_LOCAL_STATE_DIRECTORY if /etc/traffic_server does not exist
 
   if (GetTSDirectory(ts_path)) {
-    status = INKInit(PKGLOCALSTATEDIR);
+    status = INKInit(DEFAULT_LOCAL_STATE_DIRECTORY);
     if (status) {
-      printf("INKInit %d: Failed to initialize MgmtAPI in %s\n", status, PKGLOCALSTATEDIR);
+      printf("INKInit %d: Failed to initialize MgmtAPI in %s\n", status, DEFAULT_LOCAL_STATE_DIRECTORY);
     } else {
-      printf("Successfully Initialized MgmtAPI in %s \n", PKGLOCALSTATEDIR);
+      printf("Successfully Initialized MgmtAPI in %s \n", DEFAULT_LOCAL_STATE_DIRECTORY);
     }
   } else {
     snprintf(config_path, sizeof(config_path), "%s/var/trafficserver/", ts_path);

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/cop/TrafficCop.cc Thu Jan 21 19:27:31 2010
@@ -54,6 +54,11 @@
 #define COP_WARNING  LOG_ERR
 #define COP_DEBUG    LOG_DEBUG
 
+#define DEFAULT_ROOT_DIRECTORY            PREFIX
+#define DEFAULT_LOCAL_STATE_DIRECTORY     "./var/trafficserver"
+#define DEFAULT_SYSTEM_CONFIG_DIRECTORY   "./etc/trafficserver"
+#define DEFAULT_LOG_DIRECTORY             "./var/log/trafficserver"
+
 static char root_dir[PATH_MAX];
 static char local_state_dir[PATH_MAX];
 static char config_dir[PATH_MAX];
@@ -2231,7 +2236,7 @@
     exit(1);
   }
 
-  snprintf(config_dir, sizeof(config_dir), PKGSYSCONFDIR);
+  snprintf(config_dir, sizeof(config_dir), DEFAULT_SYSTEM_CONFIG_DIRECTORY);
   if (stat(config_dir, &info) < 0) {
     // Try 'root_dir/etc/trafficserver' directory
     snprintf(config_dir, sizeof(config_dir), "%s%s%s%s%s",
@@ -2243,7 +2248,7 @@
     }
   }
   
-  snprintf(local_state_dir, sizeof(config_dir), PKGLOCALSTATEDIR);
+  snprintf(local_state_dir, sizeof(config_dir), DEFAULT_LOCAL_STATE_DIRECTORY);
   if (stat(local_state_dir, &info) < 0) {
     // Try 'root_dir/var/trafficserver' directory
     snprintf(local_state_dir, sizeof(local_state_dir), 

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/MgmtAllow.cc Thu Jan 21 19:27:31 2010
@@ -61,6 +61,8 @@
   bool found;
   char *config_file = NULL;
   char *config_dir = NULL;
+  struct stat s;
+  int err;
 
   config_file_var = xstrdup(config_var);
   config_file_path[0] = '\0';
@@ -78,6 +80,15 @@
     return;
   }
 
+  if ((err = stat(config_dir, &s)) < 0) {
+    xfree(config_dir);
+    config_dir = xstrdup(system_config_directory);
+    if ((err = stat(config_dir, &s)) < 0) {
+      mgmt_log(stderr, "%s WARNING: Unable to locate config dir %s.  All IP Addresses will be blocked\n",config_dir);
+      return;
+    }
+  }
+
   if (strlen(config_file) + strlen(config_dir) + 1 > PATH_NAME_MAX) {
     mgmt_log(stderr, "%s WARNING: Illegal config file name %s.  All IP Addresses will be blocked\n", config_file);
   } else {

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebHttp.cc Thu Jan 21 19:27:31 2010
@@ -1881,12 +1881,21 @@
   bool found = false;
   int ret_val;
   struct stat snapDirStat;
-  char config_dir[256];
+  char config_dir[PATH_NAME_MAX];
+  struct stat s;
 
-  if (varStrFromName("proxy.config.config_dir", config_dir, 256) == false)
+  if (varStrFromName("proxy.config.config_dir", config_dir, PATH_NAME_MAX) == false)
     mgmt_fatal(stderr,
                "[WebHttp::handle_submit_snapshot] Unable to find configuration directory from proxy.config.config_dir\n");
 
+  if ((err = stat(config_dir, &s)) < 0) {
+    ink_strncpy(config_dir, system_config_directory,PATH_NAME_MAX); 
+    if ((err = stat(config_dir, &s)) < 0) {
+        mgmt_elog("[WebHttp::handle_submit_snapshot] unable to stat() directory '%s': %d %d, %s\n", 
+                config_dir, err, errno, strerror(errno));
+        mgmt_fatal("[WebHttp::handle_submit_snapshot] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+    }
+  }
   // check for submit_from_page
   if (ink_hash_table_lookup(whc->post_data_ht, "submit_from_page", (void **) &submit_from_page)) {
     ink_hash_table_delete(whc->post_data_ht, "submit_from_page");

Modified: incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/mgmt2/web2/WebIntrMain.cc Thu Jan 21 19:27:31 2010
@@ -742,6 +742,18 @@
   if (autoconfContext.docRoot == NULL) {
     mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
   } else {
+    struct stat s;
+    int err;
+    if ((err = stat(autoconfContext.docRoot, &s)) < 0) {
+      xfree(autoconfContext.docRoot);
+      autoconfContext.docRoot = xstrdup(system_config_directory);
+      if ((err = stat(autoconfContext.docRoot, &s)) < 0) {
+        mgmt_elog("[WebIntrMain] unable to stat() directory '%s': %d %d, %s\n", 
+                autoconfContext.docRoot, err, errno, strerror(errno));
+        mgmt_elog("[WebIntrMain] please set config path via command line '-path <path>' or 'proxy.config.config_dir' \n");
+        mgmt_fatal(stderr, "[WebIntrMain] No Client AutoConf Root\n");
+      }
+    }
     autoconfContext.docRootLen = strlen(autoconfContext.docRoot);
   }
   autoconfContext.adminAuthEnabled = 0;

Modified: incubator/trafficserver/traffic/trunk/proxy/sac.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/proxy/sac.cc?rev=901835&r1=901834&r2=901835&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/proxy/sac.cc (original)
+++ incubator/trafficserver/traffic/trunk/proxy/sac.cc Thu Jan 21 19:27:31 2010
@@ -53,6 +53,9 @@
 extern int CacheClusteringEnabled;
 int auto_clear_cache_flag = 0;
 
+char system_local_state_dir[PATH_NAME_MAX + 1] = DEFAULT_LOCAL_STATE_DIRECTORY;
+char system_log_dir[PATH_NAME_MAX + 1] = DEFAULT_LOG_DIRECTORY;
+
 // ldap required externals ...
 //int  gldap_auth_enable    = 0;
 //int  gsplit_ldap_enabled  = 0;