From: Daniel-Constantin Mierla <miconda@gmail.com>
To: Development mailing list of the sip-router project <sr-dev@lists.sip-router.org>
Cc: Marius Ovidiu Bucur <marius@marius-bucur.ro>
Sent: Saturday, June 4, 2011 12:53 AM
Subject: Re: [sr-dev] git:mariusbucur/dmq: modified the htable so that a per-table basis dmq parameter can be added
Hi Marius,
seems you work on an old version of htable module -- probably you
haven't sync'ed your branch with the master for a while.
For example the function ht_pkg_init() no longer exists. You should sync
your branch to master, otherwise you are going to work twice for some parts.
Cheers,
Daniel
On 6/3/11 11:48 PM, Marius Ovidiu Bucur wrote:
> Module: sip-router
> Branch: mariusbucur/dmq
> Commit: 7ff94993efc1d34bbd78498a27b9de84bc8f41b8
> URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=7ff94993efc1d34bbd78498a27b9de84bc8f41b8
>
> Author: Marius Bucur<
marius@marius-bucur.ro>
> Committer: Marius Bucur<
marius@marius-bucur.ro>
> Date: Sat Jun
4 00:47:44 2011 +0300
>
> modified the htable so that a per-table basis dmq parameter can be added
>
> ---
>
> modules_k/htable/ht_api.c | 15 ++++++++++++---
> modules_k/htable/ht_api.h | 3 ++-
> modules_k/htable/ht_var.c | 2 +-
> modules_k/htable/htable.c | 18 +++++++-----------
> 4 files changed, 22 insertions(+), 16 deletions(-)
>
> diff --git a/modules_k/htable/ht_api.c b/modules_k/htable/ht_api.c
> index fe9a66e..b221ea5 100644
> --- a/modules_k/htable/ht_api.c
> +++ b/modules_k/htable/ht_api.c
> @@ -117,7 +117,7 @@ ht_t* ht_get_table(str *name)
> return NULL;
> }
>
> -int ht_pkg_init(str *name, int autoexp, str *dbtable, int size, int dbmode)
> +int ht_pkg_init(str *name, int autoexp, str *dbtable, int size, int
dbmode, int usedmq)
> {
> unsigned int htid;
> ht_t *ht;
> @@ -156,7 +156,7 @@ int ht_pkg_init(str *name, int autoexp, str *dbtable, int size, int dbmode)
> if(dbtable!=NULL&& dbtable->len>0)
> ht->dbtable = *dbtable;
> ht->dbmode = dbmode;
> -
> + ht->usedmq = usedmq;
> ht->next = _ht_pkg_root;
> _ht_pkg_root = ht;
> return 0;
> @@ -515,6 +515,7 @@ int ht_table_spec(char *spec)
> str name;
> str dbtable = {0, 0};
> unsigned int autoexpire = 0;
> + unsigned int usedmq =
0;
> unsigned int size = 4;
> int type = 0;
> unsigned int dbmode = 0;
> @@ -574,6 +575,8 @@ next_token:
> type = 3;
> else if(tok.len==6&& strncmp(tok.s, "dbmode", 6)==0)
> type = 4;
> + else if(tok.len==3&& strncmp(tok.s, "dmq", 3)==0)
> + type = 5;
> else goto error;
>
> if(*p!='=')
> @@ -623,6 +626,12 @@ next_token:
> LM_DBG("htable [%.*s] - dbmode [%u]\n", name.len, name.s,
>
dbmode);
> break;
> + case 5:
> + if(str2int(&tok,&usedmq)!=0)
> + goto error;
> + LM_DBG("htable [%.*s] - usedmq [%u]\n", name.len, name.s,
> + usedmq);
> + break;
> }
> while(p<in.s+in.len&& (*p==';' || *p==' ' || *p=='\t'
> || *p=='\n' || *p=='\r'))
> @@ -630,7 +639,7 @@
next_token:
> if(p<in.s+in.len)
> goto next_token;
>
> - return ht_pkg_init(&name, autoexpire,&dbtable, size, dbmode);
> + return ht_pkg_init(&name, autoexpire,&dbtable, size, dbmode, usedmq);
>
> error:
> LM_ERR("invalid htable parameter [%.*s] at [%d]\n", in.len, in.s,
> diff --git a/modules_k/htable/ht_api.h b/modules_k/htable/ht_api.h
> index 71c8e21..8dc7553 100644
> --- a/modules_k/htable/ht_api.h
> +++ b/modules_k/htable/ht_api.h
> @@ -55,6 +55,7 @@ typedef struct _ht
> unsigned int htexpire;
> str dbtable;
> int dbmode;
> + int usedmq;
> unsigned int
htsize;
> ht_entry_t *entries;
> struct _ht *next;
> @@ -66,7 +67,7 @@ typedef struct _ht_pv {
> pv_elem_t *pve;
> } ht_pv_t, *ht_pv_p;
>
> -int ht_pkg_init(str *name, int autoexp, str *dbtable, int size, int dbmode);
> +int ht_pkg_init(str *name, int autoexp, str *dbtable, int size, int dbmode, int usedmq);
> int ht_shm_init(void);
> int ht_destroy(void);
> int ht_set_cell(ht_t *ht, str *name, int type, int_str *val, int mode);
> diff --git a/modules_k/htable/ht_var.c b/modules_k/htable/ht_var.c
> index 921cca3..26e0747 100644
> --- a/modules_k/htable/ht_var.c
> +++ b/modules_k/htable/ht_var.c
> @@ -109,7 +109,7 @@ int pv_set_ht_cell(struct sip_msg* msg, pv_param_t *param,
> LM_ERR("cannot get $ht
name\n");
> return -1;
> }
> - if(ht_use_dmq) {
> + if(hpv->ht->usedmq) {
> serialized_ht.s = pkg_malloc(MAX_HT_SERIALIZE_BUF);
> serialized_ht.len = MAX_HT_SERIALIZE_BUF;
> if(serialize_ht_pair(&htname, val,&hpv->htname,&serialized_ht)< 0) {
> diff --git a/modules_k/htable/htable.c b/modules_k/htable/htable.c
> index 58a690c..62ca74d 100644
> --- a/modules_k/htable/htable.c
> +++ b/modules_k/htable/htable.c
> @@ -101,7 +101,7 @@ error:
> return -1;
> }
>
> -static void add_dmq_peer() {
> +static void ht_add_dmq_peer() {
>
dmq_peer_t htable_peer;
> memset(&ht_dmq_resp_cback, 0, sizeof(ht_dmq_resp_cback));
> htable_peer.peer_id.s = "htable";
> @@ -113,7 +113,6 @@ static void add_dmq_peer() {
> }
>
> int ht_timer_interval = 20;
> -int ht_use_dmq = 0;
>
> static int htable_init_rpc(void);
>
> @@ -174,7 +173,6 @@ static param_export_t params[]={
> {"array_size_suffix", STR_PARAM,&ht_array_size_suffix.s},
> {"fetch_rows", INT_PARAM,&ht_fetch_rows},
> {"timer_interval", INT_PARAM,&ht_timer_interval},
> - {"use_dmq", INT_PARAM,&ht_use_dmq},
> {0,0,0}
> };
>
> @@ -240,14 +238,12 @@ static
int mod_init(void)
> }
> }
>
> - if(ht_use_dmq){
> - if(dmq_load_api(&ht_dmq_bind)< 0) {
> - LM_ERR("cannot load dmq api\n");
> - return -1;
> - } else {
> - add_dmq_peer();
> - LM_DBG("presence-dmq loaded\n");
> - }
> + if(dmq_load_api(&ht_dmq_bind)< 0) {
> + LM_ERR("cannot load dmq api\n");
> + return
-1;
> + } else {
> + ht_add_dmq_peer();
> + LM_DBG("presence-dmq loaded\n");
> }
> return 0;
> }
>
>
> _______________________________________________
> sr-dev mailing list
>
sr-dev@lists.sip-router.org> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
--
Daniel-Constantin Mierla -- http://www.asipto.com
http://linkedin.com/in/miconda -- http://twitter.com/miconda
_______________________________________________
sr-dev mailing list
sr-dev@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev