summaryrefslogtreecommitdiff
path: root/res/res_fax.c
diff options
context:
space:
mode:
authorCorey Farrell <git@cfware.com>2017-12-29 19:24:02 -0500
committerCorey Farrell <git@cfware.com>2018-01-03 17:23:36 -0500
commit55f1d69c43d2c6c87eec50fd3eed7a77ba2e912b (patch)
tree0749060ca9d29dc796152f1654a340f091f4f600 /res/res_fax.c
parent7f4facc5e4a96ccae10283da998044becc4fbe11 (diff)
loader: Create ast_module_running_ref.
This function returns NULL if the module in question is not running. I did not change ast_module_ref as most callers do not check the result and they always call ast_module_unref. Make use of this function when running registered items from: * app_stack API's * bridge technologies * CLI commands * File formats * Manager Actions * RTP engines * Sorcery Wizards * Timing Interfaces * Translators * AGI Commands * Fax Technologies ASTERISK-20346 #close Change-Id: Ia16fd28e188b2fc0b9d18b8a5d9cacc31df73fcc
Diffstat (limited to 'res/res_fax.c')
-rw-r--r--res/res_fax.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/res/res_fax.c b/res/res_fax.c
index 093845246..4be5aee75 100644
--- a/res/res_fax.c
+++ b/res/res_fax.c
@@ -1161,8 +1161,10 @@ static struct ast_fax_session *fax_session_reserve(struct ast_fax_session_detail
if ((faxmod->tech->caps & details->caps) != details->caps) {
continue;
}
+ if (!ast_module_running_ref(faxmod->tech->module)) {
+ continue;
+ }
ast_debug(4, "Reserving a FAX session from '%s'.\n", faxmod->tech->description);
- ast_module_ref(faxmod->tech->module);
s->tech = faxmod->tech;
break;
}
@@ -1279,8 +1281,10 @@ static struct ast_fax_session *fax_session_new(struct ast_fax_session_details *d
if ((faxmod->tech->caps & details->caps) != details->caps) {
continue;
}
+ if (!ast_module_running_ref(faxmod->tech->module)) {
+ continue;
+ }
ast_debug(4, "Requesting a new FAX session from '%s'.\n", faxmod->tech->description);
- ast_module_ref(faxmod->tech->module);
if (reserved) {
/* Balance module ref from reserved session */
ast_module_unref(reserved->tech->module);