Module: sems Branch: master Commit: ab7d80d69be77a82895890c3ca49d8c9d2702a05 URL: https://github.com/sems-server/sems/commit/ab7d80d69be77a82895890c3ca49d8c9d2702a05
Author: Raphael Coeffic <[email protected]> Committer: Stefan Sayer <[email protected]> Date: 2015-06-08T22:07:50+02:00 xmlrpc2di: wait until XMLRPC server is started before returning from onLoad() Conflicts: apps/xmlrpc2di/XMLRPC2DI.h --- Modified: apps/xmlrpc2di/XMLRPC2DI.cpp Modified: apps/xmlrpc2di/XMLRPC2DI.h --- Diff: https://github.com/sems-server/sems/commit/ab7d80d69be77a82895890c3ca49d8c9d2702a05.diff Patch: https://github.com/sems-server/sems/commit/ab7d80d69be77a82895890c3ca49d8c9d2702a05.patch --- diff --git a/apps/xmlrpc2di/XMLRPC2DI.cpp b/apps/xmlrpc2di/XMLRPC2DI.cpp index 22a2627..7d39698 100644 --- a/apps/xmlrpc2di/XMLRPC2DI.cpp +++ b/apps/xmlrpc2di/XMLRPC2DI.cpp @@ -72,7 +72,6 @@ int XMLRPC2DI::load() { if (configured) // load only once return 0; configured = true; - AmConfigReader cfg; if(cfg.loadFile(AmConfig::ModConfigPath + string(MOD_NAME ".conf"))) @@ -105,7 +104,6 @@ int XMLRPC2DI::load() { ServerRetryAfter = cfg.getParameterInt("server_retry_after", 10); DBG("retrying failed server after %u seconds\n", ServerRetryAfter); - string server_timeout = cfg.getParameter("server_timeout"); if (!server_timeout.empty()) { unsigned int server_timeout_i = 0; @@ -167,6 +165,8 @@ int XMLRPC2DI::load() { } server->start(); + server->waitUntilStarted(); + return 0; } @@ -337,7 +337,7 @@ XMLRPC2DIServer::XMLRPC2DIServer(unsigned int port, : AmEventQueue(this), port(port), bind_ip(bind_ip), - s(s), + s(s), running(false), // register method 'calls' calls_method(s), // register method 'set_loglevel' @@ -354,8 +354,6 @@ XMLRPC2DIServer::XMLRPC2DIServer(unsigned int port, getcpsmax_method(s), getcpslimit_method(s), setcpslimit_method(s) - - { INFO("XMLRPC Server: enabled builtin method 'calls'\n"); INFO("XMLRPC Server: enabled builtin method 'get_loglevel'\n"); diff --git a/apps/xmlrpc2di/XMLRPC2DI.h b/apps/xmlrpc2di/XMLRPC2DI.h index af808dc..1497712 100644 --- a/apps/xmlrpc2di/XMLRPC2DI.h +++ b/apps/xmlrpc2di/XMLRPC2DI.h @@ -105,7 +105,7 @@ class XMLRPC2DIServer unsigned int port; string bind_ip; - AmSharedVar<bool> running; + AmCondition<bool> running; XMLRPC2DIServerCallsMethod calls_method; XMLRPC2DIServerSetLoglevelMethod setloglevel_method; @@ -137,8 +137,12 @@ class XMLRPC2DIServer void run(); void on_stop(); + + void waitUntilStarted() { running.wait_for(); } - static void xmlrpcval2amargarray(XmlRpcValue& v, AmArg& a, unsigned int start_index); + static void xmlrpcval2amargarray(XmlRpcValue& v, AmArg& a, + unsigned int start_index); + static void xmlrpcval2amarg(XmlRpcValue& v, AmArg& a); /** convert all args in a into result*/ _______________________________________________ Semsdev mailing list [email protected] http://lists.iptel.org/mailman/listinfo/semsdev
