diff options
-rw-r--r-- | qpid/cpp/src/qpid/broker/Broker.cpp | 5 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/ConnectionHandler.cpp | 6 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/broker/amqp/Connection.cpp | 14 |
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); } |