[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