< Previous by Date | Date Index | Next by Date > |
< Previous in Thread | Thread Index | Next in Thread > |
We implemented a resource list server with resiprocate and in ServerSubscriptionHandler::onNewSubscription we reject a subscribtion that have expires set to 0 to an unexistent resource with 404.Hi guys,The scenario is the following:
So in ServerSubscriptionHandler::onNewSubscription we call:
subscriptionHandle->send(subscriptionHandle->reject(404));The problem is that ServerSubscription::send calls:
if (shouldDestroyAfterSendingFailure(*msg))
129│ {
130├> DialogUsage::send(msg);
131│ handler->onTerminated(getHandle());
132│ delete this;
133│ return;
134│ }which deletes the subscriptionHandle. Then ServerSubscription::dispatch calls:
makeNotifyExpires();
handler->onExpiredByClient(getHandle(), msg, *mLastRequest);
mDialog.makeResponse(*mLastResponse, mLastSubscribe, 200);
mLastResponse->header(h_Expires).value() = mExpires;
send(mLastResponse);
send(mLastRequest); // Send Notify ExpiresCurrently, resiprocate crashes in makeNotifyExpires, which tries to use members from the class which were already deleted.
Is there a way to reject a subscribe that have expires set to 0 with 404? Currently the resiprocate code also tries to send the notify when expires is set to 0.
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxx
https://list.resiprocate.org/mailman/listinfo/resiprocate-devel