[sr-dev] git:master: modules/mtree: when loading data from db, load each tree separately

Daniel-Constantin Mierla miconda at gmail.com
Wed Oct 30 18:44:46 CET 2013


Hello,

this doesn't look correct.

mtree module works with two types of database tables:
- one having only (tprefix, tvalue)
- one having also tree name (tname, tprefix, tvalue)

Your change seems to affect the first case, which is supposed not to 
have tname column, thus not working.

If you keep all the trees in the same database table, you should set db 
table parameter for the module:
- http://kamailio.org/docs/modules/stable/modules/mtree.html#idp2546944

Check also the utils/kamctl/mysql/mtree-create.sql to see the structure 
of those database tables.

Cheers,
Daniel

On 10/30/13 6:37 PM, Juha Heinanen wrote:
> Module: sip-router
> Branch: master
> Commit: 6fc84c2cf610791939ba73e38b8b5b3c0b5cd047
> URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=6fc84c2cf610791939ba73e38b8b5b3c0b5cd047
>
> Author: Juha Heinanen <jh at tutpro.com>
> Committer: Juha Heinanen <jh at tutpro.com>
> Date:   Wed Oct 30 17:31:04 2013 +0200
>
> modules/mtree: when loading data from db, load each tree separately
>
> ---
>
>   modules/mtree/mtree_mod.c |   13 ++++++++++++-
>   1 files changed, 12 insertions(+), 1 deletions(-)
>
> diff --git a/modules/mtree/mtree_mod.c b/modules/mtree/mtree_mod.c
> index 0f4348c..eeec89c 100644
> --- a/modules/mtree/mtree_mod.c
> +++ b/modules/mtree/mtree_mod.c
> @@ -291,6 +291,9 @@ static int mod_init(void)
>   
>   		while(pt!=NULL)
>   		{
> +		        LM_DBG("loading from tree <%.*s>\n",
> +			        pt->tname.len, pt->tname.s);
> +
>   			/* loading all information from database */
>   			if(mt_load_db(&pt->tname)!=0)
>   			{
> @@ -491,6 +494,9 @@ error:
>   static int mt_load_db(str *tname)
>   {
>   	db_key_t db_cols[3] = {&tprefix_column, &tvalue_column};
> +	db_key_t key_cols[1];
> +	db_op_t op[1] = {OP_EQ};
> +	db_val_t vals[1];
>   	str tprefix, tvalue;
>   	db1_res_t* db_res = NULL;
>   	int i, ret;
> @@ -498,6 +504,11 @@ static int mt_load_db(str *tname)
>   	m_tree_t *old_tree = NULL;
>   	mt_node_t *bk_head = NULL;
>   
> +	key_cols[0] = &tname_column;
> +	VAL_TYPE(vals) = DB1_STRING;
> +	VAL_NULL(vals) = 0;
> +	VAL_STRING(vals) = tname->s;
> +
>   	if(db_con==NULL)
>   	{
>   		LM_ERR("no db connection\n");
> @@ -521,7 +532,7 @@ static int mt_load_db(str *tname)
>   	}
>   
>   	if (DB_CAPABILITY(mt_dbf, DB_CAP_FETCH)) {
> -		if(mt_dbf.query(db_con, 0, 0, 0, db_cols, 0, 2, 0, 0) < 0)
> +		if(mt_dbf.query(db_con, key_cols, op, vals, db_cols, 1, 2, 0, 0) < 0)
>   		{
>   			LM_ERR("Error while querying db\n");
>   			return -1;
>
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Trainings - Berlin, Nov 25-28
   - more details about Kamailio trainings at http://www.asipto.com -




More information about the sr-dev mailing list