1
0
mirror of https://gitlab.xiph.org/xiph/ezstream.git synced 2025-02-02 15:07:45 -05:00

The original reason to abort ezstream when running into problems opening a media

file was to prevent a very verbose infinite loop (e.g. when accidentially
playing an outdated playlist.) Bring that back by aborting after 100 subsequent
errors.


git-svn-id: https://svn.xiph.org/trunk/ezstream@16527 0101bb08-14d6-0310-b084-bc0e0c8e3800
This commit is contained in:
moritz 2009-08-29 09:36:18 +00:00
parent 322b88412f
commit 995c5d2b77
2 changed files with 10 additions and 1 deletions

2
NEWS
View File

@ -5,6 +5,8 @@ Changes in 0.5.6, released on XXXX-XX-XX:
Failure to open a resource (e.g. a media file) is no longer fatal Failure to open a resource (e.g. a media file) is no longer fatal
and operation will continue as far as possible. Idea from dhorton. and operation will continue as far as possible. Idea from dhorton.
(Ticket #1585) (Ticket #1585)
- [MISC] With the previous change, still abort ezstream after 100
subsequent errors to prevent a very verbose infinite loop.
* src/playlist.c: * src/playlist.c:
- [MISC] Consider no output from a playlist program to be equivalent to an - [MISC] Consider no output from a playlist program to be equivalent to an
empty line, indicating that the end of the playlist is reached. empty line, indicating that the end of the playlist is reached.

View File

@ -57,6 +57,7 @@ int metadataFromProgram;
EZCONFIG *pezConfig = NULL; EZCONFIG *pezConfig = NULL;
playlist_t *playlist = NULL; playlist_t *playlist = NULL;
int playlistMode = 0; int playlistMode = 0;
unsigned int resource_errors = 0;
#ifdef HAVE_SIGNALS #ifdef HAVE_SIGNALS
const int ezstream_signals[] = { const int ezstream_signals[] = {
@ -874,9 +875,15 @@ streamFile(shout_t *shout, const char *fileName)
if ((filepstream = openResource(shout, fileName, &popenFlag, if ((filepstream = openResource(shout, fileName, &popenFlag,
&mdata, &isStdin, &songLen)) &mdata, &isStdin, &songLen))
== NULL) == NULL) {
if (++resource_errors > 100) {
printf("%s: Too many errors -- giving up.\n", __progname);
return (0);
}
/* Continue with next resource on failure: */ /* Continue with next resource on failure: */
return (1); return (1);
}
resource_errors = 0;
if (mdata != NULL) { if (mdata != NULL) {
char *tmp, *metaData; char *tmp, *metaData;