From dafa639f2a9154d936788d38ad1b7337bed8a186 Mon Sep 17 00:00:00 2001 From: Donat Zenichev Date: Mon, 10 Mar 2025 10:01:06 +0100 Subject: [PATCH] MT#59962 XMLRPC2DI: make general members static There is only one instance of XMLRPC2DI API, hence only one possible value for a list of class members, such as: - XML RPC port for DI - XML RPC DI server - variable, which defines, if that's configured Additionally fixes: Uninitialized pointer field (UNINIT_CTOR) uninit_member: Non-static class member XMLRPCPort is not initialized in this constructor nor in any functions that it calls. Change-Id: I0120652220129774137e90d1ad8dfa579cca3202 --- apps/xmlrpc2di/XMLRPC2DI.cpp | 9 ++++++++- apps/xmlrpc2di/XMLRPC2DI.h | 9 +++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/xmlrpc2di/XMLRPC2DI.cpp b/apps/xmlrpc2di/XMLRPC2DI.cpp index 4d3fbfe5..56e8d106 100644 --- a/apps/xmlrpc2di/XMLRPC2DI.cpp +++ b/apps/xmlrpc2di/XMLRPC2DI.cpp @@ -46,6 +46,13 @@ XMLRPC2DI* XMLRPC2DI::_instance=0; // retry a failed server after 10 seconds time_t XMLRPC2DI::ServerRetryAfter = 10; +/* is later set during loading */ +unsigned int XMLRPC2DI::XMLRPCPort = 0; + +/* XMLRPC2DI server */ +XMLRPC2DIServer* XMLRPC2DI::server = NULL; +bool XMLRPC2DI::configured = false; + bool XMLRPC2DI::DebugServerParams = false; bool XMLRPC2DI::DebugServerResult = false; @@ -60,7 +67,7 @@ XMLRPC2DI* XMLRPC2DI::instance() } XMLRPC2DI::XMLRPC2DI(const string& mod_name) - : AmDynInvokeFactory(mod_name), configured(false) + : AmDynInvokeFactory(mod_name) { } diff --git a/apps/xmlrpc2di/XMLRPC2DI.h b/apps/xmlrpc2di/XMLRPC2DI.h index 779c66b7..b2126b42 100644 --- a/apps/xmlrpc2di/XMLRPC2DI.h +++ b/apps/xmlrpc2di/XMLRPC2DI.h @@ -170,11 +170,11 @@ class XMLRPC2DI : public AmDynInvokeFactory, public AmDynInvoke { - XMLRPC2DIServer* server; - unsigned int XMLRPCPort; - + static XMLRPC2DIServer* server; + static unsigned int XMLRPCPort; static XMLRPC2DI* _instance; - bool configured; + static bool configured; + int load(); // app server @@ -185,6 +185,7 @@ class XMLRPC2DI void newConnection(const AmArg& args, AmArg& ret); void sendRequest(const AmArg& args, AmArg& ret); void sendRequestList(const AmArg& args, AmArg& ret); + public: XMLRPC2DI(const string& mod_name); ~XMLRPC2DI() { }