[svn-commits] jpeeler: trunk r158062 - /trunk/main/file.c
SVN commits to the Digium repositories
svn-commits at lists.digium.com
Thu Nov 20 11:37:31 CST 2008
Author: jpeeler
Date: Thu Nov 20 11:37:31 2008
New Revision: 158062
URL: http://svn.digium.com/view/asterisk?view=rev&rev=158062
Log:
(closes issue #12929)
Reported by: snyfer
This handles the case for a zero length file to attempt to be streamed. Instead of failing from not playing any data, go ahead and return success as ast_streamfile should consider playing nothing a success when there is nothing to play.
Modified:
trunk/main/file.c
Modified: trunk/main/file.c
URL: http://svn.digium.com/view/asterisk/trunk/main/file.c?view=diff&rev=158062&r1=158061&r2=158062
==============================================================================
--- trunk/main/file.c (original)
+++ trunk/main/file.c Thu Nov 20 11:37:31 2008
@@ -407,6 +407,9 @@
ast_free(s);
continue; /* cannot run open on file */
}
+ if (st.st_size == 0) {
+ ast_log(LOG_WARNING, "File %s detected to have zero size.\n", fn);
+ }
/* ok this is good for OPEN */
res = 1; /* found */
s->lasttimeout = -1;
@@ -872,8 +875,19 @@
struct ast_filestream *fs;
struct ast_filestream *vfs=NULL;
char fmt[256];
+ int seekattempt;
fs = ast_openstream(chan, filename, preflang);
+
+ /* check to see if there is any data present (not a zero length file),
+ * done this way because there is no where for ast_openstream_full to
+ * return the file had no data. */
+ seekattempt = fseek(fs->f, -1, SEEK_END);
+ if (!seekattempt)
+ fseek(fs->f, 0, SEEK_SET);
+ else
+ return 0;
+
if (fs)
vfs = ast_openvstream(chan, filename, preflang);
if (vfs) {
More information about the svn-commits
mailing list