summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qpid/cpp/src/qpid/broker/Broker.cpp5
-rw-r--r--qpid/cpp/src/qpid/broker/ConnectionHandler.cpp6
-rw-r--r--qpid/cpp/src/qpid/broker/amqp/Connection.cpp14
3 files changed, 14 insertions, 11 deletions
diff --git a/qpid/cpp/src/qpid/broker/Broker.cpp b/qpid/cpp/src/qpid/broker/Broker.cpp
index 622681ab2a..09b437e140 100644
--- a/qpid/cpp/src/qpid/broker/Broker.cpp
+++ b/qpid/cpp/src/qpid/broker/Broker.cpp
@@ -252,6 +252,8 @@ Broker::Broker(const BrokerOptions& conf) :
if (!dataDir.isEnabled()) {
QPID_LOG (info, "No data directory - Disabling persistent configuration");
}
+ System* system = new System (dataDir.isEnabled() ? dataDir.getPath() : string(), this);
+ systemObject = System::shared_ptr(system);
try {
if (conf.enableMgmt) {
QPID_LOG(info, "Management enabled");
@@ -260,9 +262,6 @@ Broker::Broker(const BrokerOptions& conf) :
managementAgent->setName("apache.org", "qpidd");
_qmf::Package packageInitializer(managementAgent.get());
- System* system = new System (dataDir.isEnabled() ? dataDir.getPath() : string(), this);
- systemObject = System::shared_ptr(system);
-
mgmtObject = _qmf::Broker::shared_ptr(new _qmf::Broker(managementAgent.get(), this, system, "amqp-broker"));
mgmtObject->set_systemRef(system->GetManagementObject()->getObjectId());
mgmtObject->set_port(conf.port);
diff --git a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
index 49afd8d24d..545b164ef4 100644
--- a/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
+++ b/qpid/cpp/src/qpid/broker/ConnectionHandler.cpp
@@ -123,8 +123,10 @@ ConnectionHandler::Handler::Handler(qpid::broker::amqp_0_10::Connection& c, bool
properties.setString("product", qpid::product);
properties.setString("version", qpid::version);
- properties.setString("platform", sysInfo->getOsName());
- properties.setString("host", sysInfo->getNodeName());
+ if (sysInfo) {
+ properties.setString("platform", sysInfo->getOsName());
+ properties.setString("host", sysInfo->getNodeName());
+ }
properties.setString(QPID_FED_TAG, connection.getBroker().getFederationTag());
authenticator = SaslAuthenticator::createAuthenticator(c);
diff --git a/qpid/cpp/src/qpid/broker/amqp/Connection.cpp b/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
index b4dab83594..322192f551 100644
--- a/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
+++ b/qpid/cpp/src/qpid/broker/amqp/Connection.cpp
@@ -353,8 +353,6 @@ void Connection::open()
pn_data_t *props = pn_connection_properties(connection);
if (props) {
boost::shared_ptr<const System> sysInfo = getBroker().getSystem();
- std::string osName(sysInfo->getOsName());
- std::string nodeName(sysInfo->getNodeName());
pn_data_clear(props);
pn_data_put_map(props);
@@ -363,10 +361,14 @@ void Connection::open()
pn_data_put_string(props, pn_bytes(qpid::product.size(), qpid::product.c_str()));
pn_data_put_symbol(props, pn_bytes(7, "version"));
pn_data_put_string(props, pn_bytes(qpid::version.size(), qpid::version.c_str()));
- pn_data_put_symbol(props, pn_bytes(8, "platform"));
- pn_data_put_string(props, pn_bytes(osName.size(), osName.c_str()));
- pn_data_put_symbol(props, pn_bytes(4, "host"));
- pn_data_put_string(props, pn_bytes(nodeName.size(), nodeName.c_str()));
+ if (sysInfo) {
+ std::string osName(sysInfo->getOsName());
+ std::string nodeName(sysInfo->getNodeName());
+ pn_data_put_symbol(props, pn_bytes(8, "platform"));
+ pn_data_put_string(props, pn_bytes(osName.size(), osName.c_str()));
+ pn_data_put_symbol(props, pn_bytes(4, "host"));
+ pn_data_put_string(props, pn_bytes(nodeName.size(), nodeName.c_str()));
+ }
pn_data_exit(props);
pn_data_rewind(props);
}