From: Matt O'Gorman Date: Tue, 10 Jan 2006 16:08:28 +0000 (+0000) Subject: 6186 amd 6187 with minor revisions. added arg X-Git-Tag: 1.4.0-beta1~3011 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=00f2142dc1df976a2e9f92a18c7733cea4419395;p=thirdparty%2Fasterisk.git 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 --- diff --git a/funcs/func_math.c b/funcs/func_math.c index 245ff98494..d086fe3047 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([,]) - 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([,]) - 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 c7217c815b..552e876ed8 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(,) - 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(,) - 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);