Add Masquerade manager event which trips when a masquerade happens (issue #7840 repor...
[asterisk/asterisk.git] / funcs / func_cut.c
index a4bce49..a8b8c81 100644 (file)
  * \ingroup functions
  */
 
  * \ingroup functions
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
 
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
 #include <string.h>
 
-#include "asterisk.h"
-
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-
 #include "asterisk/file.h"
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
 #include "asterisk/file.h"
 #include "asterisk/logger.h"
 #include "asterisk/options.h"
@@ -44,9 +44,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 /* Maximum length of any variable */
 #define MAXRESULT      1024
 
 /* Maximum length of any variable */
 #define MAXRESULT      1024
 
-
-LOCAL_USER_DECL;
-
 struct sortable_keys {
        char *key;
        float value;
 struct sortable_keys {
        char *key;
        float value;
@@ -78,8 +75,7 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
        if (!data)
                return ERROR_NOARG;
 
        if (!data)
                return ERROR_NOARG;
 
-       if (!(strings = ast_strdupa(data)))
-               return ERROR_NOMEM;
+       strings = ast_strdupa(data);
 
        for (ptrkey = strings; *ptrkey; ptrkey++) {
                if (*ptrkey == '|')
 
        for (ptrkey = strings; *ptrkey; ptrkey++) {
                if (*ptrkey == '|')
@@ -87,8 +83,6 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
        }
 
        sortable_keys = alloca(count * sizeof(struct sortable_keys));
        }
 
        sortable_keys = alloca(count * sizeof(struct sortable_keys));
-       if (!sortable_keys)
-               return ERROR_NOMEM;
 
        memset(sortable_keys, 0, count * sizeof(struct sortable_keys));
 
 
        memset(sortable_keys, 0, count * sizeof(struct sortable_keys));
 
@@ -132,8 +126,7 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
 
        memset(buffer, 0, buflen); 
        
 
        memset(buffer, 0, buflen); 
        
-       if (!(parse = ast_strdupa(data)))
-               return ERROR_NOMEM;
+       parse = ast_strdupa(data);
 
        AST_STANDARD_APP_ARGS(args, parse);
 
 
        AST_STANDARD_APP_ARGS(args, parse);
 
@@ -217,10 +210,10 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
 
 static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 {
 
 static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 {
-       struct localuser *u;
+       struct ast_module_user *u;
        int ret = -1;
 
        int ret = -1;
 
-       LOCAL_USER_ADD(u);
+       u = ast_module_user_add(chan);
 
        switch (sort_internal(chan, data, buf, len)) {
        case ERROR_NOARG:
 
        switch (sort_internal(chan, data, buf, len)) {
        case ERROR_NOARG:
@@ -235,7 +228,8 @@ static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *
        default:
                ast_log(LOG_ERROR, "Unknown internal error\n");
        }
        default:
                ast_log(LOG_ERROR, "Unknown internal error\n");
        }
-       LOCAL_USER_REMOVE(u);
+
+       ast_module_user_remove(u);
 
        return ret;
 }
 
        return ret;
 }
@@ -243,9 +237,9 @@ static int acf_sort_exec(struct ast_channel *chan, char *cmd, char *data, char *
 static int acf_cut_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 {
        int ret = -1;
 static int acf_cut_exec(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
 {
        int ret = -1;
-       struct localuser *u;
+       struct ast_module_user *u;
 
 
-       LOCAL_USER_ADD(u);
+       u = ast_module_user_add(chan);
 
        switch (cut_internal(chan, data, buf, len)) {
        case ERROR_NOARG:
 
        switch (cut_internal(chan, data, buf, len)) {
        case ERROR_NOARG:
@@ -263,7 +257,8 @@ static int acf_cut_exec(struct ast_channel *chan, char *cmd, char *data, char *b
        default:
                ast_log(LOG_ERROR, "Unknown internal error\n");
        }
        default:
                ast_log(LOG_ERROR, "Unknown internal error\n");
        }
-       LOCAL_USER_REMOVE(u);
+
+       ast_module_user_remove(u);
 
        return ret;
 }
 
        return ret;
 }
@@ -292,19 +287,19 @@ struct ast_custom_function acf_cut = {
        .read = acf_cut_exec,
 };
 
        .read = acf_cut_exec,
 };
 
-static int unload_module(void *mod)
+static int unload_module(void)
 {
        int res = 0;
 
        res |= ast_custom_function_unregister(&acf_cut);
        res |= ast_custom_function_unregister(&acf_sort);
 
 {
        int res = 0;
 
        res |= ast_custom_function_unregister(&acf_cut);
        res |= ast_custom_function_unregister(&acf_sort);
 
-       STANDARD_HANGUP_LOCALUSERS;
+       ast_module_user_hangup_all();
 
        return res;
 }
 
 
        return res;
 }
 
-static int load_module(void *mod)
+static int load_module(void)
 {
        int res = 0;
 
 {
        int res = 0;
 
@@ -314,14 +309,4 @@ static int load_module(void *mod)
        return res;
 }
 
        return res;
 }
 
-static const char *description(void)
-{
-       return "Cut out information from a string";
-}
-
-static const char *key(void)
-{
-       return ASTERISK_GPL_KEY;
-}
-
-STD_MOD(MOD_1, NULL, NULL, NULL);
+AST_MODULE_INFO_STANDARD(ASTERISK_GPL_KEY, "Cut out information from a string");