Author: tross
Date: Tue Jun  3 11:19:29 2008
New Revision: 662854

URL: http://svn.apache.org/viewvc?rev=662854&view=rev
Log:
QPID-1114 Change defaults for data-dir and pid-dir to /home/ross/.qpidd

Modified:
    incubator/qpid/trunk/qpid/cpp/etc/qpidd
    incubator/qpid/trunk/qpid/cpp/src/qpid/DataDir.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
    incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp

Modified: incubator/qpid/trunk/qpid/cpp/etc/qpidd
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/etc/qpidd?rev=662854&r1=662853&r2=662854&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/etc/qpidd (original)
+++ incubator/qpid/trunk/qpid/cpp/etc/qpidd Tue Jun  3 11:19:29 2008
@@ -32,7 +32,7 @@
 
 start() {
        echo -n $"Starting Qpid AMQP daemon: "
-       daemon --pidfile $pidfile --check $prog --user qpidd /usr/sbin/$prog 
--daemon --pid-dir /var/run/qpidd $QPIDD_OPTIONS
+       daemon --pidfile $pidfile --check $prog --user qpidd /usr/sbin/$prog 
--daemon --pid-dir /var/run/qpidd --data-dir /var/lib/qpidd $QPIDD_OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL = 0 ] && touch $lockfile

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/DataDir.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/DataDir.cpp?rev=662854&r1=662853&r2=662854&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/DataDir.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/DataDir.cpp Tue Jun  3 11:19:29 2008
@@ -41,8 +41,14 @@
     const  char *cpath = dirPath.c_str ();
     struct stat  s;
 
-    if (::stat (cpath, &s))
-        throw Exception ("Data directory not found: " + path);
+    if (::stat(cpath, &s)) {
+        if (errno == ENOENT) {
+            if (::mkdir(cpath, 0755))
+                throw Exception ("Can't create data directory: " + path);
+        }
+        else
+            throw Exception ("Data directory not found: " + path);
+    }
 
     std::string lockFile (path);
     lockFile = lockFile + "/lock";
@@ -51,9 +57,9 @@
     if (fd == -1)
     {
         if (errno == EEXIST)
-            throw Exception ("Data directory is locked by another process");
+            throw Exception ("Data directory is locked by another process: " + 
path);
         if (errno == EACCES)
-            throw Exception ("Insufficient privileges for data directory");
+            throw Exception ("Insufficient privileges for data directory: " + 
path);
         throw Exception(
             QPID_MSG("Error locking " << lockFile << ": " << strError(errno)));
     }

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp?rev=662854&r1=662853&r2=662854&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/Broker.cpp Tue Jun  3 
11:19:29 2008
@@ -76,7 +76,6 @@
 Broker::Options::Options(const std::string& name) :
     qpid::Options(name),
     noDataDir(0),
-    dataDir("/var/lib/qpidd"),
     port(DEFAULT_PORT),
     workerThreads(5),
     maxConnections(500),
@@ -90,6 +89,14 @@
 {
     int c = sys::SystemInfo::concurrency();
     workerThreads=c+1;
+    char *home = ::getenv("HOME");
+
+    if (home == 0)
+        home = "/tmp";
+
+    dataDir += home;
+    dataDir += "/.qpidd";
+
     addOptions()
         ("data-dir", optValue(dataDir,"DIR"), "Directory to contain persistent 
data generated by the broker")
         ("no-data-dir", optValue(noDataDir), "Don't use a data directory.  No 
persistent configuration will be loaded or stored")

Modified: incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp?rev=662854&r1=662853&r2=662854&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpidd.cpp Tue Jun  3 11:19:29 2008
@@ -62,8 +62,16 @@
     int wait;
     std::string piddir;
 
-    DaemonOptions() : qpid::Options("Daemon options"), daemon(false), 
quit(false), check(false), wait(10), piddir("/tmp")
+    DaemonOptions() : qpid::Options("Daemon options"), daemon(false), 
quit(false), check(false), wait(10)
     {
+        char *home = ::getenv("HOME");
+
+        if (home == 0)
+            home = "/tmp";
+
+        piddir += home;
+        piddir += "/.qpidd";
+
         addOptions()
             ("daemon,d", optValue(daemon), "Run as a daemon.")
             ("pid-dir", optValue(piddir, "DIR"), "Directory where 
port-specific PID file is stored")


Reply via email to