Fix ENUM to live w/out config file, and fix internationalization
authorMark Spencer <markster@digium.com>
Mon, 6 Oct 2003 00:36:17 +0000 (00:36 +0000)
committerMark Spencer <markster@digium.com>
Mon, 6 Oct 2003 00:36:17 +0000 (00:36 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1609 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_enumlookup.c
file.c

index 22e7601..c03eb97 100755 (executable)
@@ -147,8 +147,6 @@ static int load_config(void)
        struct ast_config *cfg;
        char *s;
 
-       ast_log(LOG_WARNING, "reading enum config\n");
-
        cfg = ast_load(ENUM_CONFIG);
        if (cfg) {
                if (!(s=ast_variable_retrieve(cfg, "general", "h323driver"))) {
@@ -159,8 +157,8 @@ static int load_config(void)
                ast_destroy(cfg);
                return 0;
        }
-       ast_log(LOG_WARNING, "Error reading enum config\n");
-       return -1;
+       ast_log(LOG_NOTICE, "No ENUM Config file, using defaults\n");
+       return 0;
 }
 
 
diff --git a/file.c b/file.c
index dde3d26..27fbe23 100755 (executable)
--- a/file.c
+++ b/file.c
@@ -419,21 +419,24 @@ struct ast_filestream *ast_openstream(struct ast_channel *chan, char *filename,
        */
        int fd = -1;
        int fmts = -1;
-       char filename2[256];
-       char lang2[MAX_LANGUAGE];
+       char filename2[256]="";
+       char filename3[256]="";
+       char *endpart;
        int res;
        ast_stopstream(chan);
        /* do this first, otherwise we detect the wrong writeformat */
        if (chan->generator)
                ast_deactivate_generator(chan);
        if (preflang && strlen(preflang)) {
-               snprintf(filename2, sizeof(filename2), "%s/%s", preflang, filename);
+               strncpy(filename3, filename, sizeof(filename3) - 1);
+               endpart = strrchr(filename3, '/');
+               if (endpart) {
+                       *endpart = '\0';
+                       endpart++;
+                       snprintf(filename2, sizeof(filename2), "%s/%s/%s", filename3, preflang, endpart);
+               } else
+                       snprintf(filename2, sizeof(filename2), "%s/%s", preflang, filename);
                fmts = ast_fileexists(filename2, NULL, NULL);
-               if (fmts < 1) {
-                       strncpy(lang2, preflang, sizeof(lang2)-1);
-                       snprintf(filename2, sizeof(filename2), "%s/%s", lang2, filename);
-                       fmts = ast_fileexists(filename2, NULL, NULL);
-               }
        }
        if (fmts < 1) {
                strncpy(filename2, filename, sizeof(filename2)-1);