diff --git a/domain-server/src/DomainMetadata.cpp b/domain-server/src/DomainMetadata.cpp index b920ab022b..262d4ea0f1 100644 --- a/domain-server/src/DomainMetadata.cpp +++ b/domain-server/src/DomainMetadata.cpp @@ -54,22 +54,11 @@ const QString DomainMetadata::Descriptors::TAGS = "tags"; // // it is meant to be sent to and consumed by an external API -DomainMetadata::DomainMetadata(QObject* domainServer) : QObject(domainServer) { +DomainMetadata::DomainMetadata() { // set up the structure necessary for casting during parsing _metadata[USERS] = QVariantMap {}; _metadata[DESCRIPTORS] = QVariantMap {}; - assert(dynamic_cast(domainServer)); - DomainServer* server = static_cast(domainServer); - - // update the metadata when a user (dis)connects - connect(server, &DomainServer::userConnected, this, &DomainMetadata::usersChanged); - connect(server, &DomainServer::userDisconnected, this, &DomainMetadata::usersChanged); - - // update the metadata when security changes - connect(&server->_settingsManager, &DomainServerSettingsManager::updateNodePermissions, - this, static_cast(&DomainMetadata::securityChanged)); - // initialize the descriptors securityChanged(false); descriptorsChanged(); diff --git a/domain-server/src/DomainMetadata.h b/domain-server/src/DomainMetadata.h index 4c4f8ecf3c..ba6b1b88a6 100644 --- a/domain-server/src/DomainMetadata.h +++ b/domain-server/src/DomainMetadata.h @@ -42,8 +42,8 @@ public: static const QString TAGS; }; - DomainMetadata(QObject* domainServer); - DomainMetadata() = delete; + DomainMetadata(); + ~DomainMetadata() = default; // Get cached metadata QJsonObject get(); @@ -54,7 +54,6 @@ public: public slots: void descriptorsChanged(); void securityChanged(bool send); - void securityChanged() { securityChanged(true); } void usersChanged(); protected: diff --git a/domain-server/src/DomainServer.cpp b/domain-server/src/DomainServer.cpp index d244fc99c6..7ff0459f21 100644 --- a/domain-server/src/DomainServer.cpp +++ b/domain-server/src/DomainServer.cpp @@ -268,10 +268,17 @@ DomainServer::DomainServer(int argc, char* argv[]) : } // send signal to DomainMetadata when descriptors changed - _metadata = new DomainMetadata(this); + _metadata = new DomainMetadata(); connect(&_settingsManager, &DomainServerSettingsManager::settingsUpdated, _metadata, &DomainMetadata::descriptorsChanged); + // update the metadata when a user (dis)connects + connect(this, &DomainServer::userConnected, _metadata, &DomainMetadata::usersChanged); + connect(this, &DomainServer::userDisconnected, _metadata, &DomainMetadata::usersChanged); + + // update the metadata when security changes + connect(&_settingsManager, &DomainServerSettingsManager::updateNodePermissions, [this] { _metadata->securityChanged(true); }); + qDebug() << "domain-server is running"; static const QString AC_SUBNET_WHITELIST_SETTING_PATH = "security.ac_subnet_whitelist"; @@ -3086,7 +3093,7 @@ void DomainServer::initializeMetadataExporter() { if (isMetadataExporterEnabled && !_httpMetadataExporterManager) { qCInfo(domain_server) << "Starting Metadata exporter on port " << metadataExporterPort; - _httpMetadataExporterManager = new HTTPManager(QHostAddress::Any, (quint16)metadataExporterPort, QString("%1/resources/metadata_exporter/").arg(QCoreApplication::applicationDirPath()), &_metadataExporter); + _httpMetadataExporterManager = new HTTPManager(QHostAddress::Any, (quint16)metadataExporterPort, QString("%1/resources/metadata_exporter/").arg(QCoreApplication::applicationDirPath()), _metadata); } } diff --git a/domain-server/src/DomainServer.h b/domain-server/src/DomainServer.h index a4a47f5f46..c27500d5ce 100644 --- a/domain-server/src/DomainServer.h +++ b/domain-server/src/DomainServer.h @@ -238,7 +238,6 @@ private: DomainGatekeeper _gatekeeper; DomainServerExporter _exporter; - DomainMetadata _metadataExporter; HTTPManager _httpManager; HTTPManager* _httpExporterManager { nullptr };