Skip to content

Commit 3a4b16b

Browse files
committed
server: disable session attrs when connect attrs size is 0
1 parent fd3cf70 commit 3a4b16b

2 files changed

Lines changed: 8 additions & 8 deletions

File tree

pkg/server/conn_test.go

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2438,7 +2438,7 @@ func TestParseHandshakeAttrsTruncation(t *testing.T) {
24382438
require.Equal(t, int64(8), vardef.ConnectAttrsLongestSeen.Load()) // 4+4=8
24392439
})
24402440

2441-
t.Run("limit 0 truncates all attrs", func(t *testing.T) {
2441+
t.Run("limit 0 disables collection", func(t *testing.T) {
24422442
vardef.ConnectAttrsSize.Store(0)
24432443
vardef.ConnectAttrsLongestSeen.Store(0)
24442444
vardef.ConnectAttrsLost.Store(0)
@@ -2470,13 +2470,9 @@ func TestParseHandshakeAttrsTruncation(t *testing.T) {
24702470
err = parse.HandshakeResponseBody(context.Background(), &p, data, offset)
24712471
require.NoError(t, err)
24722472

2473-
// limit 0 means no payload bytes are allowed: everything is truncated.
2474-
require.Len(t, p.Attrs, 1)
2475-
val, ok := p.Attrs["_truncated"]
2476-
require.True(t, ok)
2477-
require.Equal(t, "4", val)
2478-
require.Equal(t, int64(1), vardef.ConnectAttrsLost.Load())
2479-
require.Equal(t, int64(4), vardef.ConnectAttrsLongestSeen.Load())
2473+
require.Len(t, p.Attrs, 0)
2474+
require.Equal(t, int64(0), vardef.ConnectAttrsLost.Load())
2475+
require.Equal(t, int64(0), vardef.ConnectAttrsLongestSeen.Load())
24802476
})
24812477

24822478
t.Run("limit 65536 acceptance", func(t *testing.T) {

pkg/server/internal/parse/parse.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,10 @@ type decodedConnAttrs struct {
193193
}
194194

195195
func parseAttrs(data []byte) (map[string]string, string, error) {
196+
if vardef.ConnectAttrsSize.Load() == 0 {
197+
return map[string]string{}, "", nil
198+
}
199+
196200
decoded, err := decodeConnAttrs(data)
197201
if err != nil {
198202
return map[string]string{}, "", err

0 commit comments

Comments
 (0)