summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/Options.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-07-23 13:08:16 +0000
committerAlan Conway <aconway@apache.org>2007-07-23 13:08:16 +0000
commit1a469b992ef2f28d98f43e63cf4d520c1bf830a4 (patch)
treec743052e2d2ab10a28960234e3efd3534cdb14c1 /cpp/src/qpid/Options.cpp
parent4ab144d3d0a48a4abc1814e3244ef830344f19b2 (diff)
downloadqpid-python-1a469b992ef2f28d98f43e63cf4d520c1bf830a4.tar.gz
* src/tests/cluster.mk: Enable cluster test.
* src/tests/Cluster.h (class TestHandler): Fixed race in TestHandler::waitFor * src/tests/Cluster.cpp - Allow separate start of parent and child processes. * src/qpid/Options.cpp (parse): Skip argv parsing if argc=0. * src/qpid/cluster/Cluster.cpp (configChange): assert group name. * src/qpid/cluster/Cpg.cpp, .h: Additional logging * src/qpid/framing/AMQFrame.cpp: Initialize all fields in ctor, avoid valgrind warning. * src/qpid/log/Logger.cpp: Initialize singleton automatically from environment so logging can be used on tests. * src/qpid/sys/Time.h: Avoid overflow in AbsTime(t, TIME_INFINITE) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@558710 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/Options.cpp')
-rw-r--r--cpp/src/qpid/Options.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/cpp/src/qpid/Options.cpp b/cpp/src/qpid/Options.cpp
index 18a3f726f9..7f4536ff7b 100644
--- a/cpp/src/qpid/Options.cpp
+++ b/cpp/src/qpid/Options.cpp
@@ -27,12 +27,13 @@ namespace qpid {
using namespace std;
namespace {
-const std::string prefix("QPID_");
+
char env2optchar(char env) { return (env=='_') ? '-' : tolower(env); }
struct Mapper {
Mapper(const Options& o) : opts(o) {}
string operator()(const string& env) {
+ static const std::string prefix("QPID_");
if (env.substr(0, prefix.size()) == prefix) {
string opt = env.substr(prefix.size());
transform(opt.begin(), opt.end(), opt.begin(), env2optchar);
@@ -58,7 +59,8 @@ void Options::parse(int argc, char** argv, const std::string& configFile)
try {
po::variables_map vm;
parsing="command line options";
- po::store(po::parse_command_line(argc, argv, *this), vm);
+ if (argc > 0 && argv != 0)
+ po::store(po::parse_command_line(argc, argv, *this), vm);
parsing="environment variables";
po::store(po::parse_environment(*this, Mapper(*this)), vm);
po::notify(vm); // configFile may be updated from arg/env options.