summaryrefslogtreecommitdiff
path: root/cpp/src/qpidd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpidd.cpp')
-rw-r--r--cpp/src/qpidd.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/cpp/src/qpidd.cpp b/cpp/src/qpidd.cpp
index 7be6aea464..0b8ab4076c 100644
--- a/cpp/src/qpidd.cpp
+++ b/cpp/src/qpidd.cpp
@@ -90,7 +90,8 @@ struct QpiddOptions : public qpid::Options {
for (Plugin::Plugins::const_iterator i = plugins.begin();
i != plugins.end();
++i)
- add(*(*i)->getOptions());
+ if ((*i)->getOptions() != 0)
+ add(*(*i)->getOptions());
}
void usage() const {
@@ -141,12 +142,15 @@ struct QpiddDaemon : public Daemon {
}
};
-void tryShlib(const char* libname) {
+void tryShlib(const char* libname, bool noThrow) {
try {
Shlib shlib(libname);
QPID_LOG (info, "Loaded Module: " << libname);
}
- catch (const exception& e) {}
+ catch (const exception& e) {
+ if (!noThrow)
+ throw;
+ }
}
void loadModuleDir (string dirname, bool isDefault)
@@ -165,7 +169,7 @@ void loadModuleDir (string dirname, bool isDefault)
{
if (!fs::is_directory(*itr) &&
itr->string().find (".so") == itr->string().length() - 3)
- tryShlib (itr->string().data());
+ tryShlib (itr->string().data(), true);
}
}
@@ -187,7 +191,7 @@ int main(int argc, char* argv[])
for (vector<string>::iterator iter = bootOptions.module.load.begin();
iter != bootOptions.module.load.end();
iter++)
- tryShlib (iter->data());
+ tryShlib (iter->data(), false);
bool isDefault = defaultPath == bootOptions.module.loadDir;
loadModuleDir (bootOptions.module.loadDir, isDefault);