From 12777af81509e3f6aa3e88c6aacb8844403d1e0b Mon Sep 17 00:00:00 2001 From: Daniel-Constantin Mierla Date: Wed, 13 Jul 2016 16:03:32 +0200 Subject: [PATCH] janssonrpc-c: init cfg framework for additional process - revealed by GH #708 (cherry picked from commit 5d8d565331111b80d72a20d19f2bcb14ea6301a4) --- modules/janssonrpc-c/janssonrpc_io.c | 8 +++++++- modules/janssonrpc-c/janssonrpc_mod.c | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/modules/janssonrpc-c/janssonrpc_io.c b/modules/janssonrpc-c/janssonrpc_io.c index 1e1a82b7ac0..ed0be6c4f42 100644 --- a/modules/janssonrpc-c/janssonrpc_io.c +++ b/modules/janssonrpc-c/janssonrpc_io.c @@ -39,6 +39,7 @@ #include "../../action.h" #include "../../route_struct.h" #include "../../lvalue.h" +#include "../../cfg/cfg_struct.h" #include "../../rand/fastrand.h" #include "../tm/tm_load.h" #include "../jansson/jansson_utils.h" @@ -57,11 +58,15 @@ void io_shutdown(int sig); int jsonrpc_io_child_process(int cmd_pipe) { + struct event* pipe_ev = NULL; + global_ev_base = event_base_new(); global_evdns_base = evdns_base_new(global_ev_base, 1); set_non_blocking(cmd_pipe); - struct event* pipe_ev = event_new(global_ev_base, cmd_pipe, EV_READ | EV_PERSIST, cmd_pipe_cb, NULL); + pipe_ev = event_new(global_ev_base, cmd_pipe, + EV_READ | EV_PERSIST, cmd_pipe_cb, NULL); + if(!pipe_ev) { ERR("Failed to create pipe event\n"); return -1; @@ -449,6 +454,7 @@ void cmd_pipe_cb(int fd, short event, void *arg) return; } + cfg_update(); switch(cmd->type) { case CMD_CLOSE: diff --git a/modules/janssonrpc-c/janssonrpc_mod.c b/modules/janssonrpc-c/janssonrpc_mod.c index 7db22ccc50f..c69b843353c 100644 --- a/modules/janssonrpc-c/janssonrpc_mod.c +++ b/modules/janssonrpc-c/janssonrpc_mod.c @@ -29,6 +29,7 @@ #include "../../trim.h" #include "../../sr_module.h" #include "../../timer_proc.h" +#include "../../cfg/cfg_struct.h" #include "../tm/tm_load.h" #include "../jansson/jansson_utils.h" @@ -194,6 +195,7 @@ static int child_init(int rank) return -1; /* error */ if(pid==0){ /* child */ + if (cfg_child_init()) return -1; close(pipe_fds[1]); return jsonrpc_io_child_process(pipe_fds[0]); }