Module: sip-router Branch: master Commit: 90c2431e4c98bce05e59d8ee8421c0db3d16fefb URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=90c2431e...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: Thu Apr 16 18:16:04 2009 +0200
mi_fifo: start FIFO listener process using SR interface
- register one extra process to SR core - start the extra process from child PROC_MAIN
---
modules_k/mi_fifo/mi_fifo.c | 16 ++++++++++++++++ 1 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/modules_k/mi_fifo/mi_fifo.c b/modules_k/mi_fifo/mi_fifo.c index a697626..b1425ce 100644 --- a/modules_k/mi_fifo/mi_fifo.c +++ b/modules_k/mi_fifo/mi_fifo.c @@ -43,6 +43,7 @@ #include "../../sr_module.h" #include "../../dprint.h" #include "../../ut.h" +#include "../../pt.h" #include "../../mem/mem.h" #include "../../mem/shm_mem.h" #include "../../lib/kmi/mi.h" @@ -170,6 +171,9 @@ static int mi_mod_init(void) } }
+ /* add space for one extra process */ + register_procs(1); + return 0; }
@@ -177,6 +181,8 @@ static int mi_mod_init(void) /*! \brief Initialize module for child processes */ static int mi_child_init(int rank) { + int pid; + if (rank==PROC_TIMER || rank>0 ) { if ( mi_writer_init(read_buf_size, mi_reply_indent)!=0 ) { LM_CRIT("failed to init the reply writer\n"); @@ -184,6 +190,16 @@ static int mi_child_init(int rank) } }
+ if (rank==PROC_MAIN) { + pid=fork_process(100, "MI FIFO", 1); + if (pid<0) + return -1; /* error */ + if(pid==0){ + /* child */ + fifo_process(1); + } + } + return 0; }