Index: asterisk/res/res_musiconhold.c =================================================================== RCS file: /usr/cvsroot/asterisk/res/res_musiconhold.c,v retrieving revision 1.36 diff -u -r1.36 res_musiconhold.c --- asterisk/res/res_musiconhold.c 17 Jul 2004 20:12:28 -0000 1.36 +++ asterisk/res/res_musiconhold.c 15 Aug 2004 00:14:34 -0000 @@ -116,7 +116,7 @@ DIR *dir; struct dirent *de; dir = opendir(class->dir); - if (!dir) { + if (!dir && !strstr(class->dir,"http://") && !strstr(class->dir,"https://")) { ast_log(LOG_WARNING, "%s is not a valid directory\n", class->dir); return -1; } @@ -167,11 +167,20 @@ } files = 0; - while((de = readdir(dir)) && (files < MAX_MP3S)) { - if ((strlen(de->d_name) > 3) && !strcasecmp(de->d_name + strlen(de->d_name) - 4, ".mp3")) { - strncpy(fns[files], de->d_name, sizeof(fns[files]) - 1); - argv[argc++] = fns[files]; - files++; + if (strstr(class->dir,"http://") || strstr(class->dir,"https://")) + { + strncpy(fns[files], class->dir, sizeof(fns[files]) - 1); + argv[argc++] = fns[files]; + files++; + } + else + { + while((de = readdir(dir)) && (files < MAX_MP3S)) { + if ((strlen(de->d_name) > 3) && !strcasecmp(de->d_name + strlen(de->d_name) - 4, ".mp3")) { + strncpy(fns[files], de->d_name, sizeof(fns[files]) - 1); + argv[argc++] = fns[files]; + files++; + } } } argv[argc] = NULL;