aboutsummaryrefslogtreecommitdiff
path: root/zenserver/upstream/upstreamcache.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zenserver/upstream/upstreamcache.cpp')
-rw-r--r--zenserver/upstream/upstreamcache.cpp16
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; }