aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libstore/legacy-ssh-store.cc17
-rw-r--r--src/libstore/remote-store.cc17
2 files changed, 7 insertions, 27 deletions
diff --git a/src/libstore/legacy-ssh-store.cc b/src/libstore/legacy-ssh-store.cc
index 890c8a149..2d8667a85 100644
--- a/src/libstore/legacy-ssh-store.cc
+++ b/src/libstore/legacy-ssh-store.cc
@@ -124,20 +124,9 @@ struct LegacySSHStore : public virtual LegacySSHStoreConfig, public virtual Stor
conn->to << SERVE_MAGIC_1 << SERVE_PROTOCOL_VERSION;
conn->to.flush();
- StringSink saved;
- try {
- TeeSource tee(conn->from, saved);
- unsigned int magic = readInt(tee);
- if (magic != SERVE_MAGIC_2)
- throw Error("'nix-store --serve' protocol mismatch from '%s'", host);
- } catch (SerialisationError & e) {
- /* In case the other side is waiting for our input,
- close it. */
- conn->sshConn->in.close();
- auto msg = conn->from.drain();
- throw Error("'nix-store --serve' protocol mismatch from '%s', got '%s'",
- host, chomp(saved.s + msg));
- }
+ uint64_t magic = readLongLong(conn->from);
+ if (magic != SERVE_MAGIC_2)
+ throw Error("'nix-store --serve' protocol mismatch from '%s'", host);
conn->remoteVersion = readInt(conn->from);
if (GET_PROTOCOL_MAJOR(conn->remoteVersion) != 0x200)
throw Error("unsupported 'nix-store --serve' protocol version on '%s'", host);
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index 7572473cf..f0dbe8e21 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -69,19 +69,10 @@ void RemoteStore::initConnection(Connection & conn)
conn.from.endOfFileError = "Nix daemon disconnected unexpectedly (maybe it crashed?)";
conn.to << WORKER_MAGIC_1;
conn.to.flush();
- StringSink saved;
- try {
- TeeSource tee(conn.from, saved);
- unsigned int magic = readInt(tee);
- if (magic != WORKER_MAGIC_2)
- throw Error("protocol mismatch");
- } catch (SerialisationError & e) {
- /* In case the other side is waiting for our input, close
- it. */
- conn.closeWrite();
- auto msg = conn.from.drain();
- throw Error("protocol mismatch, got '%s'", chomp(saved.s + msg));
- }
+
+ uint64_t magic = readLongLong(conn.from);
+ if (magic != WORKER_MAGIC_2)
+ throw Error("protocol mismatch");
conn.from >> conn.daemonVersion;
if (GET_PROTOCOL_MAJOR(conn.daemonVersion) != GET_PROTOCOL_MAJOR(PROTOCOL_VERSION))