Dear reSIProcate team,
I find a bug in the implementation of the "ClientPublication" class when handling response to a 412 message received from server.
You previously remove the "SIP-if-match" tag and republish the document.
This SHALL NOT be done if the 412 response is received when trying to end the publication (Expires header set to 0)
In that case nothing more have to be done !
In fact publishing again with expires set to 0 and without a Sip-if-match will raise a 412 again and again !!!
void ClientPublication::dispatch(const SipMessage& msg) {
...
if (code == 412)
{
// Receive a 412 while ending a publication, nothing more to do in this case.
if(mPublish->header(h_Expires).value() != 0 )
{
InfoLog(<< "SIPIfMatch failed -- republish");
mPublish->remove(h_SIPIfMatch);
update(mDocument);
return;
}
else {
delete this;
return;
}
}
else if (code == 423) // interval too short
...
}
Hope this will be corrected in next candidate release
Best Regards
Fabrice ROUILLIER
_______________________________________________
resiprocate-devel mailing list