[reSIProcate] MessageDecorator bug?
Byron Campen
bcampen at estacado.net
Wed Oct 29 15:47:40 CDT 2008
Ugh. Yeah, this is completely broken.
The reason this is biting us is that DialogUsageManager is adding the
outbound decorators to long-lifetime SharedPtr<SipMessage> that live
in the various subclasses of DialogUsage. We either need to have the
subclasses set up the outbound decorators themselves, or stop passing
their outgoing traffic with a SharedPtr (ie, have DialogUsage clone
the SipMessage, put it in an auto_ptr, and fling _that_ at
DialogUsageManager). My vote is for the latter, since using SharedPtr
in this case doesn't make much sense anyway. We should be passing
auto_ptr instead.
Best regards,
Byron Campen
> Hi,
> I'm testing DUM using Resiprocate release 1.4 (SVN head) and have
> noticed a strange behaviour about MessageDecorator invocation while
> sending a SIP message.
>
> To reproduce the issue I changed the sample application
> basicRregister.cxx file (in "dum/test/directory") with some
> modifications: I added my class SipMessageDecorator, invoked
> setOutboundDecorator(), added logs and removed unregistration so that
> the REGISTER message is always sent.
>
> I set my MessageDecorator class in the main with
> setOutboundDecorator() method, in this way:
> SharedPtr<SipMessageDecorator> messageDecorator(new
> SipMessageDecorator());
> clientDum.getMasterProfile()->setOutboundDecorator(messageDecorator);
>
> After sending the first REGISTER message, the method decorateMessage()
> in MessageDecorator class is called once, but the second time it is
> called consecutively twice with the same message, at third REGISTER
> three times (always same message) and so on.
>
> I noticed that in DialogUsageManager the send() method adds a
> MessageDecorator clone to mOutboundDecorators and the
> SipMessage::callOutboundDecorator() method calls decorateMessage()
> for each item in vector mOutboundDecorators, but this vector always
> grows.
>
> I attached to this mail the changed sample application that I tested
> using repro and the produced log file.
>
> Is there a bug or my mistake?
>
> Thank you in advance.
> Best regards
>
> Andrea Chiappori
> <
> basicRegister
> .cxx><test.log>_______________________________________________
> resiprocate-devel mailing list
> resiprocate-devel at resiprocate.org
> https://list.resiprocate.org/mailman/listinfo/resiprocate-devel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 2482 bytes
Desc: not available
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20081029/c2849d05/attachment.bin>
More information about the resiprocate-devel
mailing list