RE: [reSIProcate] bug in Dialog.cxx?
I suspect this is the correct behavior.
An Out-of-Dialog (OOD) Refer with no subscription (ReferSub) is picked
off by DialogSet.cxx - so only OOD refers requiring subscriptions are
passed on to Dialog.cxx. Such OOD refer requests do require a subscribe
dialog for Notify processing.
Scott
> -----Original Message-----
> From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx
> [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
> Byron Campen
> Sent: Tuesday, July 25, 2006 3:24 PM
> To: resiprocate-devel
> Subject: [reSIProcate] bug in Dialog.cxx?
>
> I noticed something that looks incorrect in Dialog.cxx around
> line 600.
>
> *snip*
> case REFER:
> if(mInviteSession)
> {
> mInviteSession->mSentRefer = false;
>
> if (code >= 300)
> {
> mDum.mInviteSessionHandler->onReferRejected
> (mInviteSession->getSessionHandle(), msg);
> }
> else
> {
> //!dys! the OR condition below is not draft
> compliant.
> if (!mInviteSession->mReferSub &&
> ((msg.exists(h_ReferSub) && msg.header
> (h_ReferSub).value()=="false") ||
> !msg.exists(h_ReferSub)))
> {
> DebugLog(<< "refer accepted with norefersub");
> mDum.mInviteSessionHandler->onReferAccepted
> (mInviteSession->getSessionHandle(),
> ClientSubscriptionHandle::NotValid(), msg);
> }
> // else no need for action - first Notify will
cause
> onReferAccepted to be called
> }
> break;
> }
> // fall through, out of dialog refer was sent.
> case SUBSCRIBE:
>
> *snip*
>
> Something tells me that we don't really want to fall into case
> SUBSCRIBE here if mInviteSession is NULL.
>
> Best regards,
> Byron Campen