Module: kamailio Branch: 4.4 Commit: 3ef7c98b352adba67aec25cbb99a0efa8da25600 URL: https://github.com/kamailio/kamailio/commit/3ef7c98b352adba67aec25cbb99a0efa...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2016-09-08T14:55:34+02:00
evapi: fixed the communication with dispatcher after initializing it as rpc worker
(cherry picked from commit 72580f250a2322ac1d5e71a92826fd8b11225b04)
---
Modified: modules/evapi/evapi_dispatch.c Modified: modules/evapi/evapi_mod.c
---
Diff: https://github.com/kamailio/kamailio/commit/3ef7c98b352adba67aec25cbb99a0efa... Patch: https://github.com/kamailio/kamailio/commit/3ef7c98b352adba67aec25cbb99a0efa...
---
diff --git a/modules/evapi/evapi_dispatch.c b/modules/evapi/evapi_dispatch.c index 502809b..846d650 100644 --- a/modules/evapi/evapi_dispatch.c +++ b/modules/evapi/evapi_dispatch.c @@ -221,6 +221,8 @@ int evapi_dispatch_notify(char *obuf, int olen) } }
+ LM_DBG("the message was sent to %d clients\n", n); + return n; }
diff --git a/modules/evapi/evapi_mod.c b/modules/evapi/evapi_mod.c index b922cac..ab4fa6f 100644 --- a/modules/evapi/evapi_mod.c +++ b/modules/evapi/evapi_mod.c @@ -51,6 +51,7 @@ static char *_evapi_bind_param = NULL; static int _evapi_netstring_format_param = 1;
static tm_api_t tmb; +static int _evapi_dispatcher_pid = -1;
static int mod_init(void); static int child_init(int); @@ -164,16 +165,24 @@ static int child_init(int rank) }
if (rank!=PROC_MAIN) { - evapi_close_notify_sockets_parent(); + if(_evapi_dispatcher_pid!=getpid()) { + evapi_close_notify_sockets_parent(); + } return 0; }
- pid=fork_process(PROC_RPC, "EvAPI Dispatcher", 1); + pid=fork_process(PROC_NOCHLDINIT, "EvAPI Dispatcher", 1); if (pid<0) return -1; /* error */ if(pid==0) { /* child */ + _evapi_dispatcher_pid = getpid();
+ /* do child init to allow execution of rpc like functions */ + if(init_child(PROC_RPC) < 0) { + LM_DBG("failed to do RPC child init for dispatcher\n"); + return -1; + } /* initialize the config framework */ if (cfg_child_init()) return -1;