diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc index bd9559075..e4f180240 100644 --- a/src/libstore/store-api.cc +++ b/src/libstore/store-api.cc @@ -259,7 +259,7 @@ string StoreAPI::makeValidityRegistration(const PathSet & paths, } -void StoreAPI::serve(Source & in, Sink & out) +void StoreAPI::serve(Source & in, BufferedSink & out) { string cmd = readString(in); if (cmd == "query") { @@ -283,6 +283,7 @@ void StoreAPI::serve(Source & in, Sink & out) writeString("", out); } else throw Error(format("Unknown serve query `%1%'") % cmd); + out.flush(); } } else if (cmd == "substitute") dumpPath(readString(in), out); diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh index edab6ea5a..f32824a3b 100644 --- a/src/libstore/store-api.hh +++ b/src/libstore/store-api.hh @@ -251,7 +251,7 @@ public: /* Serve the store for ssh substituters by taking commands * from in and printing results to out */ - void serve(Source & in, Sink & out); + void serve(Source & in, BufferedSink & out); };