Good spot, a typo/copy&paste oversight ... going to push the patch.

Cheers,
Daniel

On 25/09/14 23:57, Alex Balashov wrote:
In this loop...

int dlg_clean_run(ticks_t ti)
{
        unsigned int i;
        unsigned int tm;
        dlg_cell_t *dlg;
        dlg_cell_t *tdlg;

        tm = (unsigned int)time(NULL);
        for(i=0; i<d_table->size; i++)
        {
lock_set_get(d_table->locks, d_table->entries[i].lock_idx);
                dlg = d_table->entries[i].first;
                while (dlg) {
                        tdlg = dlg;
                        dlg = dlg->next;
if(tdlg->state==DLG_STATE_UNCONFIRMED && tdlg->init_ts<tm-300) { /* dialog in early state older than 5min */ LM_NOTICE("dialog in early state is too old (%p ref %d)\n",
                                                tdlg, tdlg->ref);
unlink_unsafe_dlg(&d_table->entries[i], tdlg);
                                destroy_dlg(tdlg);
                        }
if(tdlg->state==DLG_STATE_CONFIRMED_NA && tdlg->start_ts<tm-60) {
if(update_dlg_timer(&dlg->tl, 10)<0) {
LM_ERR("failed to update dialog lifetime in long non-ack state\n");
                                }
                                dlg->lifetime = 10;
                                dlg->dflags |= DLG_FLAG_CHANGED;
                        }
                }

Should we, perhaps, in that last conditional block (if(tdlg->state==DLG_STATE_CONFIRMED_NA && tdlg->start_ts<tm-60)), be operating on 'tdlg' rather than 'dlg', much as in the previous if block? Is that a typo/oversight/mistake/legacy code?


--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda


_______________________________________________
sr-dev mailing list
[email protected]
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev

Reply via email to