From f7cc6bada6610c565f4b327c365ef43877259eca Mon Sep 17 00:00:00 2001 From: Richard Mudgett <rmudgett@digium.com> Date: Thu, 4 Oct 2018 11:49:09 -0500 Subject: [PATCH] codec_speex.c: Cleanup module loading to DECLINE and not FAILURE. If codec_speex fails to register a translator it would cause Asterisk to exit instead of continue as a DECLINED module. * Make unload_module() always return 0. It is silly to fail unloading if any translators we try to unregister were not even registered. Change-Id: Ia262591f68333dad17673ba7104d11c88096f51a --- codecs/codec_speex.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/codecs/codec_speex.c b/codecs/codec_speex.c index 3c65ee51b1..a0a80959e7 100644 --- a/codecs/codec_speex.c +++ b/codecs/codec_speex.c @@ -603,39 +603,37 @@ static int reload(void) static int unload_module(void) { - int res = 0; - - res |= ast_unregister_translator(&speextolin); - res |= ast_unregister_translator(&lintospeex); - res |= ast_unregister_translator(&speexwbtolin16); - res |= ast_unregister_translator(&lin16tospeexwb); - res |= ast_unregister_translator(&speexuwbtolin32); - res |= ast_unregister_translator(&lin32tospeexuwb); + ast_unregister_translator(&speextolin); + ast_unregister_translator(&lintospeex); + ast_unregister_translator(&speexwbtolin16); + ast_unregister_translator(&lin16tospeexwb); + ast_unregister_translator(&speexuwbtolin32); + ast_unregister_translator(&lin32tospeexuwb); - - return res; + return 0; } static int load_module(void) { int res = 0; - if (parse_config(0)) + if (parse_config(0)) { return AST_MODULE_LOAD_DECLINE; + } + /* XXX It is most likely a bug in this module if we fail to register a translator */ res |= ast_register_translator(&speextolin); res |= ast_register_translator(&lintospeex); res |= ast_register_translator(&speexwbtolin16); res |= ast_register_translator(&lin16tospeexwb); res |= ast_register_translator(&speexuwbtolin32); res |= ast_register_translator(&lin32tospeexuwb); - if (res) { unload_module(); - return res; + return AST_MODULE_LOAD_DECLINE; } - return res; + return AST_MODULE_LOAD_SUCCESS; } AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "Speex Coder/Decoder", -- GitLab