X-Git-Url: http://git.asterisk.org/gitweb/?p=asterisk%2Fasterisk.git;a=blobdiff_plain;f=funcs%2Ffunc_rand.c;h=4b7f7b6d42456c75f5f31524b21f05a9d23ac016;hp=0f1bd0068d018d64f7921812f866878a8e55567b;hb=428efda5a9d032fedca223732e26ef7e7d678b27;hpb=9cda86f4b239ac5520fc2b2d7f17fbb740fa4074 diff --git a/funcs/func_rand.c b/funcs/func_rand.c index 0f1bd00..4b7f7b6 100644 --- a/funcs/func_rand.c +++ b/funcs/func_rand.c @@ -50,24 +50,29 @@ LOCAL_USER_DECL; static char *acf_rand_exec(struct ast_channel *chan, char *cmd, char *data, char *buffer, size_t buflen) { struct localuser *u; - char *args[2] = { "", "" }, *s; int min_int, response_int, max_int; - - LOCAL_USER_ACF_ADD(u); - - if (!(s = ast_strdupa(data))) { + char *parse; + + AST_DECLARE_APP_ARGS(args, + AST_APP_ARG(min); + AST_APP_ARG(max); + ); + + if (!(parse = ast_strdupa(data))) { *buffer = '\0'; - LOCAL_USER_REMOVE(u); return buffer; } - ast_app_separate_args(s, '|', args, sizeof(args) / sizeof(args[0])); + LOCAL_USER_ACF_ADD(u); - if (ast_strlen_zero(args[0]) || sscanf(args[0], "%d", &min_int) != 1) { + AST_STANDARD_APP_ARGS(args, parse); + + if (ast_strlen_zero(args.min) || sscanf(args.min, "%d", &min_int) != 1) { min_int = 0; } - if (ast_strlen_zero(args[1]) || sscanf(args[1], "%d", &max_int) != 1) { + + if (ast_strlen_zero(args.max) || sscanf(args.max, "%d", &max_int) != 1) { max_int = RAND_MAX; }