input/async: reset the "open" flag after seeking successfully

Fixes a problem with the "curl" input plugin: IsEOF() always returns
true because the "open" flag was cleared by
CurlInputStream::RequestDone() when end-of-stream was reached.  This
flag stays false even when seeking to another position has succeeded.

This patch resets the "open" flag to true after seeking successfully.
This commit is contained in:
Max Kellermann 2015-01-06 12:46:28 +01:00
parent 4bd2c75056
commit 37e9010887
2 changed files with 6 additions and 0 deletions

1
NEWS
View File

@ -1,5 +1,6 @@
ver 0.19.8 (not yet released)
* input
- curl: fix bug after rewinding from end-of-file
- mms: reduce delay at the beginning of playback
* decoder
- dsdiff, dsf: allow ID3 tags larger than 4 kB

View File

@ -160,6 +160,11 @@ AsyncInputStream::SeekDone()
assert(io_thread_inside());
assert(IsSeekPending());
/* we may have reached end-of-file previously, and the
connection may have been closed already; however after
seeking successfully, the connection must be alive again */
open = true;
seek_state = SeekState::NONE;
cond.broadcast();
}