Issue 9970 - Ensure directory exists before trying to write an output file
authorTilghman Lesher <tilghman@meg.abyt.es>
Sun, 24 Jun 2007 16:20:18 +0000 (16:20 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Sun, 24 Jun 2007 16:20:18 +0000 (16:20 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@71268 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_mixmonitor.c

index 96782c5..4ca27bd 100644 (file)
@@ -304,7 +304,7 @@ static int mixmonitor_exec(struct ast_channel *chan, void *data)
        int x, readvol = 0, writevol = 0;
        struct ast_module_user *u;
        struct ast_flags flags = {0};
-       char *parse;
+       char *parse, *tmp, *slash;
        AST_DECLARE_APP_ARGS(args,
                AST_APP_ARG(filename);
                AST_APP_ARG(options);
@@ -373,6 +373,11 @@ static int mixmonitor_exec(struct ast_channel *chan, void *data)
                args.filename = build;
        }
 
+       tmp = ast_strdupa(args.filename);
+       if ((slash = strrchr(tmp, '/')))
+               *slash = '\0';
+       ast_mkdir(tmp, 0777);
+
        pbx_builtin_setvar_helper(chan, "MIXMONITOR_FILENAME", args.filename);
        launch_monitor_thread(chan, args.filename, flags.flags, readvol, writevol, args.post_process);