From aba0448207dcb21c0c28770023b3dba1ebd4e6cd Mon Sep 17 00:00:00 2001 From: Dmitry Motylev <156671+dmotylev@users.noreply.github.com> Date: Thu, 8 May 2025 17:44:24 +0100 Subject: [PATCH] fix(parser): correctly handle redirect in inspect mode Removed unnecessary handling of unknown modifiers and updated redirect logic to ensure proper behavior in inspect mode. Fixes issue where redirect modifier was not processed correctly during SPF path inspection. --- parser.go | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/parser.go b/parser.go index 38d30bd..a2d6651 100644 --- a/parser.go +++ b/parser.go @@ -247,7 +247,7 @@ type unused struct { } func (p *parser) observe(tokens []*token) (Result, string, unused, error) { - mechanisms, _, _, unknownModifiers, err := sortTokens(tokens) + mechanisms, _, _, _, err := sortTokens(tokens) if err != nil { return Permerror, "", unused{mechanisms, nil}, err } @@ -305,10 +305,6 @@ func (p *parser) observe(tokens []*token) (Result, string, unused, error) { // others are being registered by listener } - for i, token = range unknownModifiers { - p.fireDirective(token, "") - } - return unreliableResult, "", unused{}, ErrUnreliableResult } @@ -842,10 +838,6 @@ func (p *parser) handleRedirect(t *token) (Result, error) { redirectDomain := NormalizeFQDN(domain) p.fireDirective(t, redirectDomain) - if p.ignoreMatches { - // In inspect mode we only register modifier presence, w/o actual handling - return unreliableResult, ErrUnreliableResult - } if err != nil { return Permerror, NewSpfError(spferr.KindSyntax, err, t)