[OpenSER-Devel] Possible bug in acc_logic.c:acc_onreq?
Phil D'Amore
ptdamore at gmail.com
Tue Feb 19 16:39:21 CET 2008
Hi Bogdan,
I sent the mail to the users list before I realized I was dealing with
a bug, so I then created this sort of duplicate thread. HEAD doesn't
seem to build all the modules for me right now, so I took your changes
and applied them to my 1.3 set up and it worked perfectly.
Thanks,
Phil
On Feb 18, 2008 8:21 AM, Bogdan-Andrei Iancu <bogdan at voice-system.ro> wrote:
> Hi Phil,
>
> it looks like you are right - it is quite interesting how this bug went
> undetected for such a long time....
> I made the fix on the trunk version - please test and if everything ok I
> will port the fix to 1.3.
>
> Thanks and regards,
> Bogdan
>
>
> Phil D'Amore wrote:
> > Hello:
> >
> > In the acc_onreq function in acc_logic.c there is this code:
> >
> > tmcb_types =
> > /* report on completed transactions */
> > TMCB_RESPONSE_OUT |
> > /* account e2e acks if configured to do so */
> > ((report_ack && is_acc_on(ps->req))?TMCB_E2EACK_IN:0) |
> > /* get incoming replies ready for processing */
> > TMCB_RESPONSE_IN |
> > /* report on missed calls */
> > ((is_invite(t) &&
> > is_mc_on(ps->req))?TMCB_ON_FAILURE:0) ;
> >
> > I think the is_invite(t) in there is invalid. is_invite relies on the
> > T_IS_INVITE_FLAG flag being set in t->flags. At the time
> > TMCB_REQUEST_IN callbacks are run, that flag will never be set,
> > because init_new_t which sets that flag has not yet been called. That
> > means that TMCB_ON_FAILURE will never be set and callbacks will never
> > happen for it. As a result, failures don't generate records unless
> > the failure is relayed.
> >
> > It seems that this should be done with (ps->req->REQ_METHOD==METHOD_INVITE).
> >
> > Can anyone tell me if my assessment is correct?
> >
> > _______________________________________________
> > Devel mailing list
> > Devel at lists.openser.org
> > http://lists.openser.org/cgi-bin/mailman/listinfo/devel
> >
> >
>
>
More information about the Devel
mailing list