aboutsummaryrefslogtreecommitdiff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <edolstra@gmail.com>2018-10-27 12:54:22 +0200
committerEelco Dolstra <edolstra@gmail.com>2018-10-27 12:54:22 +0200
commit63575ffa38650d84aaec04d7447f92cf06db52a5 (patch)
treed75eefdf9e6b879ae93bfad95740360184915b47 /src/libstore
parent2cf98218c81c7563ba4c7a6016ffe6f5437678c4 (diff)
parented25753501a7a3f77c097df01db299bdb60ede96 (diff)
Merge branch 'nix-doctor' of https://github.com/LnL7/nix
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/legacy-ssh-store.cc6
-rw-r--r--src/libstore/local-store.cc6
-rw-r--r--src/libstore/local-store.hh2
-rw-r--r--src/libstore/remote-store.cc7
-rw-r--r--src/libstore/remote-store.hh2
-rw-r--r--src/libstore/store-api.hh6
6 files changed, 29 insertions, 0 deletions
diff --git a/src/libstore/legacy-ssh-store.cc b/src/libstore/legacy-ssh-store.cc
index 88d2574e8..26e185198 100644
--- a/src/libstore/legacy-ssh-store.cc
+++ b/src/libstore/legacy-ssh-store.cc
@@ -303,6 +303,12 @@ struct LegacySSHStore : public Store
{
auto conn(connections->get());
}
+
+ unsigned int getProtocol() override
+ {
+ auto conn(connections->get());
+ return conn->remoteVersion;
+ }
};
static RegisterStoreImplementation regStore([](
diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc
index 197b9d789..216f3417c 100644
--- a/src/libstore/local-store.cc
+++ b/src/libstore/local-store.cc
@@ -1338,6 +1338,12 @@ void LocalStore::verifyPath(const Path & path, const PathSet & store,
}
+unsigned int LocalStore::getProtocol()
+{
+ return PROTOCOL_VERSION;
+}
+
+
#if defined(FS_IOC_SETFLAGS) && defined(FS_IOC_GETFLAGS) && defined(FS_IMMUTABLE_FL)
static void makeMutable(const Path & path)
diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh
index 746bdbeed..fce963433 100644
--- a/src/libstore/local-store.hh
+++ b/src/libstore/local-store.hh
@@ -209,6 +209,8 @@ public:
void registerValidPaths(const ValidPathInfos & infos);
+ unsigned int getProtocol() override;
+
void vacuumDB();
/* Repair the contents of the given path by redownloading it using
diff --git a/src/libstore/remote-store.cc b/src/libstore/remote-store.cc
index ef8b0e53b..def140cfb 100644
--- a/src/libstore/remote-store.cc
+++ b/src/libstore/remote-store.cc
@@ -693,6 +693,13 @@ void RemoteStore::connect()
}
+unsigned int RemoteStore::getProtocol()
+{
+ auto conn(connections->get());
+ return conn->daemonVersion;
+}
+
+
void RemoteStore::flushBadConnections()
{
connections->flushBad();
diff --git a/src/libstore/remote-store.hh b/src/libstore/remote-store.hh
index 3686dc360..4f554b598 100644
--- a/src/libstore/remote-store.hh
+++ b/src/libstore/remote-store.hh
@@ -98,6 +98,8 @@ public:
void connect() override;
+ unsigned int getProtocol() override;
+
void flushBadConnections();
protected:
diff --git a/src/libstore/store-api.hh b/src/libstore/store-api.hh
index 099818ed6..106b2be5e 100644
--- a/src/libstore/store-api.hh
+++ b/src/libstore/store-api.hh
@@ -599,6 +599,12 @@ public:
a notion of connection. Otherwise this is a no-op. */
virtual void connect() { };
+ /* Get the protocol version of this store or it's connection. */
+ virtual unsigned int getProtocol()
+ {
+ return 0;
+ };
+
/* Get the priority of the store, used to order substituters. In
particular, binary caches can specify a priority field in their
"nix-cache-info" file. Lower value means higher priority. */