Merged revisions 38928 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Sat, 5 Aug 2006 06:39:43 +0000 (06:39 +0000)
committerRussell Bryant <russell@russellbryant.com>
Sat, 5 Aug 2006 06:39:43 +0000 (06:39 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r38928 | russell | 2006-08-05 02:37:59 -0400 (Sat, 05 Aug 2006) | 3 lines

make sure the priv-callerintros directory exists before trying to create a file
there (issue #7659, patch by hads, with some modifications by me)

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@38929 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_dial.c

index 24fe9b7..99392ab 100644 (file)
@@ -37,6 +37,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include <stdio.h>
 #include <sys/time.h>
 #include <sys/signal.h>
+#include <sys/stat.h>
 #include <netinet/in.h>
 
 #include "asterisk/lock.h"
@@ -1001,7 +1002,13 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
                           unless it is already there-- this should be done before the 
                           call is actually dialed  */
 
-                       /* make sure the priv-callerintros dir exists? */
+                       /* make sure the priv-callerintros dir actually exists */
+                       snprintf(privintro, sizeof(privintro), "%s/sounds/priv-callerintros", ast_config_AST_DATA_DIR);
+                       if (mkdir(privintro, 0755) && errno != EEXIST) {
+                               ast_log(LOG_WARNING, "privacy: can't create directory priv-callerintros: %s\n", strerror(errno));
+                               res = -1;
+                               goto out;
+                       }
 
                        snprintf(privintro,sizeof(privintro), "priv-callerintros/%s", privcid);
                        if( ast_fileexists(privintro,NULL,NULL ) > 0 && strncmp(privcid,"NOCALLERID",10) != 0) {