diff --git a/src/modules/dlgs/dlgs_mod.c b/src/modules/dlgs/dlgs_mod.c index e26e0d98994..c7f60fcab8e 100644 --- a/src/modules/dlgs/dlgs_mod.c +++ b/src/modules/dlgs/dlgs_mod.c @@ -250,13 +250,16 @@ static int w_dlgs_update(sip_msg_t *msg, char *p1, char *p2) */ static int ki_dlgs_count(sip_msg_t *msg, str *vfield, str *vop, str *vdata) { + int ret; + LM_DBG("counting by: [%.*s] [%.*s] [%.*s]\n", vfield->len, vfield->s, vop->len, vop->s, vdata->len, vdata->s); - if(dlgs_count(msg, vfield, vop, vdata) < 0) { - return -1; + ret = dlgs_count(msg, vfield, vop, vdata); + if(ret <= 0) { + return (ret-1); } - return 1; + return ret; } /** diff --git a/src/modules/dlgs/dlgs_records.c b/src/modules/dlgs/dlgs_records.c index 6b4a6b70e89..1f6af22ba36 100644 --- a/src/modules/dlgs/dlgs_records.c +++ b/src/modules/dlgs/dlgs_records.c @@ -340,6 +340,7 @@ int dlgs_add_item(sip_msg_t *msg, str *src, str *dst, str *data) prev->next = nitem; } dsht->slots[idx].esize++; + dlgs_update_stats(&dsht->slots[idx].astats, nitem->state, 1); lock_release(&dsht->slots[idx].lock); return 0; }