Skip to content

Commit

Permalink
usrloc: connect to db for main process in PROC_POSTCHILDINIT child init
Browse files Browse the repository at this point in the history
(cherry picked from commit 4780d46)
  • Loading branch information
miconda committed May 16, 2022
1 parent 150a66f commit f1c7d72
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/modules/usrloc/usrloc_mod.c
Expand Up @@ -358,6 +358,16 @@ static int mod_init(void)
}

/* Shall we use database ? */
switch (ul_db_mode) {
case DB_ONLY:
case WRITE_THROUGH:
case WRITE_BACK:
/*
* register the need to be called post-fork of all children
* with the special rank PROC_POSTCHILDINIT
*/
ksr_module_set_flag(KSRMOD_FLAG_POSTCHILDINIT);
}
if (ul_db_mode != NO_DB) { /* Yes */
if (db_bind_mod(&ul_db_url, &ul_dbf) < 0) { /* Find database module */
LM_ERR("failed to bind database module\n");
Expand Down Expand Up @@ -452,14 +462,14 @@ static int child_init(int _rank)
case WRITE_THROUGH:
/* connect to db only from SIP workers, TIMER and MAIN processes,
* and RPC processes */
if (_rank<=0 && _rank!=PROC_TIMER && _rank!=PROC_MAIN
if (_rank<=0 && _rank!=PROC_TIMER && _rank!=PROC_POSTCHILDINIT
&& _rank!=PROC_RPC)
return 0;
break;
case WRITE_BACK:
/* connect to db only from TIMER (for flush), from MAIN (for
* final flush() and from child 1 for preload */
if (_rank!=PROC_TIMER && _rank!=PROC_MAIN && _rank!=PROC_SIPINIT)
if (_rank!=PROC_TIMER && _rank!=PROC_POSTCHILDINIT && _rank!=PROC_SIPINIT)
return 0;
break;
case DB_READONLY:
Expand Down

0 comments on commit f1c7d72

Please sign in to comment.