security_events: Fix error caused by DTD validation error
[asterisk/asterisk.git] / funcs / func_audiohookinherit.c
index 74f89b9..f3a5b61 100644 (file)
  * \ingroup functions
  */
 
+/*** MODULEINFO
+       <support_level>core</support_level>
+ ***/
+
 #include "asterisk.h"
 #include "asterisk/datastore.h"
 #include "asterisk/channel.h"
@@ -49,7 +53,9 @@
                                        <enum name="Chanspy" />
                                        <enum name="Volume" />
                                        <enum name="Speex" />
+                                       <enum name="pitch_shift" />
                                        <enum name="JACK_HOOK" />
+                                       <enum name="Mute" />
                                </enumlist>
                                <para>Note that the names are not case-sensitive</para>
                        </parameter>
@@ -119,14 +125,13 @@ static void audiohook_inheritance_fixup(void *data, struct ast_channel *old_chan
        struct inheritable_audiohook *audiohook = NULL;
        struct audiohook_inheritance_datastore *datastore = data;
 
-       ast_debug(2, "inheritance fixup occurring for channels %s(%p) and %s(%p)", old_chan->name, old_chan, new_chan->name, new_chan);
+       ast_debug(2, "inheritance fixup occurring for channels %s(%p) and %s(%p)", ast_channel_name(old_chan), old_chan, ast_channel_name(new_chan), new_chan);
 
        AST_LIST_TRAVERSE(&datastore->allowed_list, audiohook, list) {
                ast_audiohook_move_by_source(old_chan, new_chan, audiohook->source);
                ast_debug(3, "Moved audiohook %s from %s(%p) to %s(%p)\n",
-                       audiohook->source, old_chan->name, old_chan, new_chan->name, new_chan);
+                       audiohook->source, ast_channel_name(old_chan), old_chan, ast_channel_name(new_chan), new_chan);
        }
-       ast_free(datastore);
        return;
 }
 
@@ -143,6 +148,8 @@ static void audiohook_inheritance_destroy(void *data)
        while ((inheritable_audiohook = AST_LIST_REMOVE_HEAD(&audiohook_inheritance_datastore->allowed_list, list))) {
                ast_free(inheritable_audiohook);
        }
+
+       ast_free(audiohook_inheritance_datastore);
 }
 
 /*! \brief create an audiohook_inheritance_datastore and attach it to a channel
@@ -229,10 +236,10 @@ static int func_inheritance_write(struct ast_channel *chan, const char *function
                ast_channel_unlock(chan);
                /* In the case where we cannot find the datastore, we can take a few shortcuts */
                if (!allow) {
-                       ast_debug(1, "Audiohook %s is already set to not be inheritable on channel %s\n", data, chan->name);
+                       ast_debug(1, "Audiohook %s is already set to not be inheritable on channel %s\n", data, ast_channel_name(chan));
                        return 0;
                } else if (!(inheritance_datastore = setup_inheritance_datastore(chan))) {
-                       ast_log(LOG_WARNING, "Unable to set up audiohook inheritance datastore on channel %s\n", chan->name);
+                       ast_log(LOG_WARNING, "Unable to set up audiohook inheritance datastore on channel %s\n", ast_channel_name(chan));
                        return -1;
                } else {
                        return setup_inheritable_audiohook(inheritance_datastore, data);
@@ -247,10 +254,10 @@ static int func_inheritance_write(struct ast_channel *chan, const char *function
        AST_LIST_TRAVERSE_SAFE_BEGIN(&inheritance_datastore->allowed_list, inheritable_audiohook, list) {
                if (!strcasecmp(inheritable_audiohook->source, data)) {
                        if (allow) {
-                               ast_debug(2, "Audiohook source %s is already set up to be inherited from channel %s\n", data, chan->name);
+                               ast_debug(2, "Audiohook source %s is already set up to be inherited from channel %s\n", data, ast_channel_name(chan));
                                return 0;
                        } else {
-                               ast_debug(2, "Removing inheritability of audiohook %s from channel %s\n", data, chan->name);
+                               ast_debug(2, "Removing inheritability of audiohook %s from channel %s\n", data, ast_channel_name(chan));
                                AST_LIST_REMOVE_CURRENT(list);
                                ast_free(inheritable_audiohook);
                                return 0;
@@ -268,7 +275,7 @@ static int func_inheritance_write(struct ast_channel *chan, const char *function
        if (allow) {
                return setup_inheritable_audiohook(inheritance_datastore, data);
        } else {
-               ast_debug(1, "Audiohook %s is already set to not be inheritable on channel %s\n", data, chan->name);
+               ast_debug(1, "Audiohook %s is already set to not be inheritable on channel %s\n", data, ast_channel_name(chan));
                return 0;
        }
 }