aboutsummaryrefslogtreecommitdiffstats
path: root/codecs/codec_lpc10.c
diff options
context:
space:
mode:
Diffstat (limited to 'codecs/codec_lpc10.c')
-rw-r--r--codecs/codec_lpc10.c23
1 files changed, 14 insertions, 9 deletions
diff --git a/codecs/codec_lpc10.c b/codecs/codec_lpc10.c
index 3ed528bef..ca4964336 100644
--- a/codecs/codec_lpc10.c
+++ b/codecs/codec_lpc10.c
@@ -261,13 +261,15 @@ static struct ast_translator lintolpc10 = {
.buf_size = LPC10_BYTES_IN_COMPRESSED_FRAME * (1 + BUFFER_SAMPLES / LPC10_SAMPLES_PER_FRAME),
};
-static void parse_config(int reload)
+static int parse_config(int reload)
{
struct ast_variable *var;
struct ast_flags config_flags = { reload ? CONFIG_FLAG_FILEUNCHANGED : 0 };
struct ast_config *cfg = ast_config_load("codecs.conf", config_flags);
- if (cfg == NULL || cfg == CONFIG_STATUS_FILEUNCHANGED)
- return;
+ if (cfg == NULL)
+ return -1;
+ if (cfg == CONFIG_STATUS_FILEUNCHANGED)
+ return 0;
for (var = ast_variable_browse(cfg, "plc"); var; var = var->next) {
if (!strcasecmp(var->name, "genericplc")) {
lpc10tolin.useplc = ast_true(var->value) ? 1 : 0;
@@ -276,13 +278,14 @@ static void parse_config(int reload)
}
}
ast_config_destroy(cfg);
+ return 0;
}
static int reload(void)
{
- parse_config(1);
-
- return 0;
+ if (parse_config(1))
+ return AST_MODULE_LOAD_DECLINE;
+ return AST_MODULE_LOAD_SUCCESS;
}
@@ -300,14 +303,16 @@ static int load_module(void)
{
int res;
- parse_config(0);
+ if (parse_config(0))
+ return AST_MODULE_LOAD_DECLINE;
res = ast_register_translator(&lpc10tolin);
if (!res)
res = ast_register_translator(&lintolpc10);
else
ast_unregister_translator(&lpc10tolin);
-
- return res;
+ if (res)
+ return AST_MODULE_LOAD_FAILURE;
+ return AST_MODULE_LOAD_SUCCESS;
}
AST_MODULE_INFO(ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT, "LPC10 2.4kbps Coder/Decoder",