-
Notifications
You must be signed in to change notification settings - Fork 808
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fixed account's route set update when modifying account #3825
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This change seems to drop the existing memory optimization, e.g: currently (shallow) cloning global proxy will only occur if global proxy is changed & (deep) cloning account proxy only occur if account proxy is changed, now both clonings will always occur when whichever proxy setting is changed or reg URI is changed. If some app for some reason modifies registrar URI regularly, this may cause unnecessary/avoidable "memory leak" (as account pool is never reset?).
If the memory optimization can be maintained, it will be ideal, but the new behavior may also be acceptable considering the memory leak scenario seems to be a rare scenario.
Changes in the latest commit:
|
* Add option to shutdown all transports on IP change (pjsip#3781) * pjsua_handle_ip_change: Added missing null check for on_ip_changed_progress callback (pjsip#3830) * Reset stored remote name in dialog (dlg->initial_dest) if transport is server. (pjsip#3783) * Prevent immediate tsx termination upon transport error (pjsip#3805) * Fixed issues when adding new media and deinitializing media (pjsip#3821) * Potential issues when IPv6 is disabled (pjsip#3835) * Improve IP address change IPv4 <-> IPv6 (pjsip#3910) * Add some missing unlocks (pjsip#3893) * add missing unlock (pjsip#3885) * Retransmit 2xx response when transport is closed (pjsip#3828) * Fixed account's route set update when modifying account (pjsip#3825) --------- Co-authored-by: Nanang Izzuddin <[email protected]> Co-authored-by: sauwming <[email protected]> Co-authored-by: Santiago De la Cruz <[email protected]> Co-authored-by: Andreas Wehrmann <[email protected]> Co-authored-by: Riza Sulistyo <[email protected]>
There's an issue with account modification via
pjsua_acc_modify()
when updating account's route_set.Account's route set is a list that consists of: global proxies + account proxies + service route learnt from
update_service_route()
.But when modifying account, the learnt service route is never taken into account, causing incorrect list size calculation, and hence incorrect element removal.
The fixes in this PR:
The current implementation seems to be buggy and not working as intended for the following reasons:
Thank you to @andreas-wehrmann for the report and fix recommendation.