diff options
author | Max Kellermann <max@duempel.org> | 2013-11-06 22:01:06 +0100 |
---|---|---|
committer | Max Kellermann <max@duempel.org> | 2013-11-06 22:01:06 +0100 |
commit | fd2eafa7c67e0efdae7d3d18c39b97f724372f7e (patch) | |
tree | 391bc672c8ec24a728a163ce9ed8026287d0f039 /src/ClientRead.cxx | |
parent | 422b8472fec9443250895a281b6b0a20190daa22 (diff) | |
download | mpd-fd2eafa7c67e0efdae7d3d18c39b97f724372f7e.tar.gz mpd-fd2eafa7c67e0efdae7d3d18c39b97f724372f7e.tar.xz mpd-fd2eafa7c67e0efdae7d3d18c39b97f724372f7e.zip |
ClientRead: "close" flushes the output buffer
Add a new CommandResult code called "FINISH" which, unlike "CLOSE",
will attempt to flush the output buffer. This is a one-shot attempt;
it will do one write, and not try again.
Diffstat (limited to 'src/ClientRead.cxx')
-rw-r--r-- | src/ClientRead.cxx | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/ClientRead.cxx b/src/ClientRead.cxx index 925e1502d..22edefe60 100644 --- a/src/ClientRead.cxx +++ b/src/ClientRead.cxx @@ -57,6 +57,11 @@ Client::OnSocketInput(void *data, size_t length) main_loop->Break(); return InputResult::CLOSED; + case CommandResult::FINISH: + if (Flush()) + Close(); + return InputResult::CLOSED; + case CommandResult::CLOSE: Close(); return InputResult::CLOSED; |