diff options
| author | Per Larsson <[email protected]> | 2021-09-20 08:54:09 +0200 |
|---|---|---|
| committer | Per Larsson <[email protected]> | 2021-09-20 08:54:09 +0200 |
| commit | d3c8d678d395c9ce091d93e629d77d698f714dcd (patch) | |
| tree | 647fcf3d57bf1667989daf94f52a49471141159d /zenserver/upstream/upstreamcache.cpp | |
| parent | Added upstream cache policy command line option (read|write,readonly,writeonl... (diff) | |
| download | zen-d3c8d678d395c9ce091d93e629d77d698f714dcd.tar.xz zen-d3c8d678d395c9ce091d93e629d77d698f714dcd.zip | |
Probe upstream Zen server when initializing upstream cache.
Diffstat (limited to 'zenserver/upstream/upstreamcache.cpp')
| -rw-r--r-- | zenserver/upstream/upstreamcache.cpp | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/zenserver/upstream/upstreamcache.cpp b/zenserver/upstream/upstreamcache.cpp index c015ef3e9..e235db516 100644 --- a/zenserver/upstream/upstreamcache.cpp +++ b/zenserver/upstream/upstreamcache.cpp @@ -292,8 +292,20 @@ namespace detail { virtual bool Initialize() override { - // TODO: Test and authenticate Zen client connection - return !m_Client->ServiceUrl().empty(); + try + { + ZenStructuredCacheSession Session(*m_Client); + ZenCacheResult Result; + for (int32_t Attempt = 0, MaxAttempts = 3; Attempt < MaxAttempts && !Result.Success; ++Attempt) + { + Result = Session.SayHello(); + } + return Result.Success; + } + catch (std::exception&) + { + return false; + } } virtual std::string_view DisplayName() const override { return m_DisplayName; } |