From: Mark Michelson Date: Tue, 26 Jun 2007 20:34:46 +0000 (+0000) Subject: Create directory if it does not exist. X-Git-Tag: 1.6.0-beta1~3^2~2246 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=49c22c3c0472f1326108db9942fb928642cc50df;p=thirdparty%2Fasterisk.git 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 --- 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);