about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstore/store-api.cc3
-rw-r--r--src/libstore/store-api.hh2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/libstore/store-api.cc b/src/libstore/store-api.cc
index bd95590756de..e4f180240992 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 edab6ea5a2d9..f32824a3bb7c 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);
 };