diff options
Diffstat (limited to 'cpp/src/qpid')
| -rw-r--r-- | cpp/src/qpid/broker/Broker.cpp | 5 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/Broker.h | 3 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/posix/BrokerDefaults.cpp | 12 | ||||
| -rw-r--r-- | cpp/src/qpid/broker/windows/BrokerDefaults.cpp | 13 |
4 files changed, 28 insertions, 5 deletions
diff --git a/cpp/src/qpid/broker/Broker.cpp b/cpp/src/qpid/broker/Broker.cpp index 749489fbfd..4fcb8b6451 100644 --- a/cpp/src/qpid/broker/Broker.cpp +++ b/cpp/src/qpid/broker/Broker.cpp @@ -57,7 +57,6 @@ #include <iostream> #include <memory> -#include <stdlib.h> using qpid::sys::ProtocolFactory; using qpid::sys::Poller; @@ -96,9 +95,9 @@ Broker::Options::Options(const std::string& name) : { int c = sys::SystemInfo::concurrency(); workerThreads=c+1; - char *home = ::getenv("HOME"); + std::string home = getHome(); - if (home == 0) + if (home.length() == 0) dataDir += DEFAULT_DATA_DIR_LOCATION; else dataDir += home; diff --git a/cpp/src/qpid/broker/Broker.h b/cpp/src/qpid/broker/Broker.h index 8f4621bb39..0a12b3f7d3 100644 --- a/cpp/src/qpid/broker/Broker.h +++ b/cpp/src/qpid/broker/Broker.h @@ -111,6 +111,9 @@ public: bool requireEncrypted; std::string knownHosts; uint32_t maxSessionRate; + + private: + std::string getHome(); }; private: diff --git a/cpp/src/qpid/broker/posix/BrokerDefaults.cpp b/cpp/src/qpid/broker/posix/BrokerDefaults.cpp index b3ef48fe58..9e463fa32d 100644 --- a/cpp/src/qpid/broker/posix/BrokerDefaults.cpp +++ b/cpp/src/qpid/broker/posix/BrokerDefaults.cpp @@ -20,6 +20,7 @@ */ #include "qpid/broker/Broker.h" +#include <stdlib.h> namespace qpid { namespace broker { @@ -27,4 +28,13 @@ namespace broker { const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("/tmp"); const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("/.qpidd"); -}} +std::string +Broker::Options::getHome() { + std::string home; + char *home_c = ::getenv("HOME"); + if (home_c != 0) + home += home_c; + return home; +} + +}} // namespace qpid::broker diff --git a/cpp/src/qpid/broker/windows/BrokerDefaults.cpp b/cpp/src/qpid/broker/windows/BrokerDefaults.cpp index 138995980a..b6862f0418 100644 --- a/cpp/src/qpid/broker/windows/BrokerDefaults.cpp +++ b/cpp/src/qpid/broker/windows/BrokerDefaults.cpp @@ -20,6 +20,7 @@ */ #include "qpid/broker/Broker.h" +#include <stdlib.h> namespace qpid { namespace broker { @@ -27,4 +28,14 @@ namespace broker { const std::string Broker::Options::DEFAULT_DATA_DIR_LOCATION("\\TEMP"); const std::string Broker::Options::DEFAULT_DATA_DIR_NAME("\\QPIDD.DATA"); -}} +std::string +Broker::Options::getHome() { + std::string home; + char home_c[MAX_PATH+1]; + size_t unused; + if (0 == getenv_s (&unused, home_c, sizeof(home_c), "HOME")) + home += home_c; + return home; +} + +}} // namespace qpid::broker |
