mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-03 12:25:35 +00:00
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
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user