From 49c22c3c0472f1326108db9942fb928642cc50df Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Tue, 26 Jun 2007 20:34:46 +0000 Subject: [PATCH] Create directory if it does not exist. (Closes issue 10061, Reported and patched by eliel) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@71914 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_record.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/apps/app_record.c b/apps/app_record.c index fc4bbcd83c..b5e85a616d 100644 --- a/apps/app_record.c +++ b/apps/app_record.c @@ -81,6 +81,7 @@ static int record_exec(struct ast_channel *chan, void *data) int count = 0; int percentflag = 0; char *filename, *ext = NULL, *silstr, *maxstr, *options; + char *file, *dir; char *vdata, *p; int i = 0; char tmp[256]; @@ -263,8 +264,13 @@ static int record_exec(struct ast_channel *chan, void *data) } ast_dsp_set_threshold(sildet, 256); } - - + + /* Create the directory if it does not exist. */ + dir = ast_strdupa(tmp); + if ((file = strrchr(dir, '/'))) + *file++ = '\0'; + ast_mkdir (dir, 0777); + flags = option_append ? O_CREAT|O_APPEND|O_WRONLY : O_CREAT|O_TRUNC|O_WRONLY; s = ast_writefile( tmp, ext, NULL, flags , 0, AST_FILE_MODE);