From 35e339b6a97fe6e7f5e8cc56daf373d582d52b61 Mon Sep 17 00:00:00 2001 From: Dmitri Dolguikh Date: Fri, 10 Jul 2026 10:45:54 +0200 Subject: [PATCH] set session expiry in ToComponentSyncResponse(), same as ToSyncResponse() path Signed-off-by: Dmitri Dolguikh --- .../shared/grpc/components_envelope_response.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/management/internals/shared/grpc/components_envelope_response.go b/management/internals/shared/grpc/components_envelope_response.go index b48b9b3dc..7880b5135 100644 --- a/management/internals/shared/grpc/components_envelope_response.go +++ b/management/internals/shared/grpc/components_envelope_response.go @@ -72,6 +72,16 @@ func ToComponentSyncResponse( nbConfig := toNetbirdConfig(config, turnCredentials, relayCredentials, extraSettings, settings) resp.NetbirdConfig = integrationsConfig.ExtendNetBirdConfig(peer.ID, peerGroups, nbConfig, extraSettings) + // settings == nil → field stays nil → "no info in this snapshot", client + // preserves the deadline it already had. settings non-nil → emit either a + // valid deadline or the explicit-zero "disabled" sentinel via + // encodeSessionExpiresAt. + if settings != nil { + resp.SessionExpiresAt = encodeSessionExpiresAt( + peer.SessionExpiresAt(settings.PeerLoginExpirationEnabled, settings.PeerLoginExpiration), + ) + } + return resp }