[management] Compensate for a possible nil peer when returning "empty" network map (#8285)

* we somehow can get a nil peer when returning empty components; this fix compensates for the issue, but doesn't fix the root cause (which is unknown atm)

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>

* fix test

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>

---------

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
dmitri-netbird
2026-10-22 20:27:53 +02:00
committed by GitHub
parent 48ecdfbcfc
commit f548a74c7c
5 changed files with 9 additions and 3 deletions
@@ -717,6 +717,7 @@ func TestEncodeNetworkMapEnvelope_NilComponentsGracefulDegrade(t *testing.T) {
// nil Components → minimal envelope, no crash. Matches the legacy
// behaviour for missing/unvalidated peers.
env := EncodeNetworkMapEnvelope(ComponentsEnvelopeInput{
Peer: &nmdata.Peer{ID: "missing-peer", SSHKey: "missing-peer-key"},
Components: emptyNetworkMapComponents(),
DNSDomain: "netbird.cloud",
})
@@ -731,6 +732,8 @@ func TestEncodeNetworkMapEnvelope_NilComponentsGracefulDegrade(t *testing.T) {
require.NotNil(t, full.Network, "client runs Calculate() over the envelope and dereferences Network unconditionally; a nil here would crash the receiver")
assert.Equal(t, "net-empty", full.Network.Identifier)
assert.Equal(t, uint64(9), full.Serial)
assert.Len(t, env.GetFull().Peers, 1)
assert.Equal(t, string(env.GetFull().Peers[0].SshPubKey), "missing-peer-key")
}
func TestEncodeNetworkMapEnvelope_AccountSettingsAlwaysEmitted(t *testing.T) {