summaryrefslogtreecommitdiff
path: root/funcs
diff options
context:
space:
mode:
authorMatt O'Gorman <mogorman@digium.com>2006-01-10 16:08:28 +0000
committerMatt O'Gorman <mogorman@digium.com>2006-01-10 16:08:28 +0000
commit00f2142dc1df976a2e9f92a18c7733cea4419395 (patch)
treee2e07c410262f39024999b82aa7a4318cfb6600c /funcs
parentb3ed64689d6750fbed564e1502046bcb4078086e (diff)
6186 amd 6187 with minor revisions. added arg
parsing from macro. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'funcs')
-rw-r--r--funcs/func_math.c27
-rw-r--r--funcs/func_md5.c25
2 files changed, 33 insertions, 19 deletions
diff --git a/funcs/func_math.c b/funcs/func_math.c
index 245ff9849..d086fe304 100644
--- a/funcs/func_math.c
+++ b/funcs/func_math.c
@@ -66,35 +66,42 @@ enum TypeOfResult
static char *builtin_function_math(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
- int argc;
- char *argv[2];
- char *args;
float fnum1;
float fnum2;
float ftmp = 0;
char *op;
int iaction=-1;
int type_of_result=FLOAT_RESULT;
-
+ char *parse;
+
/* dunno, big calulations :D */
char user_result[30];
char *mvalue1, *mvalue2=NULL, *mtype_of_result;
-
+
+ AST_DECLARE_APP_ARGS(args,
+ AST_APP_ARG(argv0);
+ AST_APP_ARG(argv1);
+ );
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: Math(<number1><op><number 2>[,<type_of_result>]) - missing argument!\n");
return NULL;
}
- args = ast_strdupa(data);
- argc = ast_app_separate_args(args, '|', argv, sizeof(argv) / sizeof(argv[0]));
+ parse = ast_strdupa(data);
+ if(!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return NULL;
+ }
- if (argc < 1) {
+ AST_STANDARD_APP_ARGS(args, parse);
+
+ if (args.argc < 1) {
ast_log(LOG_WARNING, "Syntax: Math(<number1><op><number 2>[,<type_of_result>]) - missing argument!\n");
return NULL;
}
- mvalue1 = argv[0];
+ mvalue1 = args.argv0;
if ((op = strchr(mvalue1, '+'))) {
iaction = ADDFUNCTION;
@@ -139,7 +146,7 @@ static char *builtin_function_math(struct ast_channel *chan, char *cmd, char *da
mvalue2 = op + 1;
/* detect wanted type of result */
- mtype_of_result = argv[1];
+ mtype_of_result = args.argv1;
if (mtype_of_result)
{
if (!strcasecmp(mtype_of_result,"float") || !strcasecmp(mtype_of_result,"f"))
diff --git a/funcs/func_md5.c b/funcs/func_md5.c
index c7217c815..552e876ed 100644
--- a/funcs/func_md5.c
+++ b/funcs/func_md5.c
@@ -55,27 +55,34 @@ static char *builtin_function_md5(struct ast_channel *chan, char *cmd, char *dat
static char *builtin_function_checkmd5(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
- int argc;
- char *argv[2];
- char *args;
char newmd5[33];
+ char *parse;
+ AST_DECLARE_APP_ARGS(args,
+ AST_APP_ARG(digest);
+ AST_APP_ARG(data);
+ );
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Syntax: CHECK_MD5(<digest>,<data>) - missing argument!\n");
return NULL;
}
- args = ast_strdupa(data);
- argc = ast_app_separate_args(args, '|', argv, sizeof(argv) / sizeof(argv[0]));
-
- if (argc < 2) {
+ parse = ast_strdupa(data);
+ if (!parse) {
+ ast_log(LOG_ERROR, "Out of memory!\n");
+ return NULL;
+ }
+
+ AST_STANDARD_APP_ARGS(args, parse);
+
+ if (args.argc < 2) {
ast_log(LOG_WARNING, "Syntax: CHECK_MD5(<digest>,<data>) - missing argument!\n");
return NULL;
}
- ast_md5_hash(newmd5, argv[1]);
+ ast_md5_hash(newmd5, args.data);
- if (!strcasecmp(newmd5, argv[0])) /* they match */
+ if (!strcasecmp(newmd5, args.digest) ) /* they match */
ast_copy_string(buf, "1", len);
else
ast_copy_string(buf, "0", len);