From 162d6f902c470a5ec39edf11ae026cc5e3441b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Papp?= Date: Fri, 5 Sep 2025 01:22:58 +0200 Subject: [PATCH] Cache server key --- shared/management/client/grpc.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/shared/management/client/grpc.go b/shared/management/client/grpc.go index dc26253e9..5660d19e3 100644 --- a/shared/management/client/grpc.go +++ b/shared/management/client/grpc.go @@ -44,6 +44,8 @@ type GrpcClient struct { conn *grpc.ClientConn connStateCallback ConnStateNotifier connStateCallbackLock sync.RWMutex + + srvKey *wgtypes.Key } // NewClient creates a new client to Management service @@ -270,6 +272,10 @@ func (c *GrpcClient) GetServerPublicKey() (*wgtypes.Key, error) { return nil, errors.New(errMsgNoMgmtConnection) } + if c.srvKey != nil { + return c.srvKey, nil + } + mgmCtx, cancel := context.WithTimeout(c.ctx, 5*time.Second) defer cancel() resp, err := c.realClient.GetServerKey(mgmCtx, &proto.Empty{}) @@ -282,6 +288,7 @@ func (c *GrpcClient) GetServerPublicKey() (*wgtypes.Key, error) { if err != nil { return nil, err } + c.srvKey = &serverKey return &serverKey, nil }