Hi,

When the "a" designated sender mechanism is used in an spf txt record, both v4 and v6 addresses are matched according to [1], so let `smtpctl spf walk` resolve both A and AAAA records.

Current output:
$ echo netsend.nl | smtpctl spf walk
80.127.135.115
80.127.98.234

Expected output:
$ echo netsend.nl | ./smtpctl spf walk
80.127.135.115
80.127.98.234
2001:981:8a34:1:80:127:135:115
2001:984:6a6f:1:468a:5bff:fed9:87

-Tim

[1] https://tools.ietf.org/html/rfc7208#section-5.3
diff --git a/usr.sbin/smtpd/spfwalk.c b/usr.sbin/smtpd/spfwalk.c
index c4ce2e3d891..22b057963f9 100644
--- a/usr.sbin/smtpd/spfwalk.c
+++ b/usr.sbin/smtpd/spfwalk.c
@@ -192,6 +192,7 @@ dispatch_txt(struct dns_rr *rr)
                }
                if (strncasecmp("a:", *ap, 2) == 0) {
                        lookup_record(T_A, *(ap) + 2, dispatch_a);
+                       lookup_record(T_AAAA, *(ap) + 2, dispatch_aaaa);
                        continue;
                }
                if (strncasecmp("exists:", *ap, 7) == 0) {

Reply via email to