diff options
author | Charles E. Rolke <chug@apache.org> | 2012-09-20 13:48:40 +0000 |
---|---|---|
committer | Charles E. Rolke <chug@apache.org> | 2012-09-20 13:48:40 +0000 |
commit | e20a23b370e64c6f09a57b4ddefd6f650e89ba13 (patch) | |
tree | 9a8c05e15b071bc7fd3f78017d76b8ffb4824e32 /qpid/cpp/src/windows/QpiddBroker.cpp | |
parent | a848dc683403f7f2cb26c693b561d3aa70506efb (diff) | |
download | qpid-python-e20a23b370e64c6f09a57b4ddefd6f650e89ba13.tar.gz |
QPID-3500 C++ qpidd broker --help should work despite parse errors
This patch finds and processes --version before anything else.
Then it finds --help before fully parsing command line options.
In the event of a parse error, help usage may be shown as requested.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1388032 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src/windows/QpiddBroker.cpp')
-rw-r--r-- | qpid/cpp/src/windows/QpiddBroker.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/qpid/cpp/src/windows/QpiddBroker.cpp b/qpid/cpp/src/windows/QpiddBroker.cpp index 4ca3f3059c..de2e41dd4d 100644 --- a/qpid/cpp/src/windows/QpiddBroker.cpp +++ b/qpid/cpp/src/windows/QpiddBroker.cpp @@ -53,6 +53,10 @@ BootstrapOptions::BootstrapOptions(const char* argv0) add(log); } +void BootstrapOptions::usage() const { + std::cout << "Usage: qpidd [OPTIONS]" << std::endl << std::endl << *this << std::endl; +} + // Local functions to set and get the pid via a LockFile. namespace { @@ -225,10 +229,10 @@ VOID WINAPI SvcCtrlHandler(DWORD control) ::SetServiceStatus(svcStatusHandle, &svcStatus); CtrlHandler(CTRL_C_EVENT); break; - + case SERVICE_CONTROL_INTERROGATE: break; - + default: break; } @@ -306,7 +310,7 @@ struct ServiceOptions : public qpid::Options { std::string password; std::string depends; - ServiceOptions() + ServiceOptions() : qpid::Options("Service options"), install(false), start(false), @@ -423,7 +427,7 @@ int QpiddBroker::execute (QpiddOptions *options) { // Relies on port number being set via --port or QPID_PORT env variable. NamedSharedMemory<BrokerInfo> info(brokerInfoName(options->broker.port)); int pid = info.get().pid; - if (pid < 0) + if (pid < 0) return 1; if (myOptions->control.check) std::cout << pid << std::endl; |