summaryrefslogtreecommitdiff
path: root/formats/format_sln.c
diff options
context:
space:
mode:
Diffstat (limited to 'formats/format_sln.c')
-rw-r--r--formats/format_sln.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/formats/format_sln.c b/formats/format_sln.c
index 32972d09d..af3f691c8 100644
--- a/formats/format_sln.c
+++ b/formats/format_sln.c
@@ -235,6 +235,19 @@ static struct ast_format_def *slin_list[] = {
&slin192_f,
};
+static int unload_module(void)
+{
+ int res = 0;
+ int i = 0;
+
+ for (i = 0; i < ARRAY_LEN(slin_list); i++) {
+ if (ast_format_def_unregister(slin_list[i]->name)) {
+ res = -1;
+ }
+ }
+ return res;
+}
+
static int load_module(void)
{
int i;
@@ -251,26 +264,14 @@ static int load_module(void)
for (i = 0; i < ARRAY_LEN(slin_list); i++) {
if (ast_format_def_register(slin_list[i])) {
- return AST_MODULE_LOAD_FAILURE;
+ unload_module();
+ return AST_MODULE_LOAD_DECLINE;
}
}
return AST_MODULE_LOAD_SUCCESS;
}
-static int unload_module(void)
-{
- int res = 0;
- int i = 0;
-
- for (i = 0; i < ARRAY_LEN(slin_list); i++) {
- if (ast_format_def_unregister(slin_list[i]->name)) {
- res |= AST_MODULE_LOAD_FAILURE;
- }
- }
- return res;
-}
-
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_LOAD_ORDER, "Raw Signed Linear Audio support (SLN) 8khz-192khz",
.support_level = AST_MODULE_SUPPORT_CORE,
.load = load_module,