Module: sip-router
Branch: master
Commit: 517df28fc695b047d1f7f3cd4376a5f9240b7906
URL:    
http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=517df28fc695b047d1f7f3cd4376a5f9240b7906

Author: Daniel-Constantin Mierla <[email protected]>
Committer: Daniel-Constantin Mierla <[email protected]>
Date:   Sun Jan  2 19:39:11 2011 +0100

mtree: skip db init for special ranks

---

 modules/mtree/mtree_mod.c |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/modules/mtree/mtree_mod.c b/modules/mtree/mtree_mod.c
index aeb98ad..29ea12a 100644
--- a/modules/mtree/mtree_mod.c
+++ b/modules/mtree/mtree_mod.c
@@ -104,8 +104,8 @@ static int w_mt_match(struct sip_msg* msg, char* str1, 
char* str2,
 
 static int  mod_init(void);
 static void mod_destroy(void);
-static int  child_init(void);
-static int  mod_child_init(int r);
+static int  child_init(int rank);
+static int  mi_child_init(void);
 
 static int mt_match(struct sip_msg *msg, gparam_t *dm, gparam_t *var,
                gparam_t *mode);
@@ -142,7 +142,7 @@ static param_export_t params[]={
 };
 
 static mi_export_t mi_cmds[] = {
-       { "mt_reload",  mt_mi_reload,  0,  0,  child_init },
+       { "mt_reload",  mt_mi_reload,  0,  0,  mi_child_init },
        { "mt_list",    mt_mi_list,    0,  0,  0 },
        { "mt_summary", mt_mi_summary, 0,  0,  0 },
        { 0, 0, 0, 0, 0}
@@ -161,7 +161,7 @@ struct module_exports exports = {
        mod_init,       /* module initialization function */
        0,              /* response function */
        mod_destroy,    /* destroy function */
-       mod_child_init  /* per child init function */
+       child_init      /* per child init function */
 };
 
 
@@ -322,8 +322,10 @@ error1:
        return -1;
 }
 
-
-static int child_init(void)
+/**
+ * mi and worker process initialization
+ */
+static int mi_child_init(void)
 {
        if(db_con!=NULL)
                return 0;
@@ -339,12 +341,16 @@ static int child_init(void)
 
 
 /* each child get a new connection to the database */
-static int mod_child_init(int r)
+static int child_init(int rank)
 {
-       if ( child_init()!=0 )
+       /* skip child init for non-worker process ranks */
+       if (rank==PROC_INIT || rank==PROC_MAIN || rank==PROC_TCP_MAIN)
+               return 0;
+
+       if ( mi_child_init()!=0 )
                return -1;
 
-       LM_DBG("#%d: database connection opened successfully\n",r);
+       LM_DBG("#%d: database connection opened successfully\n", rank);
 
        return 0;
 }


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to