diff --git a/expr/ct.go b/expr/ct.go index 127b6fd..0d58f2b 100644 --- a/expr/ct.go +++ b/expr/ct.go @@ -186,6 +186,9 @@ func (e *Ct) unmarshal(fam byte, data []byte) error { e.Register = ad.Uint32() case unix.NFTA_CT_DIRECTION: e.Direction = ad.Uint32() + case unix.NFTA_CT_SREG: + e.SourceRegister = true + e.Register = ad.Uint32() } } return ad.Err() diff --git a/expr/ct_test.go b/expr/ct_test.go index b495860..6b77c8a 100644 --- a/expr/ct_test.go +++ b/expr/ct_test.go @@ -38,6 +38,14 @@ func TestCt(t *testing.T) { Direction: 1, // direction: reply }, }, + { + name: "Unmarshal Ct source register case", + ct: Ct{ + Register: 1, + Key: CtKeySRC, + SourceRegister: true, + }, + }, } for _, tt := range tests {