From 37e9010887783c307355f3144786ed72e8a973b0 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Tue, 6 Jan 2015 12:46:28 +0100 Subject: 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. --- src/input/AsyncInputStream.cxx | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src') diff --git a/src/input/AsyncInputStream.cxx b/src/input/AsyncInputStream.cxx index c8e3fcfd5..5795ecead 100644 --- a/src/input/AsyncInputStream.cxx +++ b/src/input/AsyncInputStream.cxx @@ -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(); } -- cgit v1.2.3