]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
[mod_sofia] Destroy nua handles to avoid memory pool swell when system is unavailable...
authorAndrey Volk <andywolk@gmail.com>
Fri, 8 Oct 2021 17:24:43 +0000 (20:24 +0300)
committerAndrey Volk <andywolk@gmail.com>
Sat, 23 Oct 2021 19:01:07 +0000 (22:01 +0300)
src/mod/endpoints/mod_sofia/sofia.c

index 36f3087db126ac3f7f3df7aed5546c935070f645..5066a13ef879627a6823f41e96f79f24ebc5226d 100644 (file)
@@ -2462,17 +2462,20 @@ void sofia_event_callback(nua_event_t event,
                if (!sofia_private) {
                        if (sess_count >= sess_max || !sofia_test_pflag(profile, PFLAG_RUNNING) || !switch_core_ready_inbound()) {
                                nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END());
+                               nua_handle_destroy(nh);
                                goto end;
                        }
 
 
                        if (switch_queue_size(mod_sofia_globals.msg_queue) > (unsigned int)critical) {
                                nua_respond(nh, 503, "System Busy", SIPTAG_RETRY_AFTER_STR("300"), NUTAG_WITH_THIS(nua), TAG_END());
+                               nua_handle_destroy(nh);
                                goto end;
                        }
 
                        if (sofia_test_pflag(profile, PFLAG_STANDBY)) {
                                nua_respond(nh, 503, "System Paused", NUTAG_WITH_THIS(nua), TAG_END());
+                               nua_handle_destroy(nh);
                                goto end;
                        }
                }