summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Jordan <mjordan@digium.com>2015-05-04 09:25:42 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2015-05-04 09:25:42 -0500
commit465bb42cc0e136a84b1c82eda8e5a9c2d0c4910a (patch)
tree8f88393651cf66c118e2fb642b58ee0a1b859936
parent07bcaf5288b2fb0a17eb52c9734a0dfc6df64515 (diff)
parent981084f08cd2b696f9f0009e71020302c078b828 (diff)
Merge "Format Interfaces: Prevent unload except by shutdown."
-rw-r--r--main/format.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/main/format.c b/main/format.c
index 8fed71f73..bbfb69721 100644
--- a/main/format.c
+++ b/main/format.c
@@ -36,6 +36,7 @@ ASTERISK_REGISTER_FILE()
#include "asterisk/format.h"
#include "asterisk/astobj2.h"
#include "asterisk/strings.h"
+#include "asterisk/module.h"
/*! \brief Number of buckets to use for format interfaces (should be prime for performance reasons) */
#define FORMAT_INTERFACE_BUCKETS 53
@@ -156,6 +157,8 @@ int __ast_format_interface_register(const char *codec, const struct ast_format_i
format_interface->interface = interface;
strcpy(format_interface->codec, codec); /* Safe */
+ /* Once registered a format interface cannot be unregistered. */
+ ast_module_shutdown_ref(mod);
ao2_link_flags(interfaces, format_interface, OBJ_NOLOCK);
ao2_ref(format_interface, -1);