RemoteStore::queryRealisationUncached(): Fix potential noexcept violation

This commit is contained in:
Eelco Dolstra 2022-05-30 13:27:13 +02:00
parent b8faa83742
commit 6378f0bb32
No known key found for this signature in database
GPG key ID: 8170B4726D7198DE

View file

@ -718,13 +718,12 @@ void RemoteStore::registerDrvOutput(const Realisation & info)
void RemoteStore::queryRealisationUncached(const DrvOutput & id,
Callback<std::shared_ptr<const Realisation>> callback) noexcept
{
try {
auto conn(getConnection());
if (GET_PROTOCOL_MINOR(conn->daemonVersion) < 27) {
warn("the daemon is too old to support content-addressed derivations, please upgrade it to 2.4");
try {
callback(nullptr);
} catch (...) { return callback.rethrow(); }
return callback(nullptr);
}
conn->to << wopQueryRealisation;
@ -747,7 +746,6 @@ void RemoteStore::queryRealisationUncached(const DrvOutput & id,
}
}();
try {
callback(std::shared_ptr<const Realisation>(real));
} catch (...) { return callback.rethrow(); }
}