Diff of the two buildlogs: -- --- b1/build.log 2024-07-17 20:15:18.120212462 +0000 +++ b2/build.log 2024-07-17 20:16:46.052475092 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Wed Jul 17 08:12:12 -12 2024 -I: pbuilder-time-stamp: 1721247132 +I: Current time: Wed Aug 20 16:38:19 +14 2025 +I: pbuilder-time-stamp: 1755657499 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bullseye-reproducible-base.tgz] I: copying local configuration @@ -17,8 +17,8 @@ I: copying [./golang-blitiri-go-spf_1.1.0-1.debian.tar.xz] I: Extracting source gpgv: unknown type of key resource 'trustedkeys.kbx' -gpgv: keyblock resource '/tmp/dpkg-verify-sig.4xpZ072t/trustedkeys.kbx': General error -gpgv: Signature made Mon Jun 29 03:19:37 2020 -12 +gpgv: keyblock resource '/tmp/dpkg-verify-sig.EVVZoj2a/trustedkeys.kbx': General error +gpgv: Signature made Tue Jun 30 05:19:37 2020 +14 gpgv: using RSA key DAA6EFF1C627EA1C26B1A692AA230FC45F8C27B1 gpgv: Can't check signature: No public key dpkg-source: warning: failed to verify signature on ./golang-blitiri-go-spf_1.1.0-1.dsc @@ -27,135 +27,166 @@ dpkg-source: info: unpacking golang-blitiri-go-spf_1.1.0-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1884695/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/D01_modify_environment starting +debug: Running on ionos5-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 Aug 20 16:38 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=20 ' - DISTRIBUTION='bullseye' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="1" [2]="4" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.1.4(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all,-fixfilepath parallel=42 ' + DIRSTACK=() + DISTRIBUTION=bullseye + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='def96556d6484a6cac5514ae93fa5969' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1884695' - PS1='# ' - PS2='> ' + INVOCATION_ID=b1fc1aea7bc3462e934976ea906a9be6 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=2609101 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.KNjzRNOI/pbuilderrc_JpjV --distribution bullseye --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.KNjzRNOI/b1 --logfile b1/build.log golang-blitiri-go-spf_1.1.0-1.dsc' - SUDO_GID='111' - SUDO_UID='106' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://46.16.76.132:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.KNjzRNOI/pbuilderrc_NHPR --distribution bullseye --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bullseye-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.KNjzRNOI/b2 --logfile b2/build.log golang-blitiri-go-spf_1.1.0-1.dsc' + SUDO_GID=110 + SUDO_UID=105 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://213.165.73.152:3128 I: uname -a - Linux ionos11-amd64 6.1.0-23-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.99-1 (2024-07-15) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.7.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.12-1~bpo12+1 (2024-05-06) x86_64 GNU/Linux I: ls -l /bin total 5476 - -rwxr-xr-x 1 root root 1234376 Mar 27 2022 bash - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bunzip2 - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzcat - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Jul 20 2020 bzdiff - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4877 Sep 4 2019 bzexe - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Jul 20 2020 bzgrep - -rwxr-xr-x 3 root root 38984 Jul 20 2020 bzip2 - -rwxr-xr-x 1 root root 18424 Jul 20 2020 bzip2recover - lrwxrwxrwx 1 root root 6 Jul 20 2020 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Jul 20 2020 bzmore - -rwxr-xr-x 1 root root 43936 Sep 23 2020 cat - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chgrp - -rwxr-xr-x 1 root root 64448 Sep 23 2020 chmod - -rwxr-xr-x 1 root root 72672 Sep 23 2020 chown - -rwxr-xr-x 1 root root 151168 Sep 23 2020 cp - -rwxr-xr-x 1 root root 125560 Dec 10 2020 dash - -rwxr-xr-x 1 root root 113664 Sep 23 2020 date - -rwxr-xr-x 1 root root 80968 Sep 23 2020 dd - -rwxr-xr-x 1 root root 93936 Sep 23 2020 df - -rwxr-xr-x 1 root root 147176 Sep 23 2020 dir - -rwxr-xr-x 1 root root 84440 Mar 27 22:09 dmesg - lrwxrwxrwx 1 root root 8 Nov 6 2019 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Nov 6 2019 domainname -> hostname - -rwxr-xr-x 1 root root 39712 Sep 23 2020 echo - -rwxr-xr-x 1 root root 28 Jan 24 2023 egrep - -rwxr-xr-x 1 root root 39680 Sep 23 2020 false - -rwxr-xr-x 1 root root 28 Jan 24 2023 fgrep - -rwxr-xr-x 1 root root 69032 Mar 27 22:09 findmnt - -rwsr-xr-x 1 root root 34896 Feb 26 2021 fusermount - -rwxr-xr-x 1 root root 203072 Jan 24 2023 grep - -rwxr-xr-x 2 root root 2346 Apr 9 2022 gunzip - -rwxr-xr-x 1 root root 6447 Apr 9 2022 gzexe - -rwxr-xr-x 1 root root 98048 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 22600 Nov 6 2019 hostname - -rwxr-xr-x 1 root root 72840 Sep 23 2020 ln - -rwxr-xr-x 1 root root 56952 Feb 7 2020 login - -rwxr-xr-x 1 root root 147176 Sep 23 2020 ls - -rwxr-xr-x 1 root root 149736 Mar 27 22:09 lsblk - -rwxr-xr-x 1 root root 85184 Sep 23 2020 mkdir - -rwxr-xr-x 1 root root 76896 Sep 23 2020 mknod - -rwxr-xr-x 1 root root 48064 Sep 23 2020 mktemp - -rwxr-xr-x 1 root root 59632 Mar 27 22:09 more - -rwsr-xr-x 1 root root 55528 Mar 27 22:09 mount - -rwxr-xr-x 1 root root 18664 Mar 27 22:09 mountpoint - -rwxr-xr-x 1 root root 147080 Sep 23 2020 mv - lrwxrwxrwx 1 root root 8 Nov 6 2019 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Dec 16 2021 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 43872 Sep 23 2020 pwd - lrwxrwxrwx 1 root root 4 Mar 27 2022 rbash -> bash - -rwxr-xr-x 1 root root 52032 Sep 23 2020 readlink - -rwxr-xr-x 1 root root 72704 Sep 23 2020 rm - -rwxr-xr-x 1 root root 52032 Sep 23 2020 rmdir - -rwxr-xr-x 1 root root 27472 Sep 27 2020 run-parts - -rwxr-xr-x 1 root root 122224 Dec 22 2018 sed - lrwxrwxrwx 1 root root 4 Jul 6 21:26 sh -> dash - -rwxr-xr-x 1 root root 43808 Sep 23 2020 sleep - -rwxr-xr-x 1 root root 84928 Sep 23 2020 stty - -rwsr-xr-x 1 root root 71912 Mar 27 22:09 su - -rwxr-xr-x 1 root root 39744 Sep 23 2020 sync - -rwxr-xr-x 1 root root 531928 Jan 19 21:59 tar - -rwxr-xr-x 1 root root 14456 Sep 27 2020 tempfile - -rwxr-xr-x 1 root root 101408 Sep 23 2020 touch - -rwxr-xr-x 1 root root 39680 Sep 23 2020 true - -rwxr-xr-x 1 root root 14328 Feb 26 2021 ulockmgr_server - -rwsr-xr-x 1 root root 35040 Mar 27 22:09 umount - -rwxr-xr-x 1 root root 39744 Sep 23 2020 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 147176 Sep 23 2020 vdir - -rwxr-xr-x 1 root root 63744 Mar 27 22:09 wdctl - lrwxrwxrwx 1 root root 8 Nov 6 2019 ypdomainname -> hostname - -rwxr-xr-x 1 root root 1984 Apr 9 2022 zcat - -rwxr-xr-x 1 root root 1678 Apr 9 2022 zcmp - -rwxr-xr-x 1 root root 5898 Apr 9 2022 zdiff - -rwxr-xr-x 1 root root 29 Apr 9 2022 zegrep - -rwxr-xr-x 1 root root 29 Apr 9 2022 zfgrep - -rwxr-xr-x 1 root root 2081 Apr 9 2022 zforce - -rwxr-xr-x 1 root root 8049 Apr 9 2022 zgrep - -rwxr-xr-x 1 root root 2206 Apr 9 2022 zless - -rwxr-xr-x 1 root root 1842 Apr 9 2022 zmore - -rwxr-xr-x 1 root root 4577 Apr 9 2022 znew -I: user script /srv/workspace/pbuilder/1884695/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1234376 Mar 28 2022 bash + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bunzip2 + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzcat + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Jul 21 2020 bzdiff + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4877 Sep 5 2019 bzexe + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Jul 21 2020 bzgrep + -rwxr-xr-x 3 root root 38984 Jul 21 2020 bzip2 + -rwxr-xr-x 1 root root 18424 Jul 21 2020 bzip2recover + lrwxrwxrwx 1 root root 6 Jul 21 2020 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Jul 21 2020 bzmore + -rwxr-xr-x 1 root root 43936 Sep 24 2020 cat + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chgrp + -rwxr-xr-x 1 root root 64448 Sep 24 2020 chmod + -rwxr-xr-x 1 root root 72672 Sep 24 2020 chown + -rwxr-xr-x 1 root root 151168 Sep 24 2020 cp + -rwxr-xr-x 1 root root 125560 Dec 11 2020 dash + -rwxr-xr-x 1 root root 113664 Sep 24 2020 date + -rwxr-xr-x 1 root root 80968 Sep 24 2020 dd + -rwxr-xr-x 1 root root 93936 Sep 24 2020 df + -rwxr-xr-x 1 root root 147176 Sep 24 2020 dir + -rwxr-xr-x 1 root root 84440 Mar 29 2024 dmesg + lrwxrwxrwx 1 root root 8 Nov 8 2019 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Nov 8 2019 domainname -> hostname + -rwxr-xr-x 1 root root 39712 Sep 24 2020 echo + -rwxr-xr-x 1 root root 28 Jan 25 2023 egrep + -rwxr-xr-x 1 root root 39680 Sep 24 2020 false + -rwxr-xr-x 1 root root 28 Jan 25 2023 fgrep + -rwxr-xr-x 1 root root 69032 Mar 29 2024 findmnt + -rwsr-xr-x 1 root root 34896 Feb 27 2021 fusermount + -rwxr-xr-x 1 root root 203072 Jan 25 2023 grep + -rwxr-xr-x 2 root root 2346 Apr 10 2022 gunzip + -rwxr-xr-x 1 root root 6447 Apr 10 2022 gzexe + -rwxr-xr-x 1 root root 98048 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 22600 Nov 8 2019 hostname + -rwxr-xr-x 1 root root 72840 Sep 24 2020 ln + -rwxr-xr-x 1 root root 56952 Feb 8 2020 login + -rwxr-xr-x 1 root root 147176 Sep 24 2020 ls + -rwxr-xr-x 1 root root 149736 Mar 29 2024 lsblk + -rwxr-xr-x 1 root root 85184 Sep 24 2020 mkdir + -rwxr-xr-x 1 root root 76896 Sep 24 2020 mknod + -rwxr-xr-x 1 root root 48064 Sep 24 2020 mktemp + -rwxr-xr-x 1 root root 59632 Mar 29 2024 more + -rwsr-xr-x 1 root root 55528 Mar 29 2024 mount + -rwxr-xr-x 1 root root 18664 Mar 29 2024 mountpoint + -rwxr-xr-x 1 root root 147080 Sep 24 2020 mv + lrwxrwxrwx 1 root root 8 Nov 8 2019 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Dec 17 2021 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 43872 Sep 24 2020 pwd + lrwxrwxrwx 1 root root 4 Mar 28 2022 rbash -> bash + -rwxr-xr-x 1 root root 52032 Sep 24 2020 readlink + -rwxr-xr-x 1 root root 72704 Sep 24 2020 rm + -rwxr-xr-x 1 root root 52032 Sep 24 2020 rmdir + -rwxr-xr-x 1 root root 27472 Sep 28 2020 run-parts + -rwxr-xr-x 1 root root 122224 Dec 23 2018 sed + lrwxrwxrwx 1 root root 9 Aug 20 16:38 sh -> /bin/bash + -rwxr-xr-x 1 root root 43808 Sep 24 2020 sleep + -rwxr-xr-x 1 root root 84928 Sep 24 2020 stty + -rwsr-xr-x 1 root root 71912 Mar 29 2024 su + -rwxr-xr-x 1 root root 39744 Sep 24 2020 sync + -rwxr-xr-x 1 root root 531928 Jan 20 2024 tar + -rwxr-xr-x 1 root root 14456 Sep 28 2020 tempfile + -rwxr-xr-x 1 root root 101408 Sep 24 2020 touch + -rwxr-xr-x 1 root root 39680 Sep 24 2020 true + -rwxr-xr-x 1 root root 14328 Feb 27 2021 ulockmgr_server + -rwsr-xr-x 1 root root 35040 Mar 29 2024 umount + -rwxr-xr-x 1 root root 39744 Sep 24 2020 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 147176 Sep 24 2020 vdir + -rwxr-xr-x 1 root root 63744 Mar 29 2024 wdctl + lrwxrwxrwx 1 root root 8 Nov 8 2019 ypdomainname -> hostname + -rwxr-xr-x 1 root root 1984 Apr 10 2022 zcat + -rwxr-xr-x 1 root root 1678 Apr 10 2022 zcmp + -rwxr-xr-x 1 root root 5898 Apr 10 2022 zdiff + -rwxr-xr-x 1 root root 29 Apr 10 2022 zegrep + -rwxr-xr-x 1 root root 29 Apr 10 2022 zfgrep + -rwxr-xr-x 1 root root 2081 Apr 10 2022 zforce + -rwxr-xr-x 1 root root 8049 Apr 10 2022 zgrep + -rwxr-xr-x 1 root root 2206 Apr 10 2022 zless + -rwxr-xr-x 1 root root 1842 Apr 10 2022 zmore + -rwxr-xr-x 1 root root 4577 Apr 10 2022 znew +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -235,7 +266,7 @@ Get: 36 http://deb.debian.org/debian bullseye/main amd64 golang-go amd64 2:1.15~1 [23.9 kB] Get: 37 http://deb.debian.org/debian bullseye/main amd64 golang-any amd64 2:1.15~1 [4976 B] Get: 38 http://deb.debian.org/debian bullseye/main amd64 golang-gopkg-yaml.v2-dev all 2.4.0-1 [61.3 kB] -Fetched 79.7 MB in 5s (15.6 MB/s) +Fetched 79.7 MB in 1s (67.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package bsdextrautils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19711 files and directories currently installed.) @@ -403,7 +434,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/golang-blitiri-go-spf-1.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../golang-blitiri-go-spf_1.1.0-1_source.changes +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for bullseye +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/golang-blitiri-go-spf-1.1.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../golang-blitiri-go-spf_1.1.0-1_source.changes dpkg-buildpackage: info: source package golang-blitiri-go-spf dpkg-buildpackage: info: source version 1.1.0-1 dpkg-buildpackage: info: source distribution unstable @@ -421,21 +456,21 @@ dh_autoreconf -O--buildsystem=golang dh_auto_configure -O--buildsystem=golang dh_auto_build -O--buildsystem=golang - cd obj-x86_64-linux-gnu && go install -trimpath -v -p 20 blitiri.com.ar/go/spf + cd obj-x86_64-linux-gnu && go install -trimpath -v -p 42 blitiri.com.ar/go/spf internal/unsafeheader -runtime/internal/sys -unicode math/bits unicode/utf8 internal/race +runtime/internal/sys internal/nettrace -runtime/internal/atomic +unicode internal/cpu +runtime/internal/atomic sync/atomic runtime/cgo runtime/internal/math -internal/bytealg internal/testlog +internal/bytealg math runtime internal/reflectlite @@ -444,29 +479,29 @@ math/rand errors sort -strconv -io internal/oserror +io vendor/golang.org/x/net/dns/dnsmessage +strconv syscall -strings bytes +strings reflect regexp/syntax -regexp internal/syscall/unix time internal/syscall/execenv -internal/fmtsort -internal/poll +regexp context +internal/poll +internal/fmtsort os fmt net net/url blitiri.com.ar/go/spf dh_auto_test -O--buildsystem=golang - cd obj-x86_64-linux-gnu && go test -vet=off -v -p 20 blitiri.com.ar/go/spf + cd obj-x86_64-linux-gnu && go test -vet=off -v -p 42 blitiri.com.ar/go/spf === RUN TestBasic spf.go:114: check host "1.1.1.1" "domain" spf.go:160: check domain 1 @@ -941,7 +976,7 @@ spf.go:176: dns record "v=spf1 mx:tmpmx" spf.go:526: masks on "mx:tmpmx": ["mx:tmpmx" ":tmpmx" "tmpmx" "" "" "" ""] "tmpmx" {-1 -1} spf.go:284: fallback to neutral ---- PASS: TestDNSPermanentErrors (0.01s) +--- PASS: TestDNSPermanentErrors (0.00s) === RUN TestMacros spf.go:129: check host with sender "2001:db8::68" "helo" "user@domain" ("domain") spf.go:160: check domain 1 @@ -1108,69 +1143,27 @@ --- PASS: TestSimple (0.00s) === RUN TestRFC4408 yml_test.go:152: suite: Initial processing - yml_test.go:157: domain a.example.net - yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] + yml_test.go:157: domain example.com + yml_test.go:159: TIMEOUT yml_test.go:157: domain exp.example.net yml_test.go:159: TXT: [%{l}] - yml_test.go:157: domain a12345678901234567890123456789012345678901234567890123456789012.example.com - yml_test.go:159: SPF: [v=spf1 -all] - yml_test.go:157: domain hosed.example.com - yml_test.go:159: SPF: [v=spf1 a:garbage.example.net -all] - yml_test.go:157: domain hosed2.example.com - yml_test.go:159: SPF: [v=spf1 €a:example.net -all] yml_test.go:157: domain hosed3.example.com yml_test.go:159: SPF: [v=spf1 a:example.net –all] + yml_test.go:157: domain hosed2.example.com + yml_test.go:159: SPF: [v=spf1 €a:example.net -all] yml_test.go:157: domain nothosed.example.com yml_test.go:159: SPF: [v=spf1 a:example.net -all] yml_test.go:159: SPF: [–] - yml_test.go:157: domain example.com - yml_test.go:159: TIMEOUT yml_test.go:157: domain fine.example.com yml_test.go:159: TXT: [v=spf1 a -all] yml_test.go:157: domain example.net yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] - yml_test.go:225: test toolonglabel - yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com" ("A123456789012345678901234567890123456789012345678901234567890123.example.com") - spf.go:160: check A123456789012345678901234567890123456789012345678901234567890123.example.com 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [toolonglabel] - yml_test.go:225: test emptylabel - yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A...example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A...example.com" ("A...example.com") - spf.go:160: check A...example.com 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [emptylabel] - yml_test.go:225: test domain-literal - yml_test.go:227: checkhost 1.2.3.5 foo@[1.2.3.5] - spf.go:129: check host with sender "1.2.3.5" "OEMCOMPUTER" "foo@[1.2.3.5]" ("[1.2.3.5]") - spf.go:160: check [1.2.3.5] 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [domain-literal] - yml_test.go:225: test non-ascii-non-spf - yml_test.go:227: checkhost 1.2.3.4 foobar@nothosed.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nothosed.example.com" ("nothosed.example.com") - spf.go:160: check nothosed.example.com 1 - spf.go:176: dns record "v=spf1 a:example.net -all" - spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [non-ascii-non-spf] - yml_test.go:225: test non-ascii-result - yml_test.go:227: checkhost 1.2.3.4 foobar@hosed3.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@hosed3.example.com" ("hosed3.example.com") - spf.go:160: check hosed3.example.com 1 - spf.go:176: dns record "v=spf1 a:example.net \u0096all" - spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [non-ascii-result] - yml_test.go:225: test two-spaces - yml_test.go:227: checkhost 1.2.3.4 actually@fine.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "actually@fine.example.com" ("fine.example.com") - spf.go:160: check fine.example.com 1 - spf.go:176: dns record "v=spf1 a -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "fine.example.com" {-1 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [two-spaces] + yml_test.go:157: domain a.example.net + yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] + yml_test.go:157: domain a12345678901234567890123456789012345678901234567890123456789012.example.com + yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:157: domain hosed.example.com + yml_test.go:159: SPF: [v=spf1 a:garbage.example.net -all] yml_test.go:225: test longlabel yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com" ("A12345678901234567890123456789012345678901234567890123456789012.example.com") @@ -1197,7 +1190,55 @@ spf.go:176: dns record "v=spf1 -all exp=exp.example.net" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [nolocalpart] + yml_test.go:225: test non-ascii-non-spf + yml_test.go:227: checkhost 1.2.3.4 foobar@nothosed.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nothosed.example.com" ("nothosed.example.com") + spf.go:160: check nothosed.example.com 1 + spf.go:176: dns record "v=spf1 a:example.net -all" + spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [non-ascii-non-spf] + yml_test.go:225: test two-spaces + yml_test.go:227: checkhost 1.2.3.4 actually@fine.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "actually@fine.example.com" ("fine.example.com") + spf.go:160: check fine.example.com 1 + spf.go:176: dns record "v=spf1 a -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "fine.example.com" {-1 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [two-spaces] + yml_test.go:225: test toolonglabel + yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com" ("A123456789012345678901234567890123456789012345678901234567890123.example.com") + spf.go:160: check A123456789012345678901234567890123456789012345678901234567890123.example.com 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [toolonglabel] + yml_test.go:225: test emptylabel + yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A...example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A...example.com" ("A...example.com") + spf.go:160: check A...example.com 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [emptylabel] + yml_test.go:225: test domain-literal + yml_test.go:227: checkhost 1.2.3.5 foo@[1.2.3.5] + spf.go:129: check host with sender "1.2.3.5" "OEMCOMPUTER" "foo@[1.2.3.5]" ("[1.2.3.5]") + spf.go:160: check [1.2.3.5] 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [domain-literal] + yml_test.go:225: test non-ascii-result + yml_test.go:227: checkhost 1.2.3.4 foobar@hosed3.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@hosed3.example.com" ("hosed3.example.com") + spf.go:160: check hosed3.example.com 1 + spf.go:176: dns record "v=spf1 a:example.net \u0096all" + spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [non-ascii-result] yml_test.go:152: suite: Record lookup + yml_test.go:157: domain spfonly.example.net + yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:159: TXT: [NONE] + yml_test.go:157: domain spftimeout.example.net + yml_test.go:159: TXT: [v=spf1 -all] + yml_test.go:159: TIMEOUT yml_test.go:157: domain txttimeout.example.net yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: TXT: [NONE] @@ -1213,30 +1254,6 @@ yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:157: domain txtonly.example.net yml_test.go:159: TXT: [v=spf1 -all] - yml_test.go:157: domain spfonly.example.net - yml_test.go:159: SPF: [v=spf1 -all] - yml_test.go:159: TXT: [NONE] - yml_test.go:157: domain spftimeout.example.net - yml_test.go:159: TXT: [v=spf1 -all] - yml_test.go:159: TIMEOUT - yml_test.go:225: test txttimeout - yml_test.go:227: checkhost 1.2.3.4 foo@txttimeout.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@txttimeout.example.net" ("txttimeout.example.net") - spf.go:160: check txttimeout.example.net 1 - spf.go:164: dns temp error: lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [txttimeout] - yml_test.go:225: test nospftxttimeout - yml_test.go:227: checkhost 1.2.3.4 foo@nospftxttimeout.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@nospftxttimeout.example.net" ("nospftxttimeout.example.net") - spf.go:160: check nospftxttimeout.example.net 1 - spf.go:164: dns temp error: lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [nospftxttimeout] - yml_test.go:225: test alltimeout - yml_test.go:227: checkhost 1.2.3.4 foo@alltimeout.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@alltimeout.example.net" ("alltimeout.example.net") - spf.go:160: check alltimeout.example.net 1 - spf.go:164: dns temp error: lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [alltimeout] yml_test.go:225: test both yml_test.go:227: checkhost 1.2.3.4 foo@both.example.net spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@both.example.net" ("both.example.net") @@ -1263,7 +1280,36 @@ spf.go:160: check spftimeout.example.net 1 spf.go:164: dns temp error: lookup : test timeout error yml_test.go:234: success: temperror, lookup : test timeout error [spftimeout] + yml_test.go:225: test txttimeout + yml_test.go:227: checkhost 1.2.3.4 foo@txttimeout.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@txttimeout.example.net" ("txttimeout.example.net") + spf.go:160: check txttimeout.example.net 1 + spf.go:164: dns temp error: lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [txttimeout] + yml_test.go:225: test nospftxttimeout + yml_test.go:227: checkhost 1.2.3.4 foo@nospftxttimeout.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@nospftxttimeout.example.net" ("nospftxttimeout.example.net") + spf.go:160: check nospftxttimeout.example.net 1 + spf.go:164: dns temp error: lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [nospftxttimeout] + yml_test.go:225: test alltimeout + yml_test.go:227: checkhost 1.2.3.4 foo@alltimeout.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@alltimeout.example.net" ("alltimeout.example.net") + spf.go:160: check alltimeout.example.net 1 + spf.go:164: dns temp error: lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [alltimeout] yml_test.go:152: suite: Selecting records + yml_test.go:157: domain example3.com + yml_test.go:159: SPF: [v=spf10] + yml_test.go:159: SPF: [v=spf1 mx] + yml_test.go:159: MX: {0 mail.example1.com} + yml_test.go:157: domain example4.com + yml_test.go:159: SPF: [v=spf1 +all] + yml_test.go:159: TXT: [v=spf1 -all] + yml_test.go:157: domain example8.com + yml_test.go:159: SPF: [V=spf1 -all] + yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:159: TXT: [v=spf1 +all] yml_test.go:157: domain example5.com yml_test.go:159: SPF: [v=spf1 +all] yml_test.go:159: TXT: [v=spf1 -all] @@ -1274,32 +1320,14 @@ yml_test.go:157: domain example7.com yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: SPF: [v=spf1 -all] - yml_test.go:157: domain example8.com - yml_test.go:159: SPF: [V=spf1 -all] - yml_test.go:159: SPF: [v=spf1 -all] - yml_test.go:159: TXT: [v=spf1 +all] yml_test.go:157: domain example9.com yml_test.go:159: SPF: [v=SpF1 ~all] - yml_test.go:157: domain example3.com - yml_test.go:159: SPF: [v=spf10] - yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: MX: {0 mail.example1.com} - yml_test.go:157: domain mail.example1.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain example4.com - yml_test.go:159: SPF: [v=spf1 +all] - yml_test.go:159: TXT: [v=spf1 -all] yml_test.go:157: domain example1.com yml_test.go:159: SPF: [v=spf1] yml_test.go:157: domain example2.com yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:225: test empty - yml_test.go:227: checkhost 1.2.3.4 foo@example1.com - spf.go:129: check host with sender "1.2.3.4" "mail1.example1.com" "foo@example1.com" ("example1.com") - spf.go:160: check example1.com 1 - spf.go:176: dns record "v=spf1" - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [empty] + yml_test.go:157: domain mail.example1.com + yml_test.go:159: A: [1.2.3.4] yml_test.go:225: test nospace2 yml_test.go:227: checkhost 1.2.3.4 foo@example3.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example3.com" ("example3.com") @@ -1309,6 +1337,13 @@ spf.go:615: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [nospace2] + yml_test.go:225: test spfoverride + yml_test.go:227: checkhost 1.2.3.4 foo@example4.com + spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example4.com" ("example4.com") + spf.go:160: check example4.com 1 + spf.go:176: dns record "v=spf1 -all" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [spfoverride] yml_test.go:225: test multitxt1 yml_test.go:227: checkhost 1.2.3.4 foo@example5.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example5.com" ("example5.com") @@ -1333,13 +1368,13 @@ spf.go:160: check example2.com 1 spf.go:176: dns record "" yml_test.go:234: success: none, no DNS record found [nospace1] - yml_test.go:225: test spfoverride - yml_test.go:227: checkhost 1.2.3.4 foo@example4.com - spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example4.com" ("example4.com") - spf.go:160: check example4.com 1 - spf.go:176: dns record "v=spf1 -all" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [spfoverride] + yml_test.go:225: test empty + yml_test.go:227: checkhost 1.2.3.4 foo@example1.com + spf.go:129: check host with sender "1.2.3.4" "mail1.example1.com" "foo@example1.com" ("example1.com") + spf.go:160: check example1.com 1 + spf.go:176: dns record "v=spf1" + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [empty] yml_test.go:225: test multispf1 yml_test.go:227: checkhost 1.2.3.4 foo@example7.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example7.com" ("example7.com") @@ -1361,32 +1396,53 @@ spf.go:237: softfail matched all yml_test.go:234: success: softfail, matched 'all' [case-insensitive] yml_test.go:152: suite: Record evaluation - yml_test.go:157: domain t11.example.com - yml_test.go:159: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] - yml_test.go:157: domain t12.example.com - yml_test.go:159: SPF: [v=spf1 a:%{H}.bar -all] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain t3.example.com - yml_test.go:159: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] - yml_test.go:157: domain t10.example.com - yml_test.go:159: SPF: [v=spf1 a:mail.example...com -all] + yml_test.go:157: domain t1.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 -all moo] + yml_test.go:157: domain t2.example.com + yml_test.go:159: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:157: domain t5.example.com yml_test.go:159: SPF: [v=spf1 redirect=t5.example.com ~all] - yml_test.go:157: domain t6.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] yml_test.go:157: domain t7.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4] yml_test.go:157: domain t8.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect:t2.example.com] yml_test.go:157: domain t9.example.com yml_test.go:159: SPF: [v=spf1 a:foo-bar -all] - yml_test.go:157: domain t1.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 -all moo] - yml_test.go:157: domain t2.example.com - yml_test.go:159: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:157: domain t10.example.com + yml_test.go:159: SPF: [v=spf1 a:mail.example...com -all] + yml_test.go:157: domain t11.example.com + yml_test.go:159: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain t3.example.com + yml_test.go:159: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:157: domain t4.example.com yml_test.go:159: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:157: domain t6.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] + yml_test.go:157: domain t12.example.com + yml_test.go:159: SPF: [v=spf1 a:%{H}.bar -all] + yml_test.go:225: test modifier-charset-bad2 + yml_test.go:227: checkhost 1.2.3.4 foo@t4.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t4.example.com" ("t4.example.com") + spf.go:160: check t4.example.com 1 + spf.go:176: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [modifier-charset-bad2] + yml_test.go:225: test redirect-after-mechanisms1 + yml_test.go:227: checkhost 1.2.3.4 foo@t5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t5.example.com" ("t5.example.com") + spf.go:160: check t5.example.com 1 + spf.go:176: dns record "v=spf1 redirect=t5.example.com ~all" + spf.go:237: softfail matched all + yml_test.go:234: success: softfail, matched 'all' [redirect-after-mechanisms1] + yml_test.go:225: test default-result + yml_test.go:227: checkhost 1.2.3.5 foo@t7.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@t7.example.com" ("t7.example.com") + spf.go:160: check t7.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4" + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [default-result] yml_test.go:225: test invalid-domain-empty-label yml_test.go:227: checkhost 1.2.3.4 foo@t10.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t10.example.com" ("t10.example.com") @@ -1403,27 +1459,6 @@ spf.go:526: masks on "a:a123456789012345678901234567890123456789012345678901234567890123.example.com": ["a:a123456789012345678901234567890123456789012345678901234567890123.example.com" ":a123456789012345678901234567890123456789012345678901234567890123.example.com" "a123456789012345678901234567890123456789012345678901234567890123.example.com" "" "" "" ""] "a123456789012345678901234567890123456789012345678901234567890123.example.com" {-1 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [invalid-domain-long] - yml_test.go:225: test modifier-charset-bad1 - yml_test.go:227: checkhost 1.2.3.4 foo@t3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t3.example.com" ("t3.example.com") - spf.go:160: check t3.example.com 1 - spf.go:176: dns record "v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [modifier-charset-bad1] - yml_test.go:225: test modifier-charset-bad2 - yml_test.go:227: checkhost 1.2.3.4 foo@t4.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t4.example.com" ("t4.example.com") - spf.go:160: check t4.example.com 1 - spf.go:176: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [modifier-charset-bad2] - yml_test.go:225: test default-result - yml_test.go:227: checkhost 1.2.3.5 foo@t7.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@t7.example.com" ("t7.example.com") - spf.go:160: check t7.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4" - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [default-result] yml_test.go:225: test invalid-domain-long-via-macro yml_test.go:227: checkhost 1.2.3.4 foo@t12.example.com spf.go:129: check host with sender "1.2.3.4" "%%%%%%%%%%%%%%%%%%%%%%" "foo@t12.example.com" ("t12.example.com") @@ -1434,14 +1469,18 @@ spf.go:805: macro expanded "%{H}.bar" to "t12.example.com.bar" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [invalid-domain-long-via-macro] - yml_test.go:225: test redirect-after-mechanisms1 - yml_test.go:227: checkhost 1.2.3.4 foo@t5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t5.example.com" ("t5.example.com") - spf.go:160: check t5.example.com 1 - spf.go:176: dns record "v=spf1 redirect=t5.example.com ~all" - spf.go:237: softfail matched all - yml_test.go:234: success: softfail, matched 'all' [redirect-after-mechanisms1] + yml_test.go:225: test modifier-charset-bad1 + yml_test.go:227: checkhost 1.2.3.4 foo@t3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t3.example.com" ("t3.example.com") + spf.go:160: check t3.example.com 1 + spf.go:176: dns record "v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [modifier-charset-bad1] yml_test.go:152: suite: ALL mechanism syntax + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 -all/8] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 ?all] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 all -all] yml_test.go:157: domain mail.example.com @@ -1450,10 +1489,20 @@ yml_test.go:159: SPF: [v=spf1 -all.] yml_test.go:157: domain e2.example.com yml_test.go:159: SPF: [v=spf1 -all:foobar] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 -all/8] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 ?all] + yml_test.go:225: test all-neutral + yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 ?all" + spf.go:237: neutral matched all + yml_test.go:234: success: neutral, matched 'all' [all-neutral] + yml_test.go:225: test all-double + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 all -all" + spf.go:237: pass matched all + yml_test.go:234: success: pass, matched 'all' [all-double] yml_test.go:225: test all-dot yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -1475,31 +1524,7 @@ spf.go:176: dns record "v=spf1 -all/8" spf.go:277: permerror, unknown field yml_test.go:234: success: permerror, unknown field [all-cidr] - yml_test.go:225: test all-neutral - yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 ?all" - spf.go:237: neutral matched all - yml_test.go:234: success: neutral, matched 'all' [all-neutral] - yml_test.go:225: test all-double - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 all -all" - spf.go:237: pass matched all - yml_test.go:234: success: pass, matched 'all' [all-double] yml_test.go:152: suite: PTR mechanism syntax - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 ptr -all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 ptr:] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ptr/0 -all] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 ptr:example.com -all] yml_test.go:157: domain 4.3.2.1.in-addr.arpa yml_test.go:159: PTR: [e3.example.com] yml_test.go:159: PTR: [e4.example.com] @@ -1510,6 +1535,38 @@ yml_test.go:159: SPF: [v=spf1 ptr -all] yml_test.go:159: A: [1.2.3.4] yml_test.go:159: AAAA: [CAFE:BABE::1] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 ptr -all] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 ptr:] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ptr/0 -all] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 ptr:example.com -all] + yml_test.go:225: test ptr-match-implicit + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 ptr -all" + spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.4" "cafe:babe::1"] + spf.go:398: ptr forward resolution "e4.example.com." -> [] + spf.go:398: ptr forward resolution "mail.example.com." -> ["1.2.3.4"] + spf.go:407: ptr evaluating "e3.example.com" in ["e3.example.com." "mail.example.com."] + spf.go:261: ptr ok, pass matched 'ptr' + yml_test.go:234: success: pass, matched 'ptr' [ptr-match-implicit] + yml_test.go:225: test ptr-nomatch-invalid + yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 ptr -all" + spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.4" "cafe:babe::1"] + spf.go:398: ptr forward resolution "e4.example.com." -> [] + spf.go:398: ptr forward resolution "mail.example.com." -> ["1.2.3.4"] + spf.go:407: ptr evaluating "e4.example.com" in ["e3.example.com." "mail.example.com."] + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [ptr-nomatch-invalid] yml_test.go:225: test ptr-match-ip6 yml_test.go:227: checkhost cafe:babe::1 foo@e3.example.com spf.go:129: check host with sender "cafe:babe::1" "mail.example.com" "foo@e3.example.com" ("e3.example.com") @@ -1544,146 +1601,76 @@ spf.go:407: ptr evaluating "example.com" in ["e3.example.com." "mail.example.com."] spf.go:261: ptr ok, pass matched 'ptr' yml_test.go:234: success: pass, matched 'ptr' [ptr-match-target] - yml_test.go:225: test ptr-match-implicit - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 ptr -all" - spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.4" "cafe:babe::1"] - spf.go:398: ptr forward resolution "e4.example.com." -> [] - spf.go:398: ptr forward resolution "mail.example.com." -> ["1.2.3.4"] - spf.go:407: ptr evaluating "e3.example.com" in ["e3.example.com." "mail.example.com."] - spf.go:261: ptr ok, pass matched 'ptr' - yml_test.go:234: success: pass, matched 'ptr' [ptr-match-implicit] - yml_test.go:225: test ptr-nomatch-invalid - yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 ptr -all" - spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.4" "cafe:babe::1"] - spf.go:398: ptr forward resolution "e4.example.com." -> [] - spf.go:398: ptr forward resolution "mail.example.com." -> ["1.2.3.4"] - spf.go:407: ptr evaluating "e4.example.com" in ["e3.example.com." "mail.example.com."] - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [ptr-nomatch-invalid] yml_test.go:152: suite: A mechanism syntax - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 a:111.222.33.44] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 a:abc.123] - yml_test.go:157: domain e11.example.com - yml_test.go:159: SPF: [v=spf1 a:foo:bar/baz.example.com] - yml_test.go:157: domain foo:bar/baz.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 a:example.-com] - yml_test.go:157: domain e2.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: AAAA: [1234::2] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.com] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 a//33 -all] + yml_test.go:157: domain e10.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.com/24] + yml_test.go:157: domain e1.example.com yml_test.go:159: SPF: [v=spf1 a/0 -all] - yml_test.go:157: domain e5b.example.com - yml_test.go:159: SPF: [v=spf1 a:museum.] - yml_test.go:157: domain e8e.example.com - yml_test.go:159: A: [1.2.3.5] - yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:159: SPF: [v=spf1 a/24/64 -all] - yml_test.go:157: domain mail.example.com + yml_test.go:157: domain foo.example.xn--zckzah yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e2a.example.com yml_test.go:159: AAAA: [1234::1] yml_test.go:159: SPF: [v=spf1 a//0 -all] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 a//129 -all] - yml_test.go:157: domain e8b.example.com - yml_test.go:159: A: [1.2.3.5] - yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:159: SPF: [v=spf1 a//64 -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.com] - yml_test.go:157: domain e8a.example.com - yml_test.go:159: A: [1.2.3.5] - yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:159: SPF: [v=spf1 a/24 -all] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 a:example.com:8080] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 a/0 -all] + yml_test.go:157: domain e5b.example.com + yml_test.go:159: SPF: [v=spf1 a:museum.] + yml_test.go:157: domain e14.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.xn--zckzah -all] yml_test.go:157: domain ipv6.example.com yml_test.go:159: AAAA: [1234::1] yml_test.go:159: A: [1.1.1.1] yml_test.go:159: SPF: [v=spf1 a -all] - yml_test.go:157: domain e6a.example.com - yml_test.go:159: SPF: [v=spf1 a/33 -all] yml_test.go:157: domain e8.example.com yml_test.go:159: A: [1.2.3.5] yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] yml_test.go:159: SPF: [v=spf1 a/24//64 -all] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 a//129 -all] yml_test.go:157: domain e13.example.com yml_test.go:159: SPF: [v=spf1 a:] - yml_test.go:157: domain e5a.example.com - yml_test.go:159: SPF: [v=spf1 a:museum] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e8a.example.com + yml_test.go:159: A: [1.2.3.5] + yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:159: SPF: [v=spf1 a/24 -all] + yml_test.go:157: domain e11.example.com + yml_test.go:159: SPF: [v=spf1 a:foo:bar/baz.example.com] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 a:example.-com] + yml_test.go:157: domain e2.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: AAAA: [1234::2] + yml_test.go:159: SPF: [v=spf1 a/0 -all] yml_test.go:157: domain foo.example.com yml_test.go:159: A: [1.1.1.1] yml_test.go:159: A: [1.2.3.5] - yml_test.go:157: domain e14.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.xn--zckzah -all] + yml_test.go:157: domain foo:bar/baz.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e8e.example.com + yml_test.go:159: A: [1.2.3.5] + yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:159: SPF: [v=spf1 a/24/64 -all] + yml_test.go:157: domain e8b.example.com + yml_test.go:159: A: [1.2.3.5] + yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:159: SPF: [v=spf1 a//64 -all] + yml_test.go:157: domain e5a.example.com + yml_test.go:159: SPF: [v=spf1 a:museum] yml_test.go:157: domain e2b.example.com yml_test.go:159: A: [1.1.1.1] yml_test.go:159: SPF: [v=spf1 a//0 -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 a//33 -all] - yml_test.go:157: domain e10.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.com/24] - yml_test.go:157: domain foo.example.xn--zckzah - yml_test.go:159: A: [1.2.3.4] - yml_test.go:225: test a-cidr6-0-nxdomain - yml_test.go:227: checkhost 1234::1 foo@e2b.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") - spf.go:160: check e2b.example.com 1 - spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-nxdomain] - yml_test.go:225: test a-multi-ip1 - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 a:foo.example.com/24" - spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} - spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-multi-ip1] - yml_test.go:225: test a-bad-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 a//129 -all" - spf.go:246: a ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [a-bad-cidr6] - yml_test.go:225: test a-dual-cidr-ip6-default - yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com - spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8a.example.com" ("e8a.example.com") - spf.go:160: check e8a.example.com 1 - spf.go:176: dns record "v=spf1 a/24 -all" - spf.go:526: masks on "a/24": ["a/24" "" "" "/24" "24" "" ""] "e8a.example.com" {24 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip6-default] - yml_test.go:225: test a-cidr6-0-ip4mapped - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4mapped] - yml_test.go:225: test a-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 a//33 -all" - spf.go:526: masks on "a//33": ["a//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 a:111.222.33.44] + yml_test.go:157: domain e6a.example.com + yml_test.go:159: SPF: [v=spf1 a/33 -all] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 a:example.com:8080] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 a:abc.123] yml_test.go:225: test a-dual-cidr-ip4-err yml_test.go:227: checkhost 1.2.3.4 foo@e8e.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8e.example.com" ("e8e.example.com") @@ -1692,6 +1679,14 @@ spf.go:526: masks on "a/24/64": [] "e8e.example.com" {-1 -1} spf.go:246: a ok, permerror invalid mask yml_test.go:234: success: permerror, invalid mask [a-dual-cidr-ip4-err] + yml_test.go:225: test a-dual-cidr-ip4-default + yml_test.go:227: checkhost 1.2.3.4 foo@e8b.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8b.example.com" ("e8b.example.com") + spf.go:160: check e8b.example.com 1 + spf.go:176: dns record "v=spf1 a//64 -all" + spf.go:526: masks on "a//64": ["a//64" "" "" "" "" "//64" "64"] "e8b.example.com" {-1 64} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip4-default] yml_test.go:225: test a-nxdomain yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -1700,6 +1695,71 @@ spf.go:526: masks on "a/0": ["a/0" "" "" "/0" "0" "" ""] "e1.example.com" {0 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [a-nxdomain] + yml_test.go:225: test a-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 a//33 -all" + spf.go:526: masks on "a//33": ["a//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr6] + yml_test.go:225: test a-cidr6-0-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 a//0 -all" + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4] + yml_test.go:225: test a-bad-cidr4 + yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") + spf.go:160: check e6a.example.com 1 + spf.go:176: dns record "v=spf1 a/33 -all" + spf.go:246: a ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [a-bad-cidr4] + yml_test.go:225: test a-cidr6-0-ip4mapped + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 a//0 -all" + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4mapped] + yml_test.go:225: test a-dash-in-toplabel + yml_test.go:227: checkhost 1.2.3.4 foo@e14.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e14.example.com" ("e14.example.com") + spf.go:160: check e14.example.com 1 + spf.go:176: dns record "v=spf1 a:foo.example.xn--zckzah -all" + spf.go:526: masks on "a:foo.example.xn--zckzah": ["a:foo.example.xn--zckzah" ":foo.example.xn--zckzah" "foo.example.xn--zckzah" "" "" "" ""] "foo.example.xn--zckzah" {-1 -1} + spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [a-dash-in-toplabel] + yml_test.go:225: test a-dual-cidr-ip6-default + yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com + spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8a.example.com" ("e8a.example.com") + spf.go:160: check e8a.example.com 1 + spf.go:176: dns record "v=spf1 a/24 -all" + spf.go:526: masks on "a/24": ["a/24" "" "" "/24" "24" "" ""] "e8a.example.com" {24 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip6-default] + yml_test.go:225: test a-cidr6-0-nxdomain + yml_test.go:227: checkhost 1234::1 foo@e2b.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") + spf.go:160: check e2b.example.com 1 + spf.go:176: dns record "v=spf1 a//0 -all" + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-nxdomain] + yml_test.go:225: test a-multi-ip2 + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 a:foo.example.com/24" + spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} + spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [a-multi-ip2] yml_test.go:225: test a-cidr4-0 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -1709,14 +1769,6 @@ spf.go:561: mx matched 1.2.3.4, 1.1.1.1, {0 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-cidr4-0] - yml_test.go:225: test a-cidr4-0-ip6 - yml_test.go:227: checkhost 1234::1 foo@e2.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 a/0 -all" - spf.go:526: masks on "a/0": ["a/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr4-0-ip6] yml_test.go:225: test a-ip6-dualstack yml_test.go:227: checkhost 1234::1 foo@ipv6.example.com spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@ipv6.example.com" ("ipv6.example.com") @@ -1726,6 +1778,13 @@ spf.go:561: mx matched 1234::1, 1234::1, {-1 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-ip6-dualstack] + yml_test.go:225: test a-bad-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 a//129 -all" + spf.go:246: a ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [a-bad-cidr6] yml_test.go:225: test a-dual-cidr-ip4-match yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -1735,7 +1794,16 @@ spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 64} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip4-match] - yml_test.go:225: test a-multi-ip2 + yml_test.go:225: test a-dual-cidr-ip6-match + yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com + spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8.example.com" ("e8.example.com") + spf.go:160: check e8.example.com 1 + spf.go:176: dns record "v=spf1 a/24//64 -all" + spf.go:526: masks on "a/24//64": ["a/24//64" "" "" "/24" "24" "//64" "64"] "e8.example.com" {24 64} + spf.go:561: mx matched 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, {24 64} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip6-match] + yml_test.go:225: test a-multi-ip1 yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") spf.go:160: check e10.example.com 1 @@ -1743,7 +1811,15 @@ spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-multi-ip2] + yml_test.go:234: success: pass, matched 'a' [a-multi-ip1] + yml_test.go:225: test a-cidr4-0-ip6 + yml_test.go:227: checkhost 1234::1 foo@e2.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 a/0 -all" + spf.go:526: masks on "a/0": ["a/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr4-0-ip6] yml_test.go:225: test a-cidr6-0-ip6 yml_test.go:227: checkhost 1234::1 foo@e2a.example.com spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") @@ -1753,88 +1829,65 @@ spf.go:561: mx matched 1234::1, 1234::1, {-1 0} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-cidr6-0-ip6] - yml_test.go:225: test a-dual-cidr-ip6-match - yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com - spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8.example.com" ("e8.example.com") - spf.go:160: check e8.example.com 1 - spf.go:176: dns record "v=spf1 a/24//64 -all" - spf.go:526: masks on "a/24//64": ["a/24//64" "" "" "/24" "24" "//64" "64"] "e8.example.com" {24 64} - spf.go:561: mx matched 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, {24 64} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip6-match] - yml_test.go:225: test a-cidr6-0-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4] - yml_test.go:225: test a-dual-cidr-ip4-default - yml_test.go:227: checkhost 1.2.3.4 foo@e8b.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8b.example.com" ("e8b.example.com") - spf.go:160: check e8b.example.com 1 - spf.go:176: dns record "v=spf1 a//64 -all" - spf.go:526: masks on "a//64": ["a//64" "" "" "" "" "//64" "64"] "e8b.example.com" {-1 64} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip4-default] - yml_test.go:225: test a-dash-in-toplabel - yml_test.go:227: checkhost 1.2.3.4 foo@e14.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e14.example.com" ("e14.example.com") - spf.go:160: check e14.example.com 1 - spf.go:176: dns record "v=spf1 a:foo.example.xn--zckzah -all" - spf.go:526: masks on "a:foo.example.xn--zckzah": ["a:foo.example.xn--zckzah" ":foo.example.xn--zckzah" "foo.example.xn--zckzah" "" "" "" ""] "foo.example.xn--zckzah" {-1 -1} - spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-dash-in-toplabel] - yml_test.go:225: test a-bad-cidr4 - yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") - spf.go:160: check e6a.example.com 1 - spf.go:176: dns record "v=spf1 a/33 -all" - spf.go:246: a ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [a-bad-cidr4] yml_test.go:152: suite: Include mechanism semantics and syntax - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 include:ip8.example.com -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 include +all] - yml_test.go:157: domain ip7.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.7 ?all] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 include:ip5.example.com/24 -all] + yml_test.go:157: domain ip6.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.6 ~all] yml_test.go:157: domain ip8.example.com yml_test.go:159: TIMEOUT yml_test.go:157: domain erehwon.example.com yml_test.go:159: TXT: [v=spfl am not an SPF record] yml_test.go:157: domain e2.example.com yml_test.go:159: SPF: [v=spf1 include:ip6.example.com all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 include:ip7.example.com -all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 include:e6.example.com -all] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 include:erehwon.example.com -all] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 include:ip8.example.com -all] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 include +all] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain ip5.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.5 -all] - yml_test.go:157: domain ip6.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.6 ~all] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 include:ip5.example.com ~all] + yml_test.go:157: domain ip7.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.7 ?all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 include:ip7.example.com -all] yml_test.go:157: domain e8.example.com yml_test.go:159: SPF: [v=spf1 include: -all] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:225: test include-softfail - yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 include:ip6.example.com all" - spf.go:160: check ip6.example.com 2 - spf.go:176: dns record "v=spf1 ip4:1.2.3.6 ~all" + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 include:ip5.example.com ~all] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 include:e6.example.com -all] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 include:ip5.example.com/24 -all] + yml_test.go:225: test include-permerror + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 include:e6.example.com -all" + spf.go:160: check e6.example.com 2 + spf.go:176: dns record "v=spf1 include +all" + spf.go:277: permerror, unknown field + spf.go:241: include ok, permerror unknown field + yml_test.go:234: success: permerror, unknown field [include-permerror] + yml_test.go:225: test include-cidr + yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") + spf.go:160: check e9.example.com 1 + spf.go:176: dns record "v=spf1 include:ip5.example.com/24 -all" + spf.go:659: macro contains / + spf.go:241: include ok, permerror invalid macro + yml_test.go:234: success: permerror, invalid macro [include-cidr] + yml_test.go:225: test include-fail + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 include:ip5.example.com ~all" + spf.go:160: check ip5.example.com 2 + spf.go:176: dns record "v=spf1 ip4:1.2.3.5 -all" + spf.go:237: fail matched all spf.go:237: softfail matched all - spf.go:237: pass matched all - yml_test.go:234: success: pass, matched 'all' [include-softfail] + yml_test.go:234: success: softfail, matched 'all' [include-fail] yml_test.go:225: test include-neutral yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") @@ -1854,35 +1907,25 @@ spf.go:164: dns temp error: lookup : test timeout error spf.go:241: include ok, temperror lookup : test timeout error yml_test.go:234: success: temperror, lookup : test timeout error [include-temperror] - yml_test.go:225: test include-permerror - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 include:e6.example.com -all" - spf.go:160: check e6.example.com 2 - spf.go:176: dns record "v=spf1 include +all" - spf.go:277: permerror, unknown field - spf.go:241: include ok, permerror unknown field - yml_test.go:234: success: permerror, unknown field [include-permerror] - yml_test.go:225: test include-none - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 include:erehwon.example.com -all" - spf.go:160: check erehwon.example.com 2 + yml_test.go:225: test include-empty-domain + yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") + spf.go:160: check e8.example.com 1 + spf.go:176: dns record "v=spf1 include: -all" + spf.go:160: check 2 spf.go:176: dns record "" spf.go:241: include ok, permerror no DNS record found - yml_test.go:234: success: permerror, no DNS record found [include-none] - yml_test.go:225: test include-fail - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 include:ip5.example.com ~all" - spf.go:160: check ip5.example.com 2 - spf.go:176: dns record "v=spf1 ip4:1.2.3.5 -all" - spf.go:237: fail matched all + yml_test.go:234: success: permerror, no DNS record found [include-empty-domain] + yml_test.go:225: test include-softfail + yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 include:ip6.example.com all" + spf.go:160: check ip6.example.com 2 + spf.go:176: dns record "v=spf1 ip4:1.2.3.6 ~all" spf.go:237: softfail matched all - yml_test.go:234: success: softfail, matched 'all' [include-fail] + spf.go:237: pass matched all + yml_test.go:234: success: pass, matched 'all' [include-softfail] yml_test.go:225: test include-syntax-error yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") @@ -1890,75 +1933,83 @@ spf.go:176: dns record "v=spf1 include +all" spf.go:277: permerror, unknown field yml_test.go:234: success: permerror, unknown field [include-syntax-error] - yml_test.go:225: test include-cidr - yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") - spf.go:160: check e9.example.com 1 - spf.go:176: dns record "v=spf1 include:ip5.example.com/24 -all" - spf.go:659: macro contains / - spf.go:241: include ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [include-cidr] - yml_test.go:225: test include-empty-domain - yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") - spf.go:160: check e8.example.com 1 - spf.go:176: dns record "v=spf1 include: -all" - spf.go:160: check 2 + yml_test.go:225: test include-none + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 include:erehwon.example.com -all" + spf.go:160: check erehwon.example.com 2 spf.go:176: dns record "" spf.go:241: include ok, permerror no DNS record found - yml_test.go:234: success: permerror, no DNS record found [include-empty-domain] + yml_test.go:234: success: permerror, no DNS record found [include-none] yml_test.go:152: suite: MX mechanism syntax + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 mx//33 -all] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 mx//129 -all] + yml_test.go:157: domain e10.example.com + yml_test.go:159: SPF: [v=spf1 mx:foo.example.com/24] + yml_test.go:157: domain foo1.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 mx/0 -all] + yml_test.go:159: MX: {0 e1.example.com} + yml_test.go:157: domain e2.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: AAAA: [1234::2] + yml_test.go:159: MX: {0 e2.example.com} + yml_test.go:159: SPF: [v=spf1 mx/0 -all] + yml_test.go:157: domain foo.example.com + yml_test.go:159: MX: {0 foo1.example.com} yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] yml_test.go:159: MX: {0 } yml_test.go:159: SPF: [v=spf1 mx] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 mx:abc.123] + yml_test.go:157: domain e6a.example.com + yml_test.go:159: SPF: [v=spf1 mx/33 -all] + yml_test.go:157: domain foo:bar/baz.example.com + yml_test.go:159: MX: {0 foo:bar/baz.example.com} + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 mx:example.-com] yml_test.go:157: domain e2a.example.com yml_test.go:159: AAAA: [1234::1] yml_test.go:159: MX: {0 e2a.example.com} yml_test.go:159: SPF: [v=spf1 mx//0 -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 mx:foo.example.com] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 mx] yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e13.example.com - yml_test.go:159: SPF: [v=spf1 mx: -all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 mx:abc.123] yml_test.go:157: domain e9.example.com yml_test.go:159: SPF: [v=spf1 mx:example.com:8080] - yml_test.go:157: domain foo.example.com - yml_test.go:159: MX: {0 foo1.example.com} yml_test.go:157: domain e11.example.com yml_test.go:159: SPF: [v=spf1 mx:foo:bar/baz.example.com] - yml_test.go:157: domain foo:bar/baz.example.com - yml_test.go:159: MX: {0 foo:bar/baz.example.com} - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 mx:example.-com] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 mx/0 -all] - yml_test.go:159: MX: {0 e1.example.com} - yml_test.go:157: domain e2.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: AAAA: [1234::2] - yml_test.go:159: MX: {0 e2.example.com} - yml_test.go:159: SPF: [v=spf1 mx/0 -all] - yml_test.go:157: domain e6a.example.com - yml_test.go:159: SPF: [v=spf1 mx/33 -all] - yml_test.go:157: domain foo1.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain e13.example.com + yml_test.go:159: SPF: [v=spf1 mx: -all] yml_test.go:157: domain e2b.example.com yml_test.go:159: A: [1.1.1.1] yml_test.go:159: MX: {0 e2b.example.com} yml_test.go:159: SPF: [v=spf1 mx//0 -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 mx//33 -all] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 mx//129 -all] - yml_test.go:157: domain e10.example.com - yml_test.go:159: SPF: [v=spf1 mx:foo.example.com/24] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 mx:foo.example.com] + yml_test.go:225: test mx-cidr6-0-ip4mapped + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 mx//0 -all" + spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4mapped] + yml_test.go:225: test mx-cidr6-0-nxdomain + yml_test.go:227: checkhost 1234::1 foo@e2b.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") + spf.go:160: check e2b.example.com 1 + spf.go:176: dns record "v=spf1 mx//0 -all" + spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-nxdomain] yml_test.go:225: test mx-empty yml_test.go:227: checkhost 1.2.3.4 spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "" ("mail.example.com") @@ -1967,6 +2018,30 @@ spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "mail.example.com" {-1 -1} spf.go:284: fallback to neutral yml_test.go:234: success: neutral, [mx-empty] + yml_test.go:225: test mx-bad-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 mx//129 -all" + spf.go:251: mx ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [mx-bad-cidr6] + yml_test.go:225: test mx-multi-ip2 + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 mx:foo.example.com/24" + spf.go:526: masks on "mx:foo.example.com/24": ["mx:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} + spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} + spf.go:251: mx ok, pass matched 'mx' + yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip2] + yml_test.go:225: test mx-nxdomain + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 mx/0 -all" + spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e1.example.com" {0 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-nxdomain] yml_test.go:225: test mx-implicit yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") @@ -1991,6 +2066,14 @@ spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [mx-cidr4-0-ip6] + yml_test.go:225: test mx-cidr6-0-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 mx//0 -all" + spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4] yml_test.go:225: test mx-cidr6-0-ip6 yml_test.go:227: checkhost 1234::1 foo@e2a.example.com spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") @@ -2000,22 +2083,6 @@ spf.go:615: mx matched 1234::1, 1234::1, {-1 0} spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [mx-cidr6-0-ip6] - yml_test.go:225: test mx-cidr6-0-nxdomain - yml_test.go:227: checkhost 1234::1 foo@e2b.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") - spf.go:160: check e2b.example.com 1 - spf.go:176: dns record "v=spf1 mx//0 -all" - spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-nxdomain] - yml_test.go:225: test mx-cidr6-0-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 mx//0 -all" - spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4] yml_test.go:225: test mx-bad-cidr4 yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") @@ -2023,13 +2090,6 @@ spf.go:176: dns record "v=spf1 mx/33 -all" spf.go:251: mx ok, permerror invalid mask yml_test.go:234: success: permerror, invalid mask [mx-bad-cidr4] - yml_test.go:225: test mx-bad-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 mx//129 -all" - spf.go:251: mx ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [mx-bad-cidr6] yml_test.go:225: test mx-multi-ip1 yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") @@ -2039,31 +2099,6 @@ spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip1] - yml_test.go:225: test mx-multi-ip2 - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 mx:foo.example.com/24" - spf.go:526: masks on "mx:foo.example.com/24": ["mx:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} - spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} - spf.go:251: mx ok, pass matched 'mx' - yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip2] - yml_test.go:225: test mx-cidr6-0-ip4mapped - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 mx//0 -all" - spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4mapped] - yml_test.go:225: test mx-nxdomain - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 mx/0 -all" - spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e1.example.com" {0 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-nxdomain] yml_test.go:225: test mx-cidr4-0 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -2074,24 +2109,31 @@ spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [mx-cidr4-0] yml_test.go:152: suite: EXISTS mechanism syntax + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain mail6.example.com + yml_test.go:159: AAAA: [CAFE:BABE::4] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 exists:mail6.example.com -all] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 exists:err.example.com -all] - yml_test.go:157: domain mail6.example.com - yml_test.go:159: AAAA: [CAFE:BABE::4] + yml_test.go:157: domain err.example.com + yml_test.go:159: TIMEOUT yml_test.go:157: domain e1.example.com yml_test.go:159: SPF: [v=spf1 exists:] yml_test.go:157: domain e2.example.com yml_test.go:159: SPF: [v=spf1 exists] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 exists:mail.example.com] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain err.example.com - yml_test.go:159: TIMEOUT yml_test.go:157: domain e3.example.com yml_test.go:159: SPF: [v=spf1 exists:mail.example.com/24] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 exists:mail.example.com] + yml_test.go:225: test exists-dnserr + yml_test.go:227: checkhost cafe:babe::3 foo@e6.example.com + spf.go:129: check host with sender "cafe:babe::3" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 exists:err.example.com -all" + spf.go:266: exists ok, temperror lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [exists-dnserr] yml_test.go:225: test exists-empty-domain yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -2135,34 +2177,34 @@ spf.go:176: dns record "v=spf1 exists:mail6.example.com -all" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exists-ip6only] - yml_test.go:225: test exists-dnserr - yml_test.go:227: checkhost cafe:babe::3 foo@e6.example.com - spf.go:129: check host with sender "cafe:babe::3" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 exists:err.example.com -all" - spf.go:266: exists ok, temperror lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [exists-dnserr] yml_test.go:152: suite: IP4 mechanism syntax - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1/0 -all] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/032 -all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 ip4] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/32 -all] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4//32] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] yml_test.go:157: domain e8.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4:8080] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/32 -all] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1/0 -all] yml_test.go:157: domain e3.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/33 -all] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/032 -all] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 ip4] + yml_test.go:225: test bad-ip4-short + yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") + spf.go:160: check e9.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3" + spf.go:256: ip ok, permerror invalid ipX value + yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-short] yml_test.go:225: test ip4-dual-cidr yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") @@ -2170,6 +2212,13 @@ spf.go:176: dns record "v=spf1 ip4:1.2.3.4//32" spf.go:256: ip ok, permerror invalid mask yml_test.go:234: success: permerror, invalid mask [ip4-dual-cidr] + yml_test.go:225: test cidr4-0 + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.1.1.1/0 -all" + spf.go:256: ip ok, pass matched 'ip' + yml_test.go:234: success: pass, matched 'ip' [cidr4-0] yml_test.go:225: test cidr4-32 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -2177,20 +2226,6 @@ spf.go:176: dns record "v=spf1 ip4:1.2.3.4/32 -all" spf.go:256: ip ok, pass matched 'ip' yml_test.go:234: success: pass, matched 'ip' [cidr4-32] - yml_test.go:225: test cidr4-33 - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4/33 -all" - spf.go:256: ip ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [cidr4-33] - yml_test.go:225: test bare-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 ip4" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [bare-ip4] yml_test.go:225: test bad-ip4-port yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -2198,20 +2233,6 @@ spf.go:176: dns record "v=spf1 ip4:1.2.3.4:8080" spf.go:256: ip ok, permerror invalid ipX value yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-port] - yml_test.go:225: test bad-ip4-short - yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") - spf.go:160: check e9.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3" - spf.go:256: ip ok, permerror invalid ipX value - yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-short] - yml_test.go:225: test cidr4-0 - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.1.1.1/0 -all" - spf.go:256: ip ok, pass matched 'ip' - yml_test.go:234: success: pass, matched 'ip' [cidr4-0] yml_test.go:225: test ip4-mapped-ip6 yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") @@ -2219,9 +2240,21 @@ spf.go:176: dns record "v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4" spf.go:256: ip ok, fail matched 'ip' yml_test.go:234: success: fail, matched 'ip' [ip4-mapped-ip6] + yml_test.go:225: test cidr4-33 + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4/33 -all" + spf.go:256: ip ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [cidr4-33] + yml_test.go:225: test bare-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 ip4" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [bare-ip4] yml_test.go:152: suite: IP6 mechanism syntax - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 ip6::CAFE::BABE] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e1.example.com @@ -2234,13 +2267,29 @@ yml_test.go:159: SPF: [v=spf1 ip6:::1.1.1.1//33] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 ip6:CAFE:BABE:8000::/33] - yml_test.go:225: test cidr6-129 - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/129" + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 ip6::CAFE::BABE] + yml_test.go:225: test cidr6-33-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 ip6:CAFE:BABE:8000::/33" + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [cidr6-33-ip4] + yml_test.go:225: test ip6-bad1 + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 ip6::CAFE::BABE" + spf.go:256: ip ok, permerror invalid ipX value + yml_test.go:234: success: permerror, invalid ipX value [ip6-bad1] + yml_test.go:225: test cidr6-bad + yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 ip6:::1.1.1.1//33" spf.go:256: ip ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [cidr6-129] + yml_test.go:234: success: permerror, invalid mask [cidr6-bad] yml_test.go:225: test cidr6-33 yml_test.go:227: checkhost cafe:babe:8000:: foo@e5.example.com spf.go:129: check host with sender "cafe:babe:8000::" "mail.example.com" "foo@e5.example.com" ("e5.example.com") @@ -2248,13 +2297,20 @@ spf.go:176: dns record "v=spf1 ip6:CAFE:BABE:8000::/33" spf.go:256: ip ok, pass matched 'ip' yml_test.go:234: success: pass, matched 'ip' [cidr6-33] - yml_test.go:225: test cidr6-33-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 ip6:CAFE:BABE:8000::/33" + yml_test.go:225: test cidr6-129 + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/129" + spf.go:256: ip ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [cidr6-129] + yml_test.go:225: test cidr6-0-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [cidr6-33-ip4] + yml_test.go:234: success: neutral, [cidr6-0-ip4] yml_test.go:225: test cidr6-ip4 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -2269,104 +2325,91 @@ spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" spf.go:256: ip ok, pass matched 'ip' yml_test.go:234: success: pass, matched 'ip' [cidr6-0] - yml_test.go:225: test cidr6-bad - yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 ip6:::1.1.1.1//33" - spf.go:256: ip ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [cidr6-bad] - yml_test.go:225: test ip6-bad1 - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 ip6::CAFE::BABE" - spf.go:256: ip ok, permerror invalid ipX value - yml_test.go:234: success: permerror, invalid ipX value [ip6-bad1] - yml_test.go:225: test cidr6-0-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [cidr6-0-ip4] yml_test.go:152: suite: Semantics of exp and other modifiers - yml_test.go:157: domain e21.example.com - yml_test.go:159: SPF: [v=spf1 exp=e21msg.example.com -all] - yml_test.go:157: domain nonascii.example.com - yml_test.go:159: SPF: [v=spf1 exp=badexp.example.com -all] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:157: domain exp4.example.com + yml_test.go:159: TXT: [%{l} in implementation] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 1up=foo] + yml_test.go:157: domain e11msg.example.com + yml_test.go:159: TXT: [Answer a fool according to his folly.] + yml_test.go:159: TXT: [Do not answer a fool according to his folly.] + yml_test.go:157: domain e18.example.com + yml_test.go:159: SPF: [v=spf1 ?all redirect=] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 -all foo=%abc] + yml_test.go:157: domain e13.example.com + yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all] + yml_test.go:157: domain e13msg.example.com + yml_test.go:159: TXT: [The %{x}-files.] + yml_test.go:157: domain e20.example.com + yml_test.go:159: SPF: [v=spf1 default=+] + yml_test.go:157: domain badexp.example.com + yml_test.go:159: TXT: [Explanation] + yml_test.go:157: domain nonascii.example.com + yml_test.go:159: SPF: [v=spf1 exp=badexp.example.com -all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] + yml_test.go:157: domain exp1.example.com + yml_test.go:159: TXT: [No-see-um] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=exp4.example.com] yml_test.go:157: domain e10.example.com yml_test.go:159: SPF: [v=spf1 redirect=erehwon.example.com] - yml_test.go:157: domain e11.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=e11msg.example.com] + yml_test.go:157: domain e14.example.com + yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] + yml_test.go:157: domain e21.example.com + yml_test.go:159: SPF: [v=spf1 exp=e21msg.example.com -all] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain exp1.example.com - yml_test.go:159: TXT: [No-see-um] - yml_test.go:157: domain exp4.example.com - yml_test.go:159: TXT: [%{l} in implementation] - yml_test.go:157: domain e15.example.com - yml_test.go:159: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] - yml_test.go:157: domain e19.example.com - yml_test.go:159: SPF: [v=spf1 default=pass] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:157: domain e11.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=e11msg.example.com] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=exp2.example.com] yml_test.go:157: domain exp3.example.com yml_test.go:159: TXT: [Correct!] yml_test.go:157: domain twoexp.example.com yml_test.go:159: TXT: [one] yml_test.go:159: TXT: [two] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=exp2.example.com] - yml_test.go:157: domain e16.example.com - yml_test.go:159: SPF: [v=spf1 exp=-all] - yml_test.go:157: domain e18.example.com - yml_test.go:159: SPF: [v=spf1 ?all redirect=] - yml_test.go:157: domain e20.example.com - yml_test.go:159: SPF: [v=spf1 default=+] - yml_test.go:157: domain tworecs.example.com - yml_test.go:159: SPF: [v=spf1 exp=twoexp.example.com -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 =all] - yml_test.go:157: domain e13.example.com - yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all] - yml_test.go:157: domain e17.example.com - yml_test.go:159: SPF: [v=spf1 redirect=-all ?all] - yml_test.go:157: domain e13msg.example.com - yml_test.go:159: TXT: [The %{x}-files.] - yml_test.go:157: domain e22.example.com - yml_test.go:159: SPF: [v=spf1 exp=mail.example.com -all] - yml_test.go:157: domain badexp.example.com - yml_test.go:159: TXT: [Explanation] + yml_test.go:157: domain e19.example.com + yml_test.go:159: SPF: [v=spf1 default=pass] yml_test.go:157: domain exp2.example.com yml_test.go:159: TXT: [See me.] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=exp4.example.com] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 -all foo=%abc] - yml_test.go:157: domain e11msg.example.com - yml_test.go:159: TXT: [Answer a fool according to his folly.] - yml_test.go:159: TXT: [Do not answer a fool according to his folly.] - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 exp= -all] - yml_test.go:157: domain e14.example.com - yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] yml_test.go:157: domain e21msg.example.com yml_test.go:159: TIMEOUT - yml_test.go:225: test redirect-twice - yml_test.go:227: checkhost 1.2.3.4 foo@e15.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e15.example.com" ("e15.example.com") - spf.go:160: check e15.example.com 1 - spf.go:176: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" - yml_test.go:234: success: permerror, invalid domain [redirect-twice] + yml_test.go:157: domain e22.example.com + yml_test.go:159: SPF: [v=spf1 exp=mail.example.com -all] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 =all] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 exp= -all] + yml_test.go:157: domain e15.example.com + yml_test.go:159: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] + yml_test.go:157: domain e16.example.com + yml_test.go:159: SPF: [v=spf1 exp=-all] + yml_test.go:157: domain e17.example.com + yml_test.go:159: SPF: [v=spf1 redirect=-all ?all] + yml_test.go:157: domain tworecs.example.com + yml_test.go:159: SPF: [v=spf1 exp=twoexp.example.com -all] + yml_test.go:225: test empty-modifier-name + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 =all" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [empty-modifier-name] + yml_test.go:225: test exp-multiple-txt + yml_test.go:227: checkhost 1.2.3.4 foo@e11.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e11.example.com" ("e11.example.com") + spf.go:160: check e11.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e11msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [exp-multiple-txt] yml_test.go:225: test non-ascii-exp yml_test.go:227: checkhost 1.2.3.4 foobar@nonascii.example.com spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nonascii.example.com" ("nonascii.example.com") @@ -2375,14 +2418,17 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [non-ascii-exp] - yml_test.go:225: test exp-dns-error - yml_test.go:227: checkhost 1.2.3.4 foo@e21.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e21.example.com" ("e21.example.com") - spf.go:160: check e21.example.com 1 - spf.go:176: dns record "v=spf1 exp=e21msg.example.com -all" + yml_test.go:225: test redirect-cancels-prior-exp + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" spf.go:270: exp= not used, skipping + spf.go:273: redirect, "redirect=e4.example.com" + spf.go:160: check e4.example.com 2 + spf.go:176: dns record "v=spf1 -all exp=exp2.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [exp-dns-error] + yml_test.go:234: success: fail, matched 'all' [redirect-cancels-prior-exp] yml_test.go:225: test invalid-modifier yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") @@ -2398,6 +2444,23 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exp-no-txt] + yml_test.go:225: test exp-dns-error + yml_test.go:227: checkhost 1.2.3.4 foo@e21.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e21.example.com" ("e21.example.com") + spf.go:160: check e21.example.com 1 + spf.go:176: dns record "v=spf1 exp=e21msg.example.com -all" + spf.go:270: exp= not used, skipping + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [exp-dns-error] + yml_test.go:225: test redirect-none + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 redirect=erehwon.example.com" + spf.go:273: redirect, "redirect=erehwon.example.com" + spf.go:160: check erehwon.example.com 2 + spf.go:176: dns record "" + yml_test.go:234: success: permerror, no DNS record found [redirect-none] yml_test.go:225: test redirect-cancels-exp yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -2409,17 +2472,6 @@ spf.go:176: dns record "v=spf1 -all" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [redirect-cancels-exp] - yml_test.go:225: test redirect-cancels-prior-exp - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" - spf.go:270: exp= not used, skipping - spf.go:273: redirect, "redirect=e4.example.com" - spf.go:160: check e4.example.com 2 - spf.go:176: dns record "v=spf1 -all exp=exp2.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [redirect-cancels-prior-exp] yml_test.go:225: test dorky-sentinel yml_test.go:227: checkhost 1.2.3.4 Macro Error@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "Macro Error@e8.example.com" ("e8.example.com") @@ -2435,23 +2487,6 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [explanation-syntax-error] - yml_test.go:225: test two-exp-records - yml_test.go:227: checkhost 1.2.3.4 foobar@tworecs.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@tworecs.example.com" ("tworecs.example.com") - spf.go:160: check tworecs.example.com 1 - spf.go:176: dns record "v=spf1 exp=twoexp.example.com -all" - spf.go:270: exp= not used, skipping - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [two-exp-records] - yml_test.go:225: test redirect-none - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 redirect=erehwon.example.com" - spf.go:273: redirect, "redirect=erehwon.example.com" - spf.go:160: check erehwon.example.com 2 - spf.go:176: dns record "" - yml_test.go:234: success: permerror, no DNS record found [redirect-none] yml_test.go:225: test include-ignores-exp yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") @@ -2466,136 +2501,161 @@ spf.go:237: fail matched all spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [include-ignores-exp] - yml_test.go:225: test empty-modifier-name - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 =all" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [empty-modifier-name] - yml_test.go:225: test exp-multiple-txt - yml_test.go:227: checkhost 1.2.3.4 foo@e11.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e11.example.com" ("e11.example.com") - spf.go:160: check e11.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e11msg.example.com" + yml_test.go:225: test two-exp-records + yml_test.go:227: checkhost 1.2.3.4 foobar@tworecs.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@tworecs.example.com" ("tworecs.example.com") + spf.go:160: check tworecs.example.com 1 + spf.go:176: dns record "v=spf1 exp=twoexp.example.com -all" + spf.go:270: exp= not used, skipping spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [exp-multiple-txt] + yml_test.go:234: success: fail, matched 'all' [two-exp-records] + yml_test.go:225: test redirect-twice + yml_test.go:227: checkhost 1.2.3.4 foo@e15.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e15.example.com" ("e15.example.com") + spf.go:160: check e15.example.com 1 + spf.go:176: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" + yml_test.go:234: success: permerror, invalid domain [redirect-twice] yml_test.go:152: suite: Macro expansion rules - yml_test.go:157: domain exp.example.com - yml_test.go:159: SPF: [v=spf1 exp=msg.example.com. -all] - yml_test.go:157: domain somewhat.long.exp.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] - yml_test.go:157: domain somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.example.com - yml_test.go:159: TXT: [Congratulations! That was tricky.] - yml_test.go:157: domain mx.e7.example.com.should.example.com - yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] - yml_test.go:157: domain example.com.d.spf.example.com - yml_test.go:159: SPF: [v=spf1 redirect=a.spf.example.com] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=%{r}.example.com] - yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa - yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=msg8.%{D2}] - yml_test.go:157: domain msg8.example.com - yml_test.go:159: TXT: [http://example.com/why.html?l=%{L}] yml_test.go:157: domain e12.example.com yml_test.go:159: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] yml_test.go:157: domain example.com yml_test.go:159: A: [192.168.90.76] yml_test.go:159: SPF: [v=spf1 redirect=%{d}.d.spf.example.com.] + yml_test.go:157: domain e6msg.example.com + yml_test.go:159: TXT: [connect from %{p}] + yml_test.go:157: domain 40.218.168.192.in-addr.arpa + yml_test.go:159: PTR: [mx.example.com] + yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa + yml_test.go:159: PTR: [mx.example.com] + yml_test.go:157: domain 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa + yml_test.go:159: PTR: [mx.example.com] + yml_test.go:157: domain e11.example.com + yml_test.go:159: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] yml_test.go:157: domain macro%percent space%20url-space.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=e4msg.example.com] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=e6msg.example.com] - yml_test.go:157: domain 42.218.168.192.in-addr.arpa + yml_test.go:157: domain 41.218.168.192.in-addr.arpa yml_test.go:159: PTR: [mx.example.com] - yml_test.go:159: PTR: [mx.e7.example.com] - yml_test.go:157: domain mx.e7.example.com - yml_test.go:159: A: [192.168.218.42] - yml_test.go:157: domain msgbas2x.cos.example.com - yml_test.go:159: A: [192.168.218.40] - yml_test.go:157: domain msg.example.com - yml_test.go:159: TXT: [This is a test.] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] + yml_test.go:157: domain exp.example.com + yml_test.go:159: SPF: [v=spf1 exp=msg.example.com. -all] yml_test.go:157: domain 40.218.168.192.example.com yml_test.go:159: TXT: [Connections from %{c} not authorized.] - yml_test.go:157: domain e10.example.com - yml_test.go:159: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 a:%{a}.example.com -all] + yml_test.go:157: domain mx.e7.example.com.should.example.com + yml_test.go:159: A: [127.0.0.2] yml_test.go:157: domain a.spf.example.com yml_test.go:159: SPF: [v=spf1 include:o.spf.example.com. ~all] - yml_test.go:157: domain o.spf.example.com - yml_test.go:159: SPF: [v=spf1 ip4:192.168.218.40] - yml_test.go:157: domain e4msg.example.com - yml_test.go:159: TXT: [%{c} is queried as %{ir}.%{v}.arpa] - yml_test.go:157: domain 41.218.168.192.in-addr.arpa - yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain mx.example.com.ok.example.com + yml_test.go:157: domain e1e.example.com + yml_test.go:159: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=%{ir}.example.com] + yml_test.go:157: domain somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.example.com + yml_test.go:159: TXT: [Congratulations! That was tricky.] + yml_test.go:157: domain msg8.example.com + yml_test.go:159: TXT: [http://example.com/why.html?l=%{L}] + yml_test.go:157: domain bar.foo.user.example.com yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain e11.example.com - yml_test.go:159: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] - yml_test.go:157: domain e1t.example.com - yml_test.go:159: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=%{r}.example.com] yml_test.go:157: domain mx.example.com yml_test.go:159: A: [192.168.218.41] yml_test.go:159: A: [192.168.218.42] yml_test.go:159: AAAA: [CAFE:BABE::2] yml_test.go:159: AAAA: [CAFE:BABE::3] - yml_test.go:157: domain _spfh.example.com - yml_test.go:159: SPF: [v=spf1 -a:%{h} +all] - yml_test.go:157: domain bar.foo.user.example.com - yml_test.go:159: A: [127.0.0.2] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 a:%{H} -all] + yml_test.go:157: domain e10.example.com + yml_test.go:159: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] + yml_test.go:157: domain msgbas2x.cos.example.com + yml_test.go:159: A: [192.168.218.40] yml_test.go:157: domain e1a.example.com yml_test.go:159: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=%{ir}.example.com] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 a:%{a}.example.com -all] - yml_test.go:157: domain 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa + yml_test.go:157: domain e4msg.example.com + yml_test.go:159: TXT: [%{c} is queried as %{ir}.%{v}.arpa] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=msg8.%{D2}] + yml_test.go:157: domain 42.218.168.192.in-addr.arpa yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 a:%{H} -all] + yml_test.go:159: PTR: [mx.e7.example.com] + yml_test.go:157: domain mx.example.com.ok.example.com + yml_test.go:159: A: [127.0.0.2] + yml_test.go:157: domain example.com.d.spf.example.com + yml_test.go:159: SPF: [v=spf1 redirect=a.spf.example.com] + yml_test.go:157: domain o.spf.example.com + yml_test.go:159: SPF: [v=spf1 ip4:192.168.218.40] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] + yml_test.go:157: domain e1t.example.com + yml_test.go:159: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=e4msg.example.com] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=e6msg.example.com] + yml_test.go:157: domain _spfh.example.com + yml_test.go:159: SPF: [v=spf1 -a:%{h} +all] + yml_test.go:157: domain msg.example.com + yml_test.go:159: TXT: [This is a test.] + yml_test.go:157: domain somewhat.long.exp.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] + yml_test.go:157: domain mx.e7.example.com + yml_test.go:159: A: [192.168.218.42] yml_test.go:157: domain 1.2.3.4.gladstone.philip.user.example.com yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain e1e.example.com - yml_test.go:159: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] - yml_test.go:157: domain e6msg.example.com - yml_test.go:159: TXT: [connect from %{p}] - yml_test.go:157: domain 40.218.168.192.in-addr.arpa - yml_test.go:159: PTR: [mx.example.com] - yml_test.go:225: test macro-reverse-split-on-dash - yml_test.go:227: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "philip-gladstone-test@e11.example.com" ("e11.example.com") - spf.go:160: check e11.example.com 1 - spf.go:176: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" - spf.go:708: macro "i": ["i" "i" "" "" ""] - spf.go:708: macro "l2r-": ["l2r-" "l" "2" "r" "-"] - spf.go:708: macro "d2": ["d2" "d" "2" "" ""] - spf.go:805: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" - spf.go:266: exists ok, pass matched 'exists' - yml_test.go:234: success: pass, matched 'exists' [macro-reverse-split-on-dash] - yml_test.go:225: test macro-multiple-delimiters - yml_test.go:227: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo-bar+zip+quux@e12.example.com" ("e12.example.com") - spf.go:160: check e12.example.com 1 - spf.go:176: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" - spf.go:708: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] + yml_test.go:225: test p-macro-ip6-valid + yml_test.go:227: checkhost cafe:babe::3 test@e6.example.com + spf.go:129: check host with sender "cafe:babe::3" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-valid] + yml_test.go:225: test invalid-hello-macro + yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com + spf.go:129: check host with sender "192.168.218.40" "JUMPIN' JUPITER" "test@e9.example.com" ("e9.example.com") + spf.go:160: check e9.example.com 1 + spf.go:176: dns record "v=spf1 a:%{H} -all" + spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} + spf.go:708: macro "H": ["H" "H" "" "" ""] + spf.go:805: macro expanded "%{H}" to "e9.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [invalid-hello-macro] + yml_test.go:225: test require-valid-helo + yml_test.go:227: checkhost 1.2.3.4 test@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "OEMCOMPUTER" "test@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all" spf.go:708: macro "d2": ["d2" "d" "2" "" ""] - spf.go:805: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" - spf.go:266: exists ok, pass matched 'exists' - yml_test.go:234: success: pass, matched 'exists' [macro-multiple-delimiters] - yml_test.go:225: test invalid-trailing-macro-char - yml_test.go:227: checkhost 192.168.218.40 test@e1t.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1t.example.com" ("e1t.example.com") - spf.go:160: check e1t.example.com 1 - spf.go:176: dns record "v=spf1 exists:foo%.sbl.example.com ?all" - spf.go:266: exists ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [invalid-trailing-macro-char] + spf.go:805: macro expanded "_spfh.%{d2}" to "_spfh.example.com" + spf.go:160: check _spfh.example.com 2 + spf.go:176: dns record "v=spf1 -a:%{h} +all" + spf.go:526: masks on "a:%{h}": ["a:%{h}" ":%{h}" "%{h}" "" "" "" ""] "%{h}" {-1 -1} + spf.go:708: macro "h": ["h" "h" "" "" ""] + spf.go:805: macro expanded "%{h}" to "_spfh.example.com" + spf.go:237: pass matched all + spf.go:241: include ok, fail matched 'all' + yml_test.go:234: success: fail, matched 'all' [require-valid-helo] + yml_test.go:225: test v-macro-ip4 + yml_test.go:227: checkhost 192.168.218.40 test@e4.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [v-macro-ip4] + yml_test.go:225: test p-macro-ip4-novalid + yml_test.go:227: checkhost 192.168.218.40 test@e6.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-novalid] + yml_test.go:225: test p-macro-ip6-novalid + yml_test.go:227: checkhost cafe:babe::1 test@e6.example.com + spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-novalid] yml_test.go:225: test macro-mania-in-domain yml_test.go:227: checkhost 1.2.3.4 test@e1a.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "test@e1a.example.com" ("e1a.example.com") @@ -2606,13 +2666,34 @@ spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [macro-mania-in-domain] - yml_test.go:225: test v-macro-ip4 - yml_test.go:227: checkhost 192.168.218.40 test@e4.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") + yml_test.go:225: test exp-txt-macro-char + yml_test.go:227: checkhost 192.168.218.40 test@e3.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=%{ir}.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [exp-txt-macro-char] + yml_test.go:225: test invalid-trailing-macro-char + yml_test.go:227: checkhost 192.168.218.40 test@e1t.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1t.example.com" ("e1t.example.com") + spf.go:160: check e1t.example.com 1 + spf.go:176: dns record "v=spf1 exists:foo%.sbl.example.com ?all" + spf.go:266: exists ok, permerror invalid macro + yml_test.go:234: success: permerror, invalid macro [invalid-trailing-macro-char] + yml_test.go:225: test v-macro-ip6 + yml_test.go:227: checkhost cafe:babe::1 test@e4.example.com + spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") spf.go:160: check e4.example.com 1 spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [v-macro-ip4] + yml_test.go:234: success: fail, matched 'all' [v-macro-ip6] + yml_test.go:225: test p-macro-ip4-valid + yml_test.go:227: checkhost 192.168.218.41 test@e6.example.com + spf.go:129: check host with sender "192.168.218.41" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-valid] yml_test.go:225: test upper-macro yml_test.go:227: checkhost 192.168.218.42 jack&jill=up@e8.example.com spf.go:129: check host with sender "192.168.218.42" "msgbas2x.cos.example.com" "jack&jill=up@e8.example.com" ("e8.example.com") @@ -2620,31 +2701,6 @@ spf.go:176: dns record "v=spf1 -all exp=msg8.%{D2}" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [upper-macro] - yml_test.go:225: test require-valid-helo - yml_test.go:227: checkhost 1.2.3.4 test@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "OEMCOMPUTER" "test@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all" - spf.go:708: macro "d2": ["d2" "d" "2" "" ""] - spf.go:805: macro expanded "_spfh.%{d2}" to "_spfh.example.com" - spf.go:160: check _spfh.example.com 2 - spf.go:176: dns record "v=spf1 -a:%{h} +all" - spf.go:526: masks on "a:%{h}": ["a:%{h}" ":%{h}" "%{h}" "" "" "" ""] "%{h}" {-1 -1} - spf.go:708: macro "h": ["h" "h" "" "" ""] - spf.go:805: macro expanded "%{h}" to "_spfh.example.com" - spf.go:237: pass matched all - spf.go:241: include ok, fail matched 'all' - yml_test.go:234: success: fail, matched 'all' [require-valid-helo] - yml_test.go:225: test hello-domain-literal - yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com - spf.go:129: check host with sender "192.168.218.40" "[192.168.218.40]" "test@e9.example.com" ("e9.example.com") - spf.go:160: check e9.example.com 1 - spf.go:176: dns record "v=spf1 a:%{H} -all" - spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} - spf.go:708: macro "H": ["H" "H" "" "" ""] - spf.go:805: macro expanded "%{H}" to "e9.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [hello-domain-literal] yml_test.go:225: test invalid-macro-char yml_test.go:227: checkhost 192.168.218.40 test@e1.example.com spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1.example.com" ("e1.example.com") @@ -2652,6 +2708,13 @@ spf.go:176: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" spf.go:266: exists ok, permerror invalid macro yml_test.go:234: success: permerror, invalid macro [invalid-macro-char] + yml_test.go:225: test invalid-embedded-macro-char + yml_test.go:227: checkhost 192.168.218.40 test@e1e.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1e.example.com" ("e1e.example.com") + spf.go:160: check e1e.example.com 1 + spf.go:176: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" + spf.go:266: exists ok, permerror invalid macro + yml_test.go:234: success: permerror, invalid macro [invalid-embedded-macro-char] yml_test.go:225: test domain-name-truncation yml_test.go:227: checkhost 192.168.218.40 test@somewhat.long.exp.example.com spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@somewhat.long.exp.example.com" ("somewhat.long.exp.example.com") @@ -2659,27 +2722,25 @@ spf.go:176: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [domain-name-truncation] - yml_test.go:225: test p-macro-ip4-novalid - yml_test.go:227: checkhost 192.168.218.40 test@e6.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-novalid] - yml_test.go:225: test p-macro-ip4-valid - yml_test.go:227: checkhost 192.168.218.41 test@e6.example.com - spf.go:129: check host with sender "192.168.218.41" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-valid] - yml_test.go:225: test p-macro-ip6-valid - yml_test.go:227: checkhost cafe:babe::3 test@e6.example.com - spf.go:129: check host with sender "cafe:babe::3" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + yml_test.go:225: test undef-macro + yml_test.go:227: checkhost cafe:babe::c0a8:da28 test@e5.example.com + spf.go:129: check host with sender "cafe:babe::c0a8:da28" "msgbas2x.cos.example.com" "test@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 a:%{a}.example.com -all" + spf.go:526: masks on "a:%{a}.example.com": ["a:%{a}.example.com" ":%{a}.example.com" "%{a}.example.com" "" "" "" ""] "%{a}.example.com" {-1 -1} + spf.go:708: macro "a": [] + spf.go:246: a ok, permerror invalid macro + yml_test.go:234: success: permerror, invalid macro [undef-macro] + yml_test.go:225: test hello-domain-literal + yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com + spf.go:129: check host with sender "192.168.218.40" "[192.168.218.40]" "test@e9.example.com" ("e9.example.com") + spf.go:160: check e9.example.com 1 + spf.go:176: dns record "v=spf1 a:%{H} -all" + spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} + spf.go:708: macro "H": ["H" "H" "" "" ""] + spf.go:805: macro expanded "%{H}" to "e9.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-valid] + yml_test.go:234: success: fail, matched 'all' [hello-domain-literal] yml_test.go:225: test trailing-dot-domain yml_test.go:227: checkhost 192.168.218.40 test@example.com spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@example.com" ("example.com") @@ -2706,63 +2767,28 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [trailing-dot-exp] - yml_test.go:225: test invalid-hello-macro - yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com - spf.go:129: check host with sender "192.168.218.40" "JUMPIN' JUPITER" "test@e9.example.com" ("e9.example.com") - spf.go:160: check e9.example.com 1 - spf.go:176: dns record "v=spf1 a:%{H} -all" - spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} - spf.go:708: macro "H": ["H" "H" "" "" ""] - spf.go:805: macro expanded "%{H}" to "e9.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [invalid-hello-macro] - yml_test.go:225: test invalid-embedded-macro-char - yml_test.go:227: checkhost 192.168.218.40 test@e1e.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1e.example.com" ("e1e.example.com") - spf.go:160: check e1e.example.com 1 - spf.go:176: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" - spf.go:266: exists ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [invalid-embedded-macro-char] - yml_test.go:225: test exp-txt-macro-char - yml_test.go:227: checkhost 192.168.218.40 test@e3.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=%{ir}.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [exp-txt-macro-char] - yml_test.go:225: test v-macro-ip6 - yml_test.go:227: checkhost cafe:babe::1 test@e4.example.com - spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [v-macro-ip6] - yml_test.go:225: test undef-macro - yml_test.go:227: checkhost cafe:babe::c0a8:da28 test@e5.example.com - spf.go:129: check host with sender "cafe:babe::c0a8:da28" "msgbas2x.cos.example.com" "test@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 a:%{a}.example.com -all" - spf.go:526: masks on "a:%{a}.example.com": ["a:%{a}.example.com" ":%{a}.example.com" "%{a}.example.com" "" "" "" ""] "%{a}.example.com" {-1 -1} - spf.go:708: macro "a": [] - spf.go:246: a ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [undef-macro] - yml_test.go:225: test p-macro-ip6-novalid - yml_test.go:227: checkhost cafe:babe::1 test@e6.example.com - spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-novalid] + yml_test.go:225: test macro-reverse-split-on-dash + yml_test.go:227: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "philip-gladstone-test@e11.example.com" ("e11.example.com") + spf.go:160: check e11.example.com 1 + spf.go:176: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" + spf.go:708: macro "i": ["i" "i" "" "" ""] + spf.go:708: macro "l2r-": ["l2r-" "l" "2" "r" "-"] + spf.go:708: macro "d2": ["d2" "d" "2" "" ""] + spf.go:805: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" + spf.go:266: exists ok, pass matched 'exists' + yml_test.go:234: success: pass, matched 'exists' [macro-reverse-split-on-dash] + yml_test.go:225: test macro-multiple-delimiters + yml_test.go:227: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo-bar+zip+quux@e12.example.com" ("e12.example.com") + spf.go:160: check e12.example.com 1 + spf.go:176: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" + spf.go:708: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] + spf.go:708: macro "d2": ["d2" "d" "2" "" ""] + spf.go:805: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" + spf.go:266: exists ok, pass matched 'exists' + yml_test.go:234: success: pass, matched 'exists' [macro-multiple-delimiters] yml_test.go:152: suite: Processing limits - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] - yml_test.go:159: A: [1.2.3.6] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] - yml_test.go:159: A: [1.2.3.20] - yml_test.go:157: domain inc.example.com - yml_test.go:159: SPF: [v=spf1 a a a a a a a a] - yml_test.go:159: A: [1.2.3.10] yml_test.go:157: domain e9.example.com yml_test.go:159: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] yml_test.go:159: A: [1.2.3.21] @@ -2782,12 +2808,40 @@ yml_test.go:159: A: [1.2.3.12] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 include:e3.example.com] - yml_test.go:159: A: [1.2.3.7] yml_test.go:157: domain e3.example.com yml_test.go:159: SPF: [v=spf1 include:e2.example.com] yml_test.go:159: A: [1.2.3.8] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] + yml_test.go:159: A: [1.2.3.8] + yml_test.go:159: MX: {10 e6.example.com} + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] + yml_test.go:159: A: [1.2.3.20] + yml_test.go:157: domain 5.3.2.1.in-addr.arpa + yml_test.go:159: PTR: [e1.example.com.] + yml_test.go:159: PTR: [e2.example.com.] + yml_test.go:159: PTR: [e3.example.com.] + yml_test.go:159: PTR: [e4.example.com.] + yml_test.go:159: PTR: [example.com.] + yml_test.go:159: PTR: [e6.example.com.] + yml_test.go:159: PTR: [e7.example.com.] + yml_test.go:159: PTR: [e8.example.com.] + yml_test.go:159: PTR: [e9.example.com.] + yml_test.go:159: PTR: [e10.example.com.] + yml_test.go:159: PTR: [e5.example.com.] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain inc.example.com + yml_test.go:159: SPF: [v=spf1 a a a a a a a a] + yml_test.go:159: A: [1.2.3.10] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] + yml_test.go:159: A: [1.2.3.6] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 include:e3.example.com] + yml_test.go:159: A: [1.2.3.7] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 mx] yml_test.go:159: MX: {0 mail.example.com} @@ -2805,25 +2859,6 @@ yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 ptr] yml_test.go:159: A: [1.2.3.5] - yml_test.go:157: domain 5.3.2.1.in-addr.arpa - yml_test.go:159: PTR: [e1.example.com.] - yml_test.go:159: PTR: [e2.example.com.] - yml_test.go:159: PTR: [e3.example.com.] - yml_test.go:159: PTR: [e4.example.com.] - yml_test.go:159: PTR: [example.com.] - yml_test.go:159: PTR: [e6.example.com.] - yml_test.go:159: PTR: [e7.example.com.] - yml_test.go:159: PTR: [e8.example.com.] - yml_test.go:159: PTR: [e9.example.com.] - yml_test.go:159: PTR: [e10.example.com.] - yml_test.go:159: PTR: [e5.example.com.] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] - yml_test.go:159: A: [1.2.3.8] - yml_test.go:159: MX: {10 e6.example.com} - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] - yml_test.go:159: A: [1.2.3.4] yml_test.go:225: test include-at-limit yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -2833,6 +2868,85 @@ spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [include-at-limit] + yml_test.go:225: test include-loop + yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 2 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 3 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 4 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 5 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 6 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 7 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 8 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 9 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 10 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 11 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:218: lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + yml_test.go:234: success: permerror, lookup limit reached [include-loop] + yml_test.go:225: test ptr-limit + yml_test.go:227: checkhost 1.2.3.5 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 ptr" + spf.go:398: ptr forward resolution "e1.example.com." -> ["1.2.3.6"] + spf.go:398: ptr forward resolution "e2.example.com." -> ["1.2.3.7"] + spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.8"] + spf.go:398: ptr forward resolution "e4.example.com." -> ["1.2.3.5"] + spf.go:398: ptr forward resolution "example.com." -> [] + spf.go:398: ptr forward resolution "e6.example.com." -> ["1.2.3.8"] + spf.go:398: ptr forward resolution "e7.example.com." -> ["1.2.3.20"] + spf.go:398: ptr forward resolution "e8.example.com." -> ["1.2.3.4"] + spf.go:398: ptr forward resolution "e9.example.com." -> ["1.2.3.21"] + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [ptr-limit] + yml_test.go:225: test false-a-limit + yml_test.go:227: checkhost 1.2.3.12 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.12" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 a -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e10.example.com" {-1 -1} + spf.go:561: mx matched 1.2.3.12, 1.2.3.12, {-1 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [false-a-limit] + yml_test.go:225: test mech-over-limit + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:407: ptr evaluating "e7.example.com" in [] + spf.go:218: lookup limit reached + yml_test.go:234: success: permerror, lookup limit reached [mech-over-limit] yml_test.go:225: test redirect-loop yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -2870,39 +2984,14 @@ spf.go:176: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" spf.go:218: lookup limit reached yml_test.go:234: success: permerror, lookup limit reached [redirect-loop] - yml_test.go:225: test ptr-limit - yml_test.go:227: checkhost 1.2.3.5 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 ptr" - spf.go:398: ptr forward resolution "e1.example.com." -> ["1.2.3.6"] - spf.go:398: ptr forward resolution "e2.example.com." -> ["1.2.3.7"] - spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.8"] - spf.go:398: ptr forward resolution "e4.example.com." -> ["1.2.3.5"] - spf.go:398: ptr forward resolution "example.com." -> [] - spf.go:398: ptr forward resolution "e6.example.com." -> ["1.2.3.8"] - spf.go:398: ptr forward resolution "e7.example.com." -> ["1.2.3.20"] - spf.go:398: ptr forward resolution "e8.example.com." -> ["1.2.3.4"] - spf.go:398: ptr forward resolution "e9.example.com." -> ["1.2.3.21"] - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [ptr-limit] - yml_test.go:225: test mech-over-limit - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:407: ptr evaluating "e7.example.com" in [] - spf.go:218: lookup limit reached - yml_test.go:234: success: permerror, lookup limit reached [mech-over-limit] + yml_test.go:225: test mx-limit + yml_test.go:227: checkhost 1.2.3.5 foo@e4.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 mx" + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e4.example.com" {-1 -1} + spf.go:251: mx ok, permerror too many MX records + yml_test.go:234: success: permerror, too many MX records [mx-limit] yml_test.go:225: test include-over-limit yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") @@ -2922,67 +3011,13 @@ spf.go:284: fallback to neutral spf.go:218: lookup limit reached yml_test.go:234: success: permerror, lookup limit reached [include-over-limit] - yml_test.go:225: test include-loop - yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 2 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 3 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 4 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 5 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 6 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 7 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 8 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 9 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 10 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 11 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:218: lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - yml_test.go:234: success: permerror, lookup limit reached [include-loop] - yml_test.go:225: test mx-limit - yml_test.go:227: checkhost 1.2.3.5 foo@e4.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 mx" - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e4.example.com" {-1 -1} - spf.go:251: mx ok, permerror too many MX records - yml_test.go:234: success: permerror, too many MX records [mx-limit] - yml_test.go:225: test false-a-limit - yml_test.go:227: checkhost 1.2.3.12 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.12" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 a -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e10.example.com" {-1 -1} - spf.go:561: mx matched 1.2.3.12, 1.2.3.12, {-1 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [false-a-limit] ---- PASS: TestRFC4408 (0.15s) +--- PASS: TestRFC4408 (0.02s) === RUN TestRFC7208 yml_test.go:152: suite: Initial processing - yml_test.go:157: domain a.example.net - yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] - yml_test.go:157: domain exp.example.net - yml_test.go:159: TXT: [%{l}] + yml_test.go:157: domain a12345678901234567890123456789012345678901234567890123456789012.example.com + yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:157: domain hosed.example.com + yml_test.go:159: SPF: [v=spf1 a:garbage.example.net -all] yml_test.go:157: domain hosed3.example.com yml_test.go:159: SPF: [v=spf1 a:example.net –all] yml_test.go:157: domain nothosed.example.com @@ -2991,30 +3026,23 @@ yml_test.go:157: domain ctrl.example.com yml_test.go:159: SPF: [v=spf1 a:ctrl.example.com ptr -all] yml_test.go:159: A: [192.0.2.3] + yml_test.go:157: domain example.com + yml_test.go:159: TIMEOUT yml_test.go:157: domain example.net yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] - yml_test.go:157: domain a12345678901234567890123456789012345678901234567890123456789012.example.com - yml_test.go:159: SPF: [v=spf1 -all] - yml_test.go:157: domain hosed.example.com - yml_test.go:159: SPF: [v=spf1 a:garbage.example.net -all] - yml_test.go:157: domain hosed2.example.com - yml_test.go:159: SPF: [v=spf1 €a:example.net -all] - yml_test.go:157: domain fine.example.com - yml_test.go:159: SPF: [v=spf1 a -all] + yml_test.go:157: domain a.example.net + yml_test.go:159: SPF: [v=spf1 -all exp=exp.example.net] yml_test.go:157: domain trail.example.com yml_test.go:159: SPF: [v=spf1 a -all ] yml_test.go:157: domain null.example.com yml_test.go:159: SPF: [v=spf1 ip4: 192.0.2.5 -all] yml_test.go:159: - yml_test.go:157: domain example.com - yml_test.go:159: TIMEOUT - yml_test.go:225: test longlabel - yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com" ("A12345678901234567890123456789012345678901234567890123456789012.example.com") - spf.go:160: check A12345678901234567890123456789012345678901234567890123456789012.example.com 1 - spf.go:176: dns record "v=spf1 -all" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [longlabel] + yml_test.go:157: domain exp.example.net + yml_test.go:159: TXT: [%{l}] + yml_test.go:157: domain hosed2.example.com + yml_test.go:159: SPF: [v=spf1 €a:example.net -all] + yml_test.go:157: domain fine.example.com + yml_test.go:159: SPF: [v=spf1 a -all] yml_test.go:225: test domain-literal yml_test.go:227: checkhost 1.2.3.5 foo@[1.2.3.5] spf.go:129: check host with sender "1.2.3.5" "OEMCOMPUTER" "foo@[1.2.3.5]" ("[1.2.3.5]") @@ -3029,6 +3057,14 @@ spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} spf.go:277: permerror, unknown field yml_test.go:234: success: permerror, unknown field [non-ascii-result] + yml_test.go:225: test two-spaces + yml_test.go:227: checkhost 1.2.3.4 actually@fine.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "actually@fine.example.com" ("fine.example.com") + spf.go:160: check fine.example.com 1 + spf.go:176: dns record "v=spf1 a -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "fine.example.com" {-1 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [two-spaces] yml_test.go:225: test trailing-space yml_test.go:227: checkhost 192.0.2.5 silly@trail.example.com spf.go:129: check host with sender "192.0.2.5" "hosed" "silly@trail.example.com" ("trail.example.com") @@ -3037,12 +3073,12 @@ spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "trail.example.com" {-1 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [trailing-space] - yml_test.go:225: test toolonglabel - yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com" ("A123456789012345678901234567890123456789012345678901234567890123.example.com") - spf.go:160: check A123456789012345678901234567890123456789012345678901234567890123.example.com 1 + yml_test.go:225: test helo-domain-literal + yml_test.go:227: checkhost 1.2.3.5 + spf.go:129: check host with sender "1.2.3.5" "[1.2.3.5]" "" ("[1.2.3.5]") + spf.go:160: check [1.2.3.5] 1 spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [toolonglabel] + yml_test.go:234: success: none, no DNS record found [helo-domain-literal] yml_test.go:225: test non-ascii-non-spf yml_test.go:227: checkhost 1.2.3.4 foobar@nothosed.example.com spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nothosed.example.com" ("nothosed.example.com") @@ -3051,33 +3087,31 @@ spf.go:526: masks on "a:example.net": ["a:example.net" ":example.net" "example.net" "" "" "" ""] "example.net" {-1 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [non-ascii-non-spf] - yml_test.go:225: test two-spaces - yml_test.go:227: checkhost 1.2.3.4 actually@fine.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "actually@fine.example.com" ("fine.example.com") - spf.go:160: check fine.example.com 1 - spf.go:176: dns record "v=spf1 a -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "fine.example.com" {-1 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [two-spaces] - yml_test.go:225: test null-text - yml_test.go:227: checkhost 192.0.2.5 silly@null.example.com - spf.go:129: check host with sender "192.0.2.5" "hosed" "silly@null.example.com" ("null.example.com") - spf.go:160: check null.example.com 1 - spf.go:176: dns record "v=spf1 ip4:192.0.2.5 -all" - spf.go:256: ip ok, pass matched 'ip' - yml_test.go:234: success: pass, matched 'ip' [null-text] - yml_test.go:225: test helo-domain-literal - yml_test.go:227: checkhost 1.2.3.5 - spf.go:129: check host with sender "1.2.3.5" "[1.2.3.5]" "" ("[1.2.3.5]") - spf.go:160: check [1.2.3.5] 1 + yml_test.go:225: test toolonglabel + yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com" ("A123456789012345678901234567890123456789012345678901234567890123.example.com") + spf.go:160: check A123456789012345678901234567890123456789012345678901234567890123.example.com 1 spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [helo-domain-literal] + yml_test.go:234: success: none, no DNS record found [toolonglabel] + yml_test.go:225: test longlabel + yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com" ("A12345678901234567890123456789012345678901234567890123456789012.example.com") + spf.go:160: check A12345678901234567890123456789012345678901234567890123456789012.example.com 1 + spf.go:176: dns record "v=spf1 -all" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [longlabel] yml_test.go:225: test helo-not-fqdn yml_test.go:227: checkhost 1.2.3.5 spf.go:129: check host with sender "1.2.3.5" "A2345678" "" ("A2345678") spf.go:160: check A2345678 1 spf.go:176: dns record "" yml_test.go:234: success: none, no DNS record found [helo-not-fqdn] + yml_test.go:225: test emptylabel + yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A...example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A...example.com" ("A...example.com") + spf.go:160: check A...example.com 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [emptylabel] yml_test.go:225: test nolocalpart yml_test.go:227: checkhost 1.2.3.4 @example.net spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "@example.net" ("example.net") @@ -3085,12 +3119,13 @@ spf.go:176: dns record "v=spf1 -all exp=exp.example.net" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [nolocalpart] - yml_test.go:225: test emptylabel - yml_test.go:227: checkhost 1.2.3.5 lyme.eater@A...example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.net" "lyme.eater@A...example.com" ("A...example.com") - spf.go:160: check A...example.com 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [emptylabel] + yml_test.go:225: test null-text + yml_test.go:227: checkhost 192.0.2.5 silly@null.example.com + spf.go:129: check host with sender "192.0.2.5" "hosed" "silly@null.example.com" ("null.example.com") + spf.go:160: check null.example.com 1 + spf.go:176: dns record "v=spf1 ip4:192.0.2.5 -all" + spf.go:256: ip ok, pass matched 'ip' + yml_test.go:234: success: pass, matched 'ip' [null-text] yml_test.go:152: suite: Record lookup yml_test.go:157: domain spftimeout.example.net yml_test.go:159: TXT: [v=spf1 -all] @@ -3113,6 +3148,24 @@ yml_test.go:157: domain spfonly.example.net yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: TXT: [NONE] + yml_test.go:225: test spfonly + yml_test.go:227: checkhost 1.2.3.4 foo@spfonly.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@spfonly.example.net" ("spfonly.example.net") + spf.go:160: check spfonly.example.net 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [spfonly] + yml_test.go:225: test txttimeout + yml_test.go:227: checkhost 1.2.3.4 foo@txttimeout.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@txttimeout.example.net" ("txttimeout.example.net") + spf.go:160: check txttimeout.example.net 1 + spf.go:164: dns temp error: lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [txttimeout] + yml_test.go:225: test nospftxttimeout + yml_test.go:227: checkhost 1.2.3.4 foo@nospftxttimeout.example.net + spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@nospftxttimeout.example.net" ("nospftxttimeout.example.net") + spf.go:160: check nospftxttimeout.example.net 1 + spf.go:164: dns temp error: lookup : test timeout error + yml_test.go:234: success: temperror, lookup : test timeout error [nospftxttimeout] yml_test.go:225: test alltimeout yml_test.go:227: checkhost 1.2.3.4 foo@alltimeout.example.net spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@alltimeout.example.net" ("alltimeout.example.net") @@ -3133,32 +3186,15 @@ spf.go:176: dns record "v=spf1 -all" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [txtonly] - yml_test.go:225: test spfonly - yml_test.go:227: checkhost 1.2.3.4 foo@spfonly.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@spfonly.example.net" ("spfonly.example.net") - spf.go:160: check spfonly.example.net 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [spfonly] - yml_test.go:225: test txttimeout - yml_test.go:227: checkhost 1.2.3.4 foo@txttimeout.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@txttimeout.example.net" ("txttimeout.example.net") - spf.go:160: check txttimeout.example.net 1 - spf.go:164: dns temp error: lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [txttimeout] - yml_test.go:225: test nospftxttimeout - yml_test.go:227: checkhost 1.2.3.4 foo@nospftxttimeout.example.net - spf.go:129: check host with sender "1.2.3.4" "mail.example.net" "foo@nospftxttimeout.example.net" ("nospftxttimeout.example.net") - spf.go:160: check nospftxttimeout.example.net 1 - spf.go:164: dns temp error: lookup : test timeout error - yml_test.go:234: success: temperror, lookup : test timeout error [nospftxttimeout] yml_test.go:152: suite: Selecting records - yml_test.go:157: domain example3.com - yml_test.go:159: SPF: [v=spf10] + yml_test.go:157: domain example9.com + yml_test.go:159: SPF: [v=SpF1 ~all] + yml_test.go:157: domain example1.com + yml_test.go:159: SPF: [v=spf1] + yml_test.go:157: domain example2.com yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: MX: {0 mail.example1.com} - yml_test.go:157: domain example4.com - yml_test.go:159: SPF: [v=spf1 +all] - yml_test.go:159: TXT: [v=spf1 -all] + yml_test.go:157: domain mail.example1.com + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain example6.com yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: SPF: [V=sPf1 +all] @@ -3166,14 +3202,13 @@ yml_test.go:159: SPF: [V=spf1 -all] yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: TXT: [v=spf1 +all] - yml_test.go:157: domain example9.com - yml_test.go:159: SPF: [v=SpF1 ~all] - yml_test.go:157: domain example1.com - yml_test.go:159: SPF: [v=spf1] - yml_test.go:157: domain example2.com + yml_test.go:157: domain example3.com + yml_test.go:159: SPF: [v=spf10] yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:157: domain mail.example1.com - yml_test.go:159: A: [1.2.3.4] + yml_test.go:159: MX: {0 mail.example1.com} + yml_test.go:157: domain example4.com + yml_test.go:159: SPF: [v=spf1 +all] + yml_test.go:159: TXT: [v=spf1 -all] yml_test.go:157: domain example5.com yml_test.go:159: SPF: [v=spf1 +all] yml_test.go:159: TXT: [v=spf1 -all] @@ -3181,6 +3216,19 @@ yml_test.go:157: domain example7.com yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:225: test nospace1 + yml_test.go:227: checkhost 1.2.3.4 foo@example2.com + spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example2.com" ("example2.com") + spf.go:160: check example2.com 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [nospace1] + yml_test.go:225: test empty + yml_test.go:227: checkhost 1.2.3.4 foo@example1.com + spf.go:129: check host with sender "1.2.3.4" "mail1.example1.com" "foo@example1.com" ("example1.com") + spf.go:160: check example1.com 1 + spf.go:176: dns record "v=spf1" + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [empty] yml_test.go:225: test nospace2 yml_test.go:227: checkhost 1.2.3.4 foo@example3.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example3.com" ("example3.com") @@ -3196,12 +3244,6 @@ spf.go:160: check example5.com 1 spf.go:168: multiple dns records yml_test.go:234: success: permerror, multiple matching DNS records [multitxt1] - yml_test.go:225: test multispf1 - yml_test.go:227: checkhost 1.2.3.4 foo@example7.com - spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example7.com" ("example7.com") - spf.go:160: check example7.com 1 - spf.go:168: multiple dns records - yml_test.go:234: success: permerror, multiple matching DNS records [multispf1] yml_test.go:225: test multispf2 yml_test.go:227: checkhost 1.2.3.4 foo@example8.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example8.com" ("example8.com") @@ -3215,19 +3257,6 @@ spf.go:160: check mail.example1.com 1 spf.go:176: dns record "" yml_test.go:234: success: none, no DNS record found [nospf] - yml_test.go:225: test nospace1 - yml_test.go:227: checkhost 1.2.3.4 foo@example2.com - spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example2.com" ("example2.com") - spf.go:160: check example2.com 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [nospace1] - yml_test.go:225: test empty - yml_test.go:227: checkhost 1.2.3.4 foo@example1.com - spf.go:129: check host with sender "1.2.3.4" "mail1.example1.com" "foo@example1.com" ("example1.com") - spf.go:160: check example1.com 1 - spf.go:176: dns record "v=spf1" - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [empty] yml_test.go:225: test spfoverride yml_test.go:227: checkhost 1.2.3.4 foo@example4.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example4.com" ("example4.com") @@ -3241,6 +3270,12 @@ spf.go:160: check example6.com 1 spf.go:168: multiple dns records yml_test.go:234: success: permerror, multiple matching DNS records [multitxt2] + yml_test.go:225: test multispf1 + yml_test.go:227: checkhost 1.2.3.4 foo@example7.com + spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example7.com" ("example7.com") + spf.go:160: check example7.com 1 + spf.go:168: multiple dns records + yml_test.go:234: success: permerror, multiple matching DNS records [multispf1] yml_test.go:225: test case-insensitive yml_test.go:227: checkhost 1.2.3.4 foo@example9.com spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example9.com" ("example9.com") @@ -3249,42 +3284,39 @@ spf.go:237: softfail matched all yml_test.go:234: success: softfail, matched 'all' [case-insensitive] yml_test.go:152: suite: Record evaluation - yml_test.go:157: domain t4.example.com - yml_test.go:159: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:157: domain t5.example.com + yml_test.go:159: SPF: [v=spf1 redirect=t5.example.com ~all] yml_test.go:157: domain t7.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4] + yml_test.go:157: domain t9.example.com + yml_test.go:159: SPF: [v=spf1 a:foo-bar -all] yml_test.go:157: domain t11.example.com yml_test.go:159: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] - yml_test.go:157: domain t12.example.com - yml_test.go:159: SPF: [v=spf1 a:%{H}.bar -all] - yml_test.go:157: domain t2.example.com - yml_test.go:159: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:157: domain t1.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 -all moo] - yml_test.go:157: domain t3.example.com - yml_test.go:159: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] - yml_test.go:157: domain t5.example.com - yml_test.go:159: SPF: [v=spf1 redirect=t5.example.com ~all] - yml_test.go:157: domain t6.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] + yml_test.go:157: domain t2.example.com + yml_test.go:159: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:157: domain t4.example.com + yml_test.go:159: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:157: domain t8.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect:t2.example.com] - yml_test.go:157: domain t9.example.com - yml_test.go:159: SPF: [v=spf1 a:foo-bar -all] yml_test.go:157: domain t10.example.com yml_test.go:159: SPF: [v=spf1 a:mail.example...com -all] + yml_test.go:157: domain t12.example.com + yml_test.go:159: SPF: [v=spf1 a:%{H}.bar -all] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:225: test invalid-domain-long-via-macro - yml_test.go:227: checkhost 1.2.3.4 foo@t12.example.com - spf.go:129: check host with sender "1.2.3.4" "%%%%%%%%%%%%%%%%%%%%%%" "foo@t12.example.com" ("t12.example.com") - spf.go:160: check t12.example.com 1 - spf.go:176: dns record "v=spf1 a:%{H}.bar -all" - spf.go:526: masks on "a:%{H}.bar": ["a:%{H}.bar" ":%{H}.bar" "%{H}.bar" "" "" "" ""] "%{H}.bar" {-1 -1} - spf.go:708: macro "H": ["H" "H" "" "" ""] - spf.go:805: macro expanded "%{H}.bar" to "t12.example.com.bar" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [invalid-domain-long-via-macro] + yml_test.go:157: domain t3.example.com + yml_test.go:159: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:157: domain t6.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] + yml_test.go:225: test redirect-after-mechanisms1 + yml_test.go:227: checkhost 1.2.3.4 foo@t5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t5.example.com" ("t5.example.com") + spf.go:160: check t5.example.com 1 + spf.go:176: dns record "v=spf1 redirect=t5.example.com ~all" + spf.go:237: softfail matched all + yml_test.go:234: success: softfail, matched 'all' [redirect-after-mechanisms1] yml_test.go:225: test default-result yml_test.go:227: checkhost 1.2.3.5 foo@t7.example.com spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@t7.example.com" ("t7.example.com") @@ -3306,13 +3338,6 @@ spf.go:176: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" spf.go:277: permerror, unknown field yml_test.go:234: success: permerror, unknown field [modifier-charset-bad2] - yml_test.go:225: test redirect-after-mechanisms1 - yml_test.go:227: checkhost 1.2.3.4 foo@t5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t5.example.com" ("t5.example.com") - spf.go:160: check t5.example.com 1 - spf.go:176: dns record "v=spf1 redirect=t5.example.com ~all" - spf.go:237: softfail matched all - yml_test.go:234: success: softfail, matched 'all' [redirect-after-mechanisms1] yml_test.go:225: test invalid-domain-empty-label yml_test.go:227: checkhost 1.2.3.4 foo@t10.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@t10.example.com" ("t10.example.com") @@ -3329,7 +3354,19 @@ spf.go:526: masks on "a:a123456789012345678901234567890123456789012345678901234567890123.example.com": ["a:a123456789012345678901234567890123456789012345678901234567890123.example.com" ":a123456789012345678901234567890123456789012345678901234567890123.example.com" "a123456789012345678901234567890123456789012345678901234567890123.example.com" "" "" "" ""] "a123456789012345678901234567890123456789012345678901234567890123.example.com" {-1 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [invalid-domain-long] + yml_test.go:225: test invalid-domain-long-via-macro + yml_test.go:227: checkhost 1.2.3.4 foo@t12.example.com + spf.go:129: check host with sender "1.2.3.4" "%%%%%%%%%%%%%%%%%%%%%%" "foo@t12.example.com" ("t12.example.com") + spf.go:160: check t12.example.com 1 + spf.go:176: dns record "v=spf1 a:%{H}.bar -all" + spf.go:526: masks on "a:%{H}.bar": ["a:%{H}.bar" ":%{H}.bar" "%{H}.bar" "" "" "" ""] "%{H}.bar" {-1 -1} + spf.go:708: macro "H": ["H" "H" "" "" ""] + spf.go:805: macro expanded "%{H}.bar" to "t12.example.com.bar" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [invalid-domain-long-via-macro] yml_test.go:152: suite: ALL mechanism syntax + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 all -all] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e1.example.com @@ -3340,8 +3377,13 @@ yml_test.go:159: SPF: [v=spf1 -all/8] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 ?all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 all -all] + yml_test.go:225: test all-dot + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 -all." + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [all-dot] yml_test.go:225: test all-arg yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -3370,47 +3412,40 @@ spf.go:176: dns record "v=spf1 all -all" spf.go:237: pass matched all yml_test.go:234: success: pass, matched 'all' [all-double] - yml_test.go:225: test all-dot - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 -all." - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [all-dot] yml_test.go:152: suite: PTR mechanism syntax - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 ptr:example.com -all] - yml_test.go:157: domain 4.2.0.192.in-addr.arpa - yml_test.go:159: PTR: [loop4.example.com.] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ptr/0 -all] - yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa - yml_test.go:159: PTR: [e3.example.com] - yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.D.0.1.0.0.2.ip6.arpa - yml_test.go:159: PTR: [mail.Example.com] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 ptr -all] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:159: AAAA: [2001:db8::1] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 ptr:] - yml_test.go:157: domain loop.example.com - yml_test.go:159: SPF: [v=spf1 ptr] + yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.D.0.1.0.0.2.ip6.arpa + yml_test.go:159: PTR: [mail.Example.com] + yml_test.go:157: domain cname.example.com + yml_test.go:159: CNAME: [CNAME.example.com.] yml_test.go:157: domain 4.3.2.1.in-addr.arpa yml_test.go:159: PTR: [e3.example.com] yml_test.go:159: PTR: [e4.example.com] yml_test.go:159: PTR: [mail.example.com] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:159: AAAA: [2001:db8::1] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 ptr:example.Com -all] + yml_test.go:157: domain 4.2.0.192.in-addr.arpa + yml_test.go:159: PTR: [loop4.example.com.] yml_test.go:157: domain loop4.example.com yml_test.go:159: CNAME: [CNAME.example.com.] - yml_test.go:157: domain cname.example.com - yml_test.go:159: CNAME: [CNAME.example.com.] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ptr/0 -all] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 ptr:example.com -all] + yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa + yml_test.go:159: PTR: [e3.example.com] yml_test.go:157: domain e3.example.com yml_test.go:159: SPF: [v=spf1 ptr -all] yml_test.go:159: A: [1.2.3.4] yml_test.go:159: AAAA: [CAFE:BABE::1] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 ptr -all] + yml_test.go:157: domain loop.example.com + yml_test.go:159: SPF: [v=spf1 ptr] yml_test.go:225: test ptr-empty-domain yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") @@ -3486,91 +3521,83 @@ spf.go:261: ptr ok, pass matched 'ptr' yml_test.go:234: success: pass, matched 'ptr' [ptr-match-ip6] yml_test.go:152: suite: A mechanism syntax - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.com] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 a//33 -all] - yml_test.go:157: domain foo.example.xn--zckzah - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e14.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.xn--zckzah -all] - yml_test.go:157: domain e5a.example.com - yml_test.go:159: SPF: [v=spf1 a:museum] yml_test.go:157: domain e2b.example.com yml_test.go:159: A: [1.1.1.1] yml_test.go:159: SPF: [v=spf1 a//0 -all] - yml_test.go:157: domain e5b.example.com - yml_test.go:159: SPF: [v=spf1 a:museum.] - yml_test.go:157: domain e10.example.com - yml_test.go:159: SPF: [v=spf1 a:foo.example.com/24] - yml_test.go:157: domain e13.example.com - yml_test.go:159: SPF: [v=spf1 a:] - yml_test.go:157: domain foo.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: A: [1.2.3.5] - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 a:example.-com] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 a/0 -all] - yml_test.go:157: domain e2a.example.com - yml_test.go:159: AAAA: [1234::1] - yml_test.go:159: SPF: [v=spf1 a//0 -all] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 a:abc.123] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain ipv6.example.com yml_test.go:159: AAAA: [1234::1] yml_test.go:159: A: [1.1.1.1] yml_test.go:159: SPF: [v=spf1 a -all] - yml_test.go:157: domain e6a.example.com - yml_test.go:159: SPF: [v=spf1 a/33 -all] - yml_test.go:157: domain e8e.example.com - yml_test.go:159: A: [1.2.3.5] - yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:159: SPF: [v=spf1 a/24/64 -all] - yml_test.go:157: domain e2.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: AAAA: [1234::2] + yml_test.go:157: domain e5a.example.com + yml_test.go:159: SPF: [v=spf1 a:museum] + yml_test.go:157: domain e1.example.com yml_test.go:159: SPF: [v=spf1 a/0 -all] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 a//129 -all] - yml_test.go:157: domain e8b.example.com - yml_test.go:159: A: [1.2.3.5] - yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:159: SPF: [v=spf1 a//64 -all] - yml_test.go:157: domain foo:bar/baz.example.com - yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e8.example.com yml_test.go:159: A: [1.2.3.5] yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] yml_test.go:159: SPF: [v=spf1 a/24//64 -all] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 a:example.com:8080] + yml_test.go:157: domain e8e.example.com + yml_test.go:159: A: [1.2.3.5] + yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:159: SPF: [v=spf1 a/24/64 -all] yml_test.go:157: domain e11.example.com yml_test.go:159: SPF: [v=spf1 a:foo:bar/baz.example.com] + yml_test.go:157: domain e13.example.com + yml_test.go:159: SPF: [v=spf1 a:] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 a//33 -all] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 a:111.222.33.44] + yml_test.go:157: domain e5b.example.com + yml_test.go:159: SPF: [v=spf1 a:museum.] + yml_test.go:157: domain e8b.example.com + yml_test.go:159: A: [1.2.3.5] + yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:159: SPF: [v=spf1 a//64 -all] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 a:example.com:8080] + yml_test.go:157: domain e2.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: AAAA: [1234::2] + yml_test.go:159: SPF: [v=spf1 a/0 -all] + yml_test.go:157: domain e2a.example.com + yml_test.go:159: AAAA: [1234::1] + yml_test.go:159: SPF: [v=spf1 a//0 -all] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 a:example.-com] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e8a.example.com yml_test.go:159: A: [1.2.3.5] yml_test.go:159: AAAA: [2001:db8:1234::dead:beef] yml_test.go:159: SPF: [v=spf1 a/24 -all] - yml_test.go:225: test a-cidr6-0-nxdomain - yml_test.go:227: checkhost 1234::1 foo@e2b.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") - spf.go:160: check e2b.example.com 1 + yml_test.go:157: domain e10.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.com/24] + yml_test.go:157: domain foo.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 a:abc.123] + yml_test.go:157: domain e14.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.xn--zckzah -all] + yml_test.go:157: domain foo.example.xn--zckzah + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e6a.example.com + yml_test.go:159: SPF: [v=spf1 a/33 -all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 a:foo.example.com] + yml_test.go:157: domain foo:bar/baz.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:225: test a-cidr6-0-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-nxdomain] - yml_test.go:225: test a-dual-cidr-ip6-default - yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com - spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8a.example.com" ("e8a.example.com") - spf.go:160: check e8a.example.com 1 - spf.go:176: dns record "v=spf1 a/24 -all" - spf.go:526: masks on "a/24": ["a/24" "" "" "/24" "24" "" ""] "e8a.example.com" {24 -1} + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip6-default] + yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4] yml_test.go:225: test a-cidr4-0-ip6 yml_test.go:227: checkhost 1234::1 foo@e2.example.com spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -3579,24 +3606,22 @@ spf.go:526: masks on "a/0": ["a/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [a-cidr4-0-ip6] - yml_test.go:225: test a-cidr6-0-ip6 - yml_test.go:227: checkhost 1234::1 foo@e2a.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:561: mx matched 1234::1, 1234::1, {-1 0} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-cidr6-0-ip6] - yml_test.go:225: test a-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 a//33 -all" - spf.go:526: masks on "a//33": ["a//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} + yml_test.go:225: test a-bad-cidr4 + yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") + spf.go:160: check e6a.example.com 1 + spf.go:176: dns record "v=spf1 a/33 -all" + spf.go:246: a ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [a-bad-cidr4] + yml_test.go:225: test a-dual-cidr-ip6-default + yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com + spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8a.example.com" ("e8a.example.com") + spf.go:160: check e8a.example.com 1 + spf.go:176: dns record "v=spf1 a/24 -all" + spf.go:526: masks on "a/24": ["a/24" "" "" "/24" "24" "" ""] "e8a.example.com" {24 -1} spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6] - yml_test.go:225: test a-multi-ip1 + yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip6-default] + yml_test.go:225: test a-multi-ip2 yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") spf.go:160: check e10.example.com 1 @@ -3604,16 +3629,16 @@ spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-multi-ip1] - yml_test.go:225: test a-dual-cidr-ip6-match - yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com - spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8.example.com" ("e8.example.com") - spf.go:160: check e8.example.com 1 - spf.go:176: dns record "v=spf1 a/24//64 -all" - spf.go:526: masks on "a/24//64": ["a/24//64" "" "" "/24" "24" "//64" "64"] "e8.example.com" {24 64} - spf.go:561: mx matched 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, {24 64} + yml_test.go:234: success: pass, matched 'a' [a-multi-ip2] + yml_test.go:225: test a-cidr6-0-ip6 + yml_test.go:227: checkhost 1234::1 foo@e2a.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 a//0 -all" + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:561: mx matched 1234::1, 1234::1, {-1 0} spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip6-match] + yml_test.go:234: success: pass, matched 'a' [a-cidr6-0-ip6] yml_test.go:225: test a-dash-in-toplabel yml_test.go:227: checkhost 1.2.3.4 foo@e14.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e14.example.com" ("e14.example.com") @@ -3623,6 +3648,22 @@ spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-dash-in-toplabel] + yml_test.go:225: test a-dual-cidr-ip4-default + yml_test.go:227: checkhost 1.2.3.4 foo@e8b.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8b.example.com" ("e8b.example.com") + spf.go:160: check e8b.example.com 1 + spf.go:176: dns record "v=spf1 a//64 -all" + spf.go:526: masks on "a//64": ["a//64" "" "" "" "" "//64" "64"] "e8b.example.com" {-1 64} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip4-default] + yml_test.go:225: test a-cidr6-0-nxdomain + yml_test.go:227: checkhost 1234::1 foo@e2b.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2b.example.com" ("e2b.example.com") + spf.go:160: check e2b.example.com 1 + spf.go:176: dns record "v=spf1 a//0 -all" + spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-nxdomain] yml_test.go:225: test a-dual-cidr-ip4-match yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -3632,15 +3673,14 @@ spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 64} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip4-match] - yml_test.go:225: test a-multi-ip2 - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 a:foo.example.com/24" - spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} - spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-multi-ip2] + yml_test.go:225: test a-dual-cidr-ip4-err + yml_test.go:227: checkhost 1.2.3.4 foo@e8e.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8e.example.com" ("e8e.example.com") + spf.go:160: check e8e.example.com 1 + spf.go:176: dns record "v=spf1 a/24/64 -all" + spf.go:526: masks on "a/24/64": [] "e8e.example.com" {-1 -1} + spf.go:246: a ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [a-dual-cidr-ip4-err] yml_test.go:225: test a-cidr6-0-ip4mapped yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") @@ -3649,15 +3689,15 @@ spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4mapped] - yml_test.go:225: test a-ip6-dualstack - yml_test.go:227: checkhost 1234::1 foo@ipv6.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@ipv6.example.com" ("ipv6.example.com") - spf.go:160: check ipv6.example.com 1 - spf.go:176: dns record "v=spf1 a -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "ipv6.example.com" {-1 -1} - spf.go:561: mx matched 1234::1, 1234::1, {-1 -1} + yml_test.go:225: test a-multi-ip1 + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 a:foo.example.com/24" + spf.go:526: masks on "a:foo.example.com/24": ["a:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} + spf.go:561: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [a-ip6-dualstack] + yml_test.go:234: success: pass, matched 'a' [a-multi-ip1] yml_test.go:225: test a-nxdomain yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -3666,29 +3706,6 @@ spf.go:526: masks on "a/0": ["a/0" "" "" "/0" "0" "" ""] "e1.example.com" {0 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [a-nxdomain] - yml_test.go:225: test a-dual-cidr-ip4-default - yml_test.go:227: checkhost 1.2.3.4 foo@e8b.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8b.example.com" ("e8b.example.com") - spf.go:160: check e8b.example.com 1 - spf.go:176: dns record "v=spf1 a//64 -all" - spf.go:526: masks on "a//64": ["a//64" "" "" "" "" "//64" "64"] "e8b.example.com" {-1 64} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-dual-cidr-ip4-default] - yml_test.go:225: test a-bad-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 a//129 -all" - spf.go:246: a ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [a-bad-cidr6] - yml_test.go:225: test a-dual-cidr-ip4-err - yml_test.go:227: checkhost 1.2.3.4 foo@e8e.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8e.example.com" ("e8e.example.com") - spf.go:160: check e8e.example.com 1 - spf.go:176: dns record "v=spf1 a/24/64 -all" - spf.go:526: masks on "a/24/64": [] "e8e.example.com" {-1 -1} - spf.go:246: a ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [a-dual-cidr-ip4-err] yml_test.go:225: test a-cidr4-0 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -3698,62 +3715,70 @@ spf.go:561: mx matched 1.2.3.4, 1.1.1.1, {0 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [a-cidr4-0] - yml_test.go:225: test a-cidr6-0-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 a//0 -all" - spf.go:526: masks on "a//0": ["a//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + yml_test.go:225: test a-ip6-dualstack + yml_test.go:227: checkhost 1234::1 foo@ipv6.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@ipv6.example.com" ("ipv6.example.com") + spf.go:160: check ipv6.example.com 1 + spf.go:176: dns record "v=spf1 a -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "ipv6.example.com" {-1 -1} + spf.go:561: mx matched 1234::1, 1234::1, {-1 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [a-ip6-dualstack] + yml_test.go:225: test a-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 a//33 -all" + spf.go:526: masks on "a//33": ["a//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [a-cidr6-0-ip4] - yml_test.go:225: test a-bad-cidr4 - yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") - spf.go:160: check e6a.example.com 1 - spf.go:176: dns record "v=spf1 a/33 -all" + yml_test.go:234: success: fail, matched 'all' [a-cidr6] + yml_test.go:225: test a-bad-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 a//129 -all" spf.go:246: a ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [a-bad-cidr4] + yml_test.go:234: success: permerror, invalid mask [a-bad-cidr6] + yml_test.go:225: test a-dual-cidr-ip6-match + yml_test.go:227: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com + spf.go:129: check host with sender "2001:db8:1234::cafe:babe" "mail.example.com" "foo@e8.example.com" ("e8.example.com") + spf.go:160: check e8.example.com 1 + spf.go:176: dns record "v=spf1 a/24//64 -all" + spf.go:526: masks on "a/24//64": ["a/24//64" "" "" "/24" "24" "//64" "64"] "e8.example.com" {24 64} + spf.go:561: mx matched 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, {24 64} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [a-dual-cidr-ip6-match] yml_test.go:152: suite: Include mechanism semantics and syntax - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 include:ip7.example.com -all] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 include:ip5.example.com/24 -all] - yml_test.go:157: domain ip5.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.5 -all] + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain ip6.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.6 ~all] + yml_test.go:157: domain ip7.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.7 ?all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 include:ip7.example.com -all] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 include:ip5.example.com ~all] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 include:ip8.example.com -all] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 include:e6.example.com -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 include +all] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 include: -all] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain ip7.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.7 ?all] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 include:ip6.example.com all] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 include:erehwon.example.com -all] yml_test.go:157: domain ip8.example.com yml_test.go:159: TIMEOUT yml_test.go:157: domain erehwon.example.com yml_test.go:159: TXT: [v=spfl am not an SPF record] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 include:ip5.example.com ~all] - yml_test.go:225: test include-fail - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 include:ip5.example.com ~all" - spf.go:160: check ip5.example.com 2 - spf.go:176: dns record "v=spf1 ip4:1.2.3.5 -all" - spf.go:237: fail matched all - spf.go:237: softfail matched all - yml_test.go:234: success: softfail, matched 'all' [include-fail] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 include:ip6.example.com all] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 include +all] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 include:erehwon.example.com -all] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 include: -all] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 include:ip5.example.com/24 -all] + yml_test.go:157: domain ip5.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.5 -all] yml_test.go:225: test include-softfail yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -3764,16 +3789,6 @@ spf.go:237: softfail matched all spf.go:237: pass matched all yml_test.go:234: success: pass, matched 'all' [include-softfail] - yml_test.go:225: test include-neutral - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 include:ip7.example.com -all" - spf.go:160: check ip7.example.com 2 - spf.go:176: dns record "v=spf1 ip4:1.2.3.7 ?all" - spf.go:237: neutral matched all - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [include-neutral] yml_test.go:225: test include-permerror yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") @@ -3784,6 +3799,13 @@ spf.go:277: permerror, unknown field spf.go:241: include ok, permerror unknown field yml_test.go:234: success: permerror, unknown field [include-permerror] + yml_test.go:225: test include-syntax-error + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 include +all" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [include-syntax-error] yml_test.go:225: test include-cidr yml_test.go:227: checkhost 1.2.3.4 foo@e9.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e9.example.com" ("e9.example.com") @@ -3792,15 +3814,26 @@ spf.go:659: macro contains / spf.go:241: include ok, permerror invalid macro yml_test.go:234: success: permerror, invalid macro [include-cidr] - yml_test.go:225: test include-none - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 include:erehwon.example.com -all" - spf.go:160: check erehwon.example.com 2 - spf.go:176: dns record "" - spf.go:241: include ok, permerror no DNS record found - yml_test.go:234: success: permerror, no DNS record found [include-none] + yml_test.go:225: test include-fail + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 include:ip5.example.com ~all" + spf.go:160: check ip5.example.com 2 + spf.go:176: dns record "v=spf1 ip4:1.2.3.5 -all" + spf.go:237: fail matched all + spf.go:237: softfail matched all + yml_test.go:234: success: softfail, matched 'all' [include-fail] + yml_test.go:225: test include-neutral + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 include:ip7.example.com -all" + spf.go:160: check ip7.example.com 2 + spf.go:176: dns record "v=spf1 ip4:1.2.3.7 ?all" + spf.go:237: neutral matched all + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [include-neutral] yml_test.go:225: test include-temperror yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") @@ -3810,13 +3843,15 @@ spf.go:164: dns temp error: lookup : test timeout error spf.go:241: include ok, temperror lookup : test timeout error yml_test.go:234: success: temperror, lookup : test timeout error [include-temperror] - yml_test.go:225: test include-syntax-error - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 include +all" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [include-syntax-error] + yml_test.go:225: test include-none + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 include:erehwon.example.com -all" + spf.go:160: check erehwon.example.com 2 + spf.go:176: dns record "" + spf.go:241: include ok, permerror no DNS record found + yml_test.go:234: success: permerror, no DNS record found [include-none] yml_test.go:225: test include-empty-domain yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -3827,45 +3862,34 @@ spf.go:241: include ok, permerror no DNS record found yml_test.go:234: success: permerror, no DNS record found [include-empty-domain] yml_test.go:152: suite: MX mechanism syntax - yml_test.go:157: domain foo1.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain foo:bar/baz.example.com + yml_test.go:159: MX: {0 foo:bar/baz.example.com} + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain e12.example.com yml_test.go:159: SPF: [v=spf1 mx:example.-com] - yml_test.go:157: domain e13.example.com - yml_test.go:159: SPF: [v=spf1 mx: -all] - yml_test.go:157: domain e2a.example.com - yml_test.go:159: AAAA: [1234::1] - yml_test.go:159: MX: {0 e2a.example.com} + yml_test.go:157: domain e2.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: AAAA: [1234::2] + yml_test.go:159: MX: {0 e2.example.com} + yml_test.go:159: SPF: [v=spf1 mx/0 -all] + yml_test.go:157: domain e2b.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: MX: {0 e2b.example.com} yml_test.go:159: SPF: [v=spf1 mx//0 -all] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 mx:abc.123] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 mx//33 -all] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 mx:example.com:8080] yml_test.go:157: domain e6a.example.com yml_test.go:159: SPF: [v=spf1 mx/33 -all] yml_test.go:157: domain e10.example.com yml_test.go:159: SPF: [v=spf1 mx:foo.example.com/24] - yml_test.go:157: domain foo.example.com - yml_test.go:159: MX: {0 foo1.example.com} + yml_test.go:157: domain e13.example.com + yml_test.go:159: SPF: [v=spf1 mx: -all] yml_test.go:157: domain e11.example.com yml_test.go:159: SPF: [v=spf1 mx:foo:bar/baz.example.com] - yml_test.go:157: domain e2.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: AAAA: [1234::2] - yml_test.go:159: MX: {0 e2.example.com} - yml_test.go:159: SPF: [v=spf1 mx/0 -all] - yml_test.go:157: domain e2b.example.com - yml_test.go:159: A: [1.1.1.1] - yml_test.go:159: MX: {0 e2b.example.com} - yml_test.go:159: SPF: [v=spf1 mx//0 -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 mx:foo.example.com] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 mx//129 -all] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] yml_test.go:159: MX: {0 } @@ -3873,11 +3897,56 @@ yml_test.go:157: domain e1.example.com yml_test.go:159: SPF: [v=spf1 mx/0 -all] yml_test.go:159: MX: {0 e1.example.com} - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 mx:example.com:8080] - yml_test.go:157: domain foo:bar/baz.example.com - yml_test.go:159: MX: {0 foo:bar/baz.example.com} + yml_test.go:157: domain e2a.example.com + yml_test.go:159: AAAA: [1234::1] + yml_test.go:159: MX: {0 e2a.example.com} + yml_test.go:159: SPF: [v=spf1 mx//0 -all] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 mx] yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain foo1.example.com + yml_test.go:159: A: [1.1.1.1] + yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 mx:foo.example.com] + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 mx//129 -all] + yml_test.go:157: domain foo.example.com + yml_test.go:159: MX: {0 foo1.example.com} + yml_test.go:225: test mx-cidr4-0 + yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 mx/0 -all" + spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} + spf.go:615: mx matched 1.2.3.4, 1.1.1.1, {0 -1} + spf.go:251: mx ok, pass matched 'mx' + yml_test.go:234: success: pass, matched 'mx' [mx-cidr4-0] + yml_test.go:225: test mx-cidr4-0-ip6 + yml_test.go:227: checkhost 1234::1 foo@e2.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 mx/0 -all" + spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr4-0-ip6] + yml_test.go:225: test mx-cidr6-0-ip6 + yml_test.go:227: checkhost 1234::1 foo@e2a.example.com + spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + spf.go:160: check e2a.example.com 1 + spf.go:176: dns record "v=spf1 mx//0 -all" + spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} + spf.go:615: mx matched 1234::1, 1234::1, {-1 0} + spf.go:251: mx ok, pass matched 'mx' + yml_test.go:234: success: pass, matched 'mx' [mx-cidr6-0-ip6] + yml_test.go:225: test mx-empty + yml_test.go:227: checkhost 1.2.3.4 + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "" ("mail.example.com") + spf.go:160: check mail.example.com 1 + spf.go:176: dns record "v=spf1 mx" + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "mail.example.com" {-1 -1} + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [mx-empty] yml_test.go:225: test mx-bad-cidr6 yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") @@ -3894,15 +3963,29 @@ spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip1] - yml_test.go:225: test mx-multi-ip2 - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 mx:foo.example.com/24" - spf.go:526: masks on "mx:foo.example.com/24": ["mx:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} - spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} - spf.go:251: mx ok, pass matched 'mx' - yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip2] + yml_test.go:225: test mx-implicit + yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 mx" + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e4.example.com" {-1 -1} + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [mx-implicit] + yml_test.go:225: test mx-bad-cidr4 + yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") + spf.go:160: check e6a.example.com 1 + spf.go:176: dns record "v=spf1 mx/33 -all" + spf.go:251: mx ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [mx-bad-cidr4] + yml_test.go:225: test mx-cidr6 + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 mx//33 -all" + spf.go:526: masks on "mx//33": ["mx//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr6] yml_test.go:225: test mx-nxdomain yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -3911,15 +3994,14 @@ spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e1.example.com" {0 -1} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [mx-nxdomain] - yml_test.go:225: test mx-cidr6-0-ip6 - yml_test.go:227: checkhost 1234::1 foo@e2a.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") + yml_test.go:225: test mx-cidr6-0-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") spf.go:160: check e2a.example.com 1 spf.go:176: dns record "v=spf1 mx//0 -all" spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:615: mx matched 1234::1, 1234::1, {-1 0} - spf.go:251: mx ok, pass matched 'mx' - yml_test.go:234: success: pass, matched 'mx' [mx-cidr6-0-ip6] + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4] yml_test.go:225: test mx-cidr6-0-ip4mapped yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") @@ -3936,81 +4018,34 @@ spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2b.example.com" {-1 0} spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-nxdomain] - yml_test.go:225: test mx-cidr6 - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 mx//33 -all" - spf.go:526: masks on "mx//33": ["mx//33" "" "" "" "" "//33" "33"] "e6.example.com" {-1 33} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr6] - yml_test.go:225: test mx-cidr4-0 - yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 mx/0 -all" - spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} - spf.go:615: mx matched 1.2.3.4, 1.1.1.1, {0 -1} + yml_test.go:225: test mx-multi-ip2 + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 mx:foo.example.com/24" + spf.go:526: masks on "mx:foo.example.com/24": ["mx:foo.example.com/24" ":foo.example.com" "foo.example.com" "/24" "24" "" ""] "foo.example.com" {24 -1} + spf.go:615: mx matched 1.2.3.4, 1.2.3.5, {24 -1} spf.go:251: mx ok, pass matched 'mx' - yml_test.go:234: success: pass, matched 'mx' [mx-cidr4-0] - yml_test.go:225: test mx-cidr6-0-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2a.example.com" ("e2a.example.com") - spf.go:160: check e2a.example.com 1 - spf.go:176: dns record "v=spf1 mx//0 -all" - spf.go:526: masks on "mx//0": ["mx//0" "" "" "" "" "//0" "0"] "e2a.example.com" {-1 0} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr6-0-ip4] - yml_test.go:225: test mx-empty - yml_test.go:227: checkhost 1.2.3.4 - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "" ("mail.example.com") - spf.go:160: check mail.example.com 1 - spf.go:176: dns record "v=spf1 mx" - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "mail.example.com" {-1 -1} - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [mx-empty] - yml_test.go:225: test mx-implicit - yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 mx" - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e4.example.com" {-1 -1} - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [mx-implicit] - yml_test.go:225: test mx-bad-cidr4 - yml_test.go:227: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6a.example.com" ("e6a.example.com") - spf.go:160: check e6a.example.com 1 - spf.go:176: dns record "v=spf1 mx/33 -all" - spf.go:251: mx ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [mx-bad-cidr4] - yml_test.go:225: test mx-cidr4-0-ip6 - yml_test.go:227: checkhost 1234::1 foo@e2.example.com - spf.go:129: check host with sender "1234::1" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 mx/0 -all" - spf.go:526: masks on "mx/0": ["mx/0" "" "" "/0" "0" "" ""] "e2.example.com" {0 -1} - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [mx-cidr4-0-ip6] + yml_test.go:234: success: pass, matched 'mx' [mx-multi-ip2] yml_test.go:152: suite: EXISTS mechanism syntax - yml_test.go:157: domain mail6.example.com - yml_test.go:159: AAAA: [CAFE:BABE::4] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 exists] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 exists:mail.example.com/24] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 exists:mail6.example.com -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 exists:err.example.com -all] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain mail6.example.com + yml_test.go:159: AAAA: [CAFE:BABE::4] yml_test.go:157: domain err.example.com yml_test.go:159: TIMEOUT yml_test.go:157: domain e1.example.com yml_test.go:159: SPF: [v=spf1 exists:] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 exists:mail.example.com/24] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 exists:mail.example.com] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 exists:err.example.com -all] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 exists] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 exists:mail6.example.com -all] yml_test.go:225: test exists-empty-domain yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") @@ -4062,61 +4097,26 @@ spf.go:266: exists ok, temperror lookup : test timeout error yml_test.go:234: success: temperror, lookup : test timeout error [exists-dnserr] yml_test.go:152: suite: IP4 mechanism syntax - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1/0 -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/33 -all] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/032 -all] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4//32] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4:8080] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1/0 -all] yml_test.go:157: domain e2.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/32 -all] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/33 -all] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 ip4] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4:8080] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4/032 -all] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4//32] yml_test.go:157: domain e9.example.com yml_test.go:159: SPF: [v=spf1 ip4:1.2.3] - yml_test.go:225: test bad-ip4-port - yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") - spf.go:160: check e8.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4:8080" - spf.go:256: ip ok, permerror invalid ipX value - yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-port] - yml_test.go:225: test cidr4-0 - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.1.1.1/0 -all" - spf.go:256: ip ok, pass matched 'ip' - yml_test.go:234: success: pass, matched 'ip' [cidr4-0] - yml_test.go:225: test cidr4-33 - yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4/33 -all" - spf.go:256: ip ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [cidr4-33] - yml_test.go:225: test ip4-dual-cidr - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4//32" - spf.go:256: ip ok, permerror invalid mask - yml_test.go:234: success: permerror, invalid mask [ip4-dual-cidr] - yml_test.go:225: test ip4-mapped-ip6 - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4" - spf.go:256: ip ok, fail matched 'ip' - yml_test.go:234: success: fail, matched 'ip' [ip4-mapped-ip6] yml_test.go:225: test cidr4-32 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -4138,7 +4138,44 @@ spf.go:176: dns record "v=spf1 ip4:1.2.3" spf.go:256: ip ok, permerror invalid ipX value yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-short] + yml_test.go:225: test ip4-dual-cidr + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4//32" + spf.go:256: ip ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [ip4-dual-cidr] + yml_test.go:225: test ip4-mapped-ip6 + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4" + spf.go:256: ip ok, fail matched 'ip' + yml_test.go:234: success: fail, matched 'ip' [ip4-mapped-ip6] + yml_test.go:225: test cidr4-0 + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.1.1.1/0 -all" + spf.go:256: ip ok, pass matched 'ip' + yml_test.go:234: success: pass, matched 'ip' [cidr4-0] + yml_test.go:225: test cidr4-33 + yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4/33 -all" + spf.go:256: ip ok, permerror invalid mask + yml_test.go:234: success: permerror, invalid mask [cidr4-33] + yml_test.go:225: test bad-ip4-port + yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") + spf.go:160: check e8.example.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4:8080" + spf.go:256: ip ok, permerror invalid ipX value + yml_test.go:234: success: permerror, invalid ipX value [bad-ip4-port] yml_test.go:152: suite: IP6 mechanism syntax + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 ip6:::1.1.1.1/129] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 ip6:::1.1.1.1//33] yml_test.go:157: domain e5.example.com @@ -4151,8 +4188,13 @@ yml_test.go:159: SPF: [v=spf1 -all ip6] yml_test.go:157: domain e2.example.com yml_test.go:159: SPF: [v=spf1 ip6:::1.1.1.1/0] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 ip6:::1.1.1.1/129] + yml_test.go:225: test cidr6-0 + yml_test.go:227: checkhost deaf:babe::cab:fee foo@e2.example.com + spf.go:129: check host with sender "deaf:babe::cab:fee" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" + spf.go:256: ip ok, pass matched 'ip' + yml_test.go:234: success: pass, matched 'ip' [cidr6-0] yml_test.go:225: test cidr6-129 yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") @@ -4167,20 +4209,6 @@ spf.go:176: dns record "v=spf1 ip6:Cafe:Babe:8000::/33" spf.go:256: ip ok, pass matched 'ip' yml_test.go:234: success: pass, matched 'ip' [cidr6-33] - yml_test.go:225: test cidr6-33-ip4 - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 ip6:Cafe:Babe:8000::/33" - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [cidr6-33-ip4] - yml_test.go:225: test ip6-bad1 - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 ip6::CAFE::BABE" - spf.go:256: ip ok, permerror invalid ipX value - yml_test.go:234: success: permerror, invalid ipX value [ip6-bad1] yml_test.go:225: test cidr6-0-ip4 yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") @@ -4195,13 +4223,6 @@ spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" spf.go:284: fallback to neutral yml_test.go:234: success: neutral, [cidr6-ip4] - yml_test.go:225: test cidr6-0 - yml_test.go:227: checkhost deaf:babe::cab:fee foo@e2.example.com - spf.go:129: check host with sender "deaf:babe::cab:fee" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 ip6:::1.1.1.1/0" - spf.go:256: ip ok, pass matched 'ip' - yml_test.go:234: success: pass, matched 'ip' [cidr6-0] yml_test.go:225: test cidr6-bad yml_test.go:227: checkhost 1.2.3.4 foo@e4.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e4.example.com" ("e4.example.com") @@ -4209,102 +4230,120 @@ spf.go:176: dns record "v=spf1 ip6:::1.1.1.1//33" spf.go:256: ip ok, permerror invalid mask yml_test.go:234: success: permerror, invalid mask [cidr6-bad] + yml_test.go:225: test cidr6-33-ip4 + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 ip6:Cafe:Babe:8000::/33" + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [cidr6-33-ip4] + yml_test.go:225: test ip6-bad1 + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 ip6::CAFE::BABE" + spf.go:256: ip ok, permerror invalid ipX value + yml_test.go:234: success: permerror, invalid ipX value [ip6-bad1] yml_test.go:152: suite: Semantics of exp and other modifiers - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 exp= -all] - yml_test.go:157: domain tworecs.example.com - yml_test.go:159: SPF: [v=spf1 exp=twoexp.example.com -all] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 =all] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=exp4.example.com] - yml_test.go:157: domain testimplicit.example.com - yml_test.go:159: SPF: [v=spf1 a -all] - yml_test.go:159: A: [192.0.2.2] - yml_test.go:157: domain e10.example.com - yml_test.go:159: SPF: [v=spf1 redirect=erehwon.example.com] - yml_test.go:157: domain e21.example.com - yml_test.go:159: SPF: [v=spf1 exp=e21msg.example.com -all] - yml_test.go:157: domain nonascii.example.com - yml_test.go:159: SPF: [v=spf1 exp=badexp.example.com -all] - yml_test.go:157: domain badexp.example.com - yml_test.go:159: TXT: [Explanation] - yml_test.go:157: domain exp4.example.com - yml_test.go:159: TXT: [%{l} in implementation] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 1up=foo] yml_test.go:157: domain e9.example.com yml_test.go:159: SPF: [v=spf1 -all foo=%abc] - yml_test.go:157: domain e11.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=e11msg.example.com] - yml_test.go:157: domain mail.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 -all] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 exp= -all] + yml_test.go:157: domain e13msg.example.com + yml_test.go:159: TXT: [The %{x}-files.] + yml_test.go:157: domain e19.example.com + yml_test.go:159: SPF: [v=spf1 default=pass] + yml_test.go:157: domain nonascii.example.com + yml_test.go:159: SPF: [v=spf1 exp=badexp.example.com -all] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] yml_test.go:157: domain e4.example.com yml_test.go:159: SPF: [v=spf1 -all exp=exp2.example.com] - yml_test.go:157: domain exp2.example.com - yml_test.go:159: TXT: [See me.] - yml_test.go:157: domain e16.example.com - yml_test.go:159: SPF: [v=spf1 exp=-all] - yml_test.go:157: domain e18.example.com - yml_test.go:159: SPF: [v=spf1 ?all redirect=] - yml_test.go:157: domain e20.example.com - yml_test.go:159: SPF: [v=spf1 default=+] - yml_test.go:157: domain e23.example.com - yml_test.go:159: SPF: [v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all] yml_test.go:157: domain exp1.example.com yml_test.go:159: TXT: [No-see-um] - yml_test.go:157: domain e17.example.com - yml_test.go:159: SPF: [v=spf1 redirect=-all ?all] - yml_test.go:157: domain e24.example.com - yml_test.go:159: SPF: [v=spf1 redirect=testimplicit.example.com] - yml_test.go:159: A: [192.0.2.1] - yml_test.go:157: domain exp3.example.com - yml_test.go:159: TXT: [Correct!] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] + yml_test.go:157: domain e15.example.com + yml_test.go:159: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] + yml_test.go:157: domain e16.example.com + yml_test.go:159: SPF: [v=spf1 exp=-all] + yml_test.go:157: domain e21msg.example.com + yml_test.go:159: TIMEOUT + yml_test.go:157: domain mail.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain exp2.example.com + yml_test.go:159: TXT: [See me.] + yml_test.go:157: domain exp4.example.com + yml_test.go:159: TXT: [%{l} in implementation] + yml_test.go:157: domain e17.example.com + yml_test.go:159: SPF: [v=spf1 redirect=-all ?all] + yml_test.go:157: domain e20.example.com + yml_test.go:159: SPF: [v=spf1 default=+] + yml_test.go:157: domain e21.example.com + yml_test.go:159: SPF: [v=spf1 exp=e21msg.example.com -all] + yml_test.go:157: domain e22.example.com + yml_test.go:159: SPF: [v=spf1 exp=mail.example.com -all] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=exp4.example.com] + yml_test.go:157: domain tworecs.example.com + yml_test.go:159: SPF: [v=spf1 exp=twoexp.example.com -all] + yml_test.go:157: domain e10.example.com + yml_test.go:159: SPF: [v=spf1 redirect=erehwon.example.com] yml_test.go:157: domain e11msg.example.com yml_test.go:159: TXT: [Answer a fool according to his folly.] yml_test.go:159: TXT: [Do not answer a fool according to his folly.] + yml_test.go:157: domain e13.example.com + yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all] + yml_test.go:157: domain testimplicit.example.com + yml_test.go:159: SPF: [v=spf1 a -all] + yml_test.go:159: A: [192.0.2.2] + yml_test.go:157: domain e11.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=e11msg.example.com] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] + yml_test.go:157: domain exp3.example.com + yml_test.go:159: TXT: [Correct!] + yml_test.go:157: domain badexp.example.com + yml_test.go:159: TXT: [Explanation] yml_test.go:157: domain twoexp.example.com yml_test.go:159: TXT: [one] yml_test.go:159: TXT: [two] + yml_test.go:157: domain e23.example.com + yml_test.go:159: SPF: [v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 1up=foo] yml_test.go:157: domain e14.example.com yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] - yml_test.go:157: domain e19.example.com - yml_test.go:159: SPF: [v=spf1 default=pass] - yml_test.go:157: domain e21msg.example.com - yml_test.go:159: TIMEOUT - yml_test.go:157: domain e22.example.com - yml_test.go:159: SPF: [v=spf1 exp=mail.example.com -all] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] - yml_test.go:157: domain e13.example.com - yml_test.go:159: SPF: [v=spf1 exp=e13msg.example.com -all] - yml_test.go:157: domain e13msg.example.com - yml_test.go:159: TXT: [The %{x}-files.] - yml_test.go:157: domain e15.example.com - yml_test.go:159: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] - yml_test.go:225: test redirect-none - yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 redirect=erehwon.example.com" - spf.go:273: redirect, "redirect=erehwon.example.com" - spf.go:160: check erehwon.example.com 2 - spf.go:176: dns record "" - yml_test.go:234: success: permerror, no DNS record found [redirect-none] - yml_test.go:225: test exp-no-txt - yml_test.go:227: checkhost 1.2.3.4 foo@e22.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e22.example.com" ("e22.example.com") - spf.go:160: check e22.example.com 1 - spf.go:176: dns record "v=spf1 exp=mail.example.com -all" + yml_test.go:157: domain e18.example.com + yml_test.go:159: SPF: [v=spf1 ?all redirect=] + yml_test.go:157: domain e24.example.com + yml_test.go:159: SPF: [v=spf1 redirect=testimplicit.example.com] + yml_test.go:159: A: [192.0.2.1] + yml_test.go:225: test include-ignores-exp + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 include:e3.example.com -all exp=exp3.example.com" + spf.go:160: check e3.example.com 2 + spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" spf.go:270: exp= not used, skipping + spf.go:273: redirect, "redirect=e4.example.com" + spf.go:160: check e4.example.com 3 + spf.go:176: dns record "v=spf1 -all exp=exp2.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [exp-no-txt] + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [include-ignores-exp] + yml_test.go:225: test invalid-modifier + yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 1up=foo" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [invalid-modifier] yml_test.go:225: test exp-dns-error yml_test.go:227: checkhost 1.2.3.4 foo@e21.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e21.example.com" ("e21.example.com") @@ -4313,20 +4352,42 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exp-dns-error] - yml_test.go:225: test redirect-twice - yml_test.go:227: checkhost 1.2.3.4 foo@e15.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e15.example.com" ("e15.example.com") - spf.go:160: check e15.example.com 1 - spf.go:176: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" - yml_test.go:234: success: permerror, invalid domain [redirect-twice] - yml_test.go:225: test non-ascii-exp - yml_test.go:227: checkhost 1.2.3.4 foobar@nonascii.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nonascii.example.com" ("nonascii.example.com") - spf.go:160: check nonascii.example.com 1 - spf.go:176: dns record "v=spf1 exp=badexp.example.com -all" + yml_test.go:225: test redirect-cancels-exp + yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e2.example.com" spf.go:270: exp= not used, skipping + spf.go:273: redirect, "redirect=e2.example.com" + spf.go:160: check e2.example.com 2 + spf.go:176: dns record "v=spf1 -all" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [non-ascii-exp] + yml_test.go:234: success: fail, matched 'all' [redirect-cancels-exp] + yml_test.go:225: test dorky-sentinel + yml_test.go:227: checkhost 1.2.3.4 Macro Error@e8.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "Macro Error@e8.example.com" ("e8.example.com") + spf.go:160: check e8.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=exp4.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [dorky-sentinel] + yml_test.go:225: test two-exp-records + yml_test.go:227: checkhost 1.2.3.4 foobar@tworecs.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@tworecs.example.com" ("tworecs.example.com") + spf.go:160: check tworecs.example.com 1 + spf.go:176: dns record "v=spf1 exp=twoexp.example.com -all" + spf.go:270: exp= not used, skipping + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [two-exp-records] + yml_test.go:225: test exp-void + yml_test.go:227: checkhost 1.2.3.4 foo@e23.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e23.example.com" ("e23.example.com") + spf.go:160: check e23.example.com 1 + spf.go:176: dns record "v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all" + spf.go:526: masks on "a:erehwon.example.com": ["a:erehwon.example.com" ":erehwon.example.com" "erehwon.example.com" "" "" "" ""] "erehwon.example.com" {-1 -1} + spf.go:526: masks on "a:foobar.com": ["a:foobar.com" ":foobar.com" "foobar.com" "" "" "" ""] "foobar.com" {-1 -1} + spf.go:270: exp= not used, skipping + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [exp-void] yml_test.go:225: test redirect-cancels-prior-exp yml_test.go:227: checkhost 1.2.3.4 foo@e3.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e3.example.com" ("e3.example.com") @@ -4338,20 +4399,6 @@ spf.go:176: dns record "v=spf1 -all exp=exp2.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [redirect-cancels-prior-exp] - yml_test.go:225: test invalid-modifier - yml_test.go:227: checkhost 1.2.3.4 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 1up=foo" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [invalid-modifier] - yml_test.go:225: test empty-modifier-name - yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 =all" - spf.go:277: permerror, unknown field - yml_test.go:234: success: permerror, unknown field [empty-modifier-name] yml_test.go:225: test explanation-syntax-error yml_test.go:227: checkhost 1.2.3.4 foo@e13.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e13.example.com" ("e13.example.com") @@ -4360,6 +4407,13 @@ spf.go:270: exp= not used, skipping spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [explanation-syntax-error] + yml_test.go:225: test empty-modifier-name + yml_test.go:227: checkhost 1.2.3.4 foo@e6.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 =all" + spf.go:277: permerror, unknown field + yml_test.go:234: success: permerror, unknown field [empty-modifier-name] yml_test.go:225: test exp-multiple-txt yml_test.go:227: checkhost 1.2.3.4 foo@e11.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e11.example.com" ("e11.example.com") @@ -4367,16 +4421,28 @@ spf.go:176: dns record "v=spf1 -all exp=e11msg.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exp-multiple-txt] - yml_test.go:225: test exp-void - yml_test.go:227: checkhost 1.2.3.4 foo@e23.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e23.example.com" ("e23.example.com") - spf.go:160: check e23.example.com 1 - spf.go:176: dns record "v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all" - spf.go:526: masks on "a:erehwon.example.com": ["a:erehwon.example.com" ":erehwon.example.com" "erehwon.example.com" "" "" "" ""] "erehwon.example.com" {-1 -1} - spf.go:526: masks on "a:foobar.com": ["a:foobar.com" ":foobar.com" "foobar.com" "" "" "" ""] "foobar.com" {-1 -1} + yml_test.go:225: test exp-no-txt + yml_test.go:227: checkhost 1.2.3.4 foo@e22.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e22.example.com" ("e22.example.com") + spf.go:160: check e22.example.com 1 + spf.go:176: dns record "v=spf1 exp=mail.example.com -all" spf.go:270: exp= not used, skipping spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [exp-void] + yml_test.go:234: success: fail, matched 'all' [exp-no-txt] + yml_test.go:225: test redirect-twice + yml_test.go:227: checkhost 1.2.3.4 foo@e15.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e15.example.com" ("e15.example.com") + spf.go:160: check e15.example.com 1 + spf.go:176: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" + yml_test.go:234: success: permerror, invalid domain [redirect-twice] + yml_test.go:225: test non-ascii-exp + yml_test.go:227: checkhost 1.2.3.4 foobar@nonascii.example.com + spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@nonascii.example.com" ("nonascii.example.com") + spf.go:160: check nonascii.example.com 1 + spf.go:176: dns record "v=spf1 exp=badexp.example.com -all" + spf.go:270: exp= not used, skipping + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [non-ascii-exp] yml_test.go:225: test redirect-implicit yml_test.go:227: checkhost 192.0.2.2 bar@e24.example.com spf.go:129: check host with sender "192.0.2.2" "e24.example.com" "bar@e24.example.com" ("e24.example.com") @@ -4389,152 +4455,146 @@ spf.go:561: mx matched 192.0.2.2, 192.0.2.2, {-1 -1} spf.go:246: a ok, pass matched 'a' yml_test.go:234: success: pass, matched 'a' [redirect-implicit] - yml_test.go:225: test two-exp-records - yml_test.go:227: checkhost 1.2.3.4 foobar@tworecs.example.com - spf.go:129: check host with sender "1.2.3.4" "hosed" "foobar@tworecs.example.com" ("tworecs.example.com") - spf.go:160: check tworecs.example.com 1 - spf.go:176: dns record "v=spf1 exp=twoexp.example.com -all" - spf.go:270: exp= not used, skipping - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [two-exp-records] - yml_test.go:225: test redirect-cancels-exp - yml_test.go:227: checkhost 1.2.3.4 foo@e1.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e2.example.com" - spf.go:270: exp= not used, skipping - spf.go:273: redirect, "redirect=e2.example.com" - spf.go:160: check e2.example.com 2 - spf.go:176: dns record "v=spf1 -all" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [redirect-cancels-exp] - yml_test.go:225: test include-ignores-exp - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 include:e3.example.com -all exp=exp3.example.com" - spf.go:160: check e3.example.com 2 - spf.go:176: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" - spf.go:270: exp= not used, skipping - spf.go:273: redirect, "redirect=e4.example.com" - spf.go:160: check e4.example.com 3 - spf.go:176: dns record "v=spf1 -all exp=exp2.example.com" - spf.go:237: fail matched all - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [include-ignores-exp] - yml_test.go:225: test dorky-sentinel - yml_test.go:227: checkhost 1.2.3.4 Macro Error@e8.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "Macro Error@e8.example.com" ("e8.example.com") - spf.go:160: check e8.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=exp4.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [dorky-sentinel] + yml_test.go:225: test redirect-none + yml_test.go:227: checkhost 1.2.3.4 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 redirect=erehwon.example.com" + spf.go:273: redirect, "redirect=erehwon.example.com" + spf.go:160: check erehwon.example.com 2 + spf.go:176: dns record "" + yml_test.go:234: success: permerror, no DNS record found [redirect-none] yml_test.go:152: suite: Macro expansion rules + yml_test.go:157: domain msg.example.com + yml_test.go:159: TXT: [This is a test.] + yml_test.go:157: domain mx.example.com + yml_test.go:159: A: [192.168.218.41] + yml_test.go:159: A: [192.168.218.42] + yml_test.go:159: AAAA: [CAFE:BABE::2] + yml_test.go:159: AAAA: [CAFE:BABE::3] yml_test.go:157: domain 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain mx.e7.example.com - yml_test.go:159: A: [192.168.218.42] - yml_test.go:157: domain mx.example.com.ok.example.com - yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain macro%percent space%20url-space.example.com - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=%{ir}.example.com] - yml_test.go:157: domain e5.example.com - yml_test.go:159: SPF: [v=spf1 a:%{a}.example.com -all] yml_test.go:157: domain 3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.E.B.A.B.E.F.A.C.ip6.arpa yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 a:%{H} -all] + yml_test.go:157: domain a.spf.example.com + yml_test.go:159: SPF: [v=spf1 include:o.spf.example.com. ~all] + yml_test.go:157: domain 42.218.168.192.in-addr.arpa + yml_test.go:159: PTR: [mx.example.com] + yml_test.go:159: PTR: [mx.e7.example.com] yml_test.go:157: domain 1.2.3.4.gladstone.philip.user.example.com yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain o.spf.example.com - yml_test.go:159: SPF: [v=spf1 ip4:192.168.218.40] - yml_test.go:157: domain somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.example.com - yml_test.go:159: TXT: [Congratulations! That was tricky.] + yml_test.go:157: domain e12.example.com + yml_test.go:159: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] yml_test.go:157: domain e6.example.com yml_test.go:159: SPF: [v=spf1 -all exp=e6msg.example.com] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=%{r}.example.com] + yml_test.go:157: domain somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.somewhat.long.exp.example.com.example.com + yml_test.go:159: TXT: [Congratulations! That was tricky.] + yml_test.go:157: domain msgbas2x.cos.example.com + yml_test.go:159: A: [192.168.218.40] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] + yml_test.go:157: domain e1e.example.com + yml_test.go:159: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] + yml_test.go:157: domain 40.218.168.192.example.com + yml_test.go:159: TXT: [Connections from %{c} not authorized.] yml_test.go:157: domain somewhat.long.exp.example.com yml_test.go:159: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] - yml_test.go:157: domain mx.e7.example.com.should.example.com + yml_test.go:157: domain mx.e7.example.com + yml_test.go:159: A: [192.168.218.42] + yml_test.go:157: domain mx.example.com.ok.example.com yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain _spfh.example.com - yml_test.go:159: SPF: [v=spf1 -a:%{h} +all] - yml_test.go:157: domain a.spf.example.com - yml_test.go:159: SPF: [v=spf1 include:o.spf.example.com. ~all] - yml_test.go:157: domain msg.example.com - yml_test.go:159: TXT: [This is a test.] - yml_test.go:157: domain 40.218.168.192.example.com - yml_test.go:159: TXT: [Connections from %{c} not authorized.] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=msg8.%{D2}] + yml_test.go:157: domain o.spf.example.com + yml_test.go:159: SPF: [v=spf1 ip4:192.168.218.40] + yml_test.go:157: domain macro%percent space%20url-space.example.com + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=e4msg.example.com] yml_test.go:157: domain e7.example.com yml_test.go:159: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] - yml_test.go:157: domain msg8.example.com - yml_test.go:159: TXT: [http://example.com/why.html?l=%{L}] yml_test.go:157: domain e10.example.com yml_test.go:159: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] yml_test.go:157: domain exp.example.com yml_test.go:159: SPF: [v=spf1 exp=msg.example.com. -all] - yml_test.go:157: domain e1a.example.com - yml_test.go:159: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] - yml_test.go:157: domain 42.218.168.192.in-addr.arpa - yml_test.go:159: PTR: [mx.example.com] - yml_test.go:159: PTR: [mx.e7.example.com] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 a:%{H} -all] + yml_test.go:157: domain _spfh.example.com + yml_test.go:159: SPF: [v=spf1 -a:%{h} +all] + yml_test.go:157: domain bar.foo.user.example.com + yml_test.go:159: A: [127.0.0.2] + yml_test.go:157: domain e4msg.example.com + yml_test.go:159: TXT: [%{c} is queried as %{ir}.%{v}.arpa] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 -all exp=%{ir}.example.com] + yml_test.go:157: domain e5.example.com + yml_test.go:159: SPF: [v=spf1 a:%{a}.example.com -all] + yml_test.go:157: domain e6msg.example.com + yml_test.go:159: TXT: [connect from %{p}] yml_test.go:157: domain 41.218.168.192.in-addr.arpa yml_test.go:159: PTR: [mx.example.com] + yml_test.go:157: domain mx.e7.example.com.should.example.com + yml_test.go:159: A: [127.0.0.2] + yml_test.go:157: domain msg8.example.com + yml_test.go:159: TXT: [http://example.com/why.html?l=%{L}] yml_test.go:157: domain e11.example.com yml_test.go:159: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] - yml_test.go:157: domain bar.foo.user.example.com - yml_test.go:159: A: [127.0.0.2] - yml_test.go:157: domain example.com.d.spf.example.com - yml_test.go:159: SPF: [v=spf1 redirect=a.spf.example.com] - yml_test.go:157: domain e1e.example.com - yml_test.go:159: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] - yml_test.go:157: domain mx.example.com - yml_test.go:159: A: [192.168.218.41] - yml_test.go:159: A: [192.168.218.42] - yml_test.go:159: AAAA: [CAFE:BABE::2] - yml_test.go:159: AAAA: [CAFE:BABE::3] - yml_test.go:157: domain e12.example.com - yml_test.go:159: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] yml_test.go:157: domain e1t.example.com yml_test.go:159: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=%{r}.example.com] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=e4msg.example.com] - yml_test.go:157: domain e6msg.example.com - yml_test.go:159: TXT: [connect from %{p}] - yml_test.go:157: domain 40.218.168.192.in-addr.arpa - yml_test.go:159: PTR: [mx.example.com] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 -all exp=msg8.%{D2}] - yml_test.go:157: domain msgbas2x.cos.example.com - yml_test.go:159: A: [192.168.218.40] yml_test.go:157: domain example.com yml_test.go:159: A: [192.168.90.76] yml_test.go:159: SPF: [v=spf1 redirect=%{d}.d.spf.example.com.] - yml_test.go:157: domain e4msg.example.com - yml_test.go:159: TXT: [%{c} is queried as %{ir}.%{v}.arpa] - yml_test.go:225: test trailing-dot-domain - yml_test.go:227: checkhost 192.168.218.40 test@example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@example.com" ("example.com") - spf.go:160: check example.com 1 - spf.go:176: dns record "v=spf1 redirect=%{d}.d.spf.example.com." - spf.go:273: redirect, "redirect=%{d}.d.spf.example.com." - spf.go:708: macro "d": ["d" "d" "" "" ""] - spf.go:805: macro expanded "%{d}.d.spf.example.com." to "example.com.d.spf.example.com." - spf.go:160: check example.com.d.spf.example.com. 2 - spf.go:176: dns record "v=spf1 redirect=a.spf.example.com" - spf.go:273: redirect, "redirect=a.spf.example.com" - spf.go:160: check a.spf.example.com 3 - spf.go:176: dns record "v=spf1 include:o.spf.example.com. ~all" - spf.go:160: check o.spf.example.com. 4 - spf.go:176: dns record "v=spf1 ip4:192.168.218.40" - spf.go:256: ip ok, pass matched 'ip' - spf.go:241: include ok, pass matched 'ip' - yml_test.go:234: success: pass, matched 'ip' [trailing-dot-domain] + yml_test.go:157: domain e1a.example.com + yml_test.go:159: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] + yml_test.go:157: domain 40.218.168.192.in-addr.arpa + yml_test.go:159: PTR: [mx.example.com] + yml_test.go:157: domain example.com.d.spf.example.com + yml_test.go:159: SPF: [v=spf1 redirect=a.spf.example.com] + yml_test.go:225: test undef-macro + yml_test.go:227: checkhost cafe:babe::c0a8:da28 test@e5.example.com + spf.go:129: check host with sender "cafe:babe::c0a8:da28" "msgbas2x.cos.example.com" "test@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 a:%{a}.example.com -all" + spf.go:526: masks on "a:%{a}.example.com": ["a:%{a}.example.com" ":%{a}.example.com" "%{a}.example.com" "" "" "" ""] "%{a}.example.com" {-1 -1} + spf.go:708: macro "a": [] + spf.go:246: a ok, permerror invalid macro + yml_test.go:234: success: permerror, invalid macro [undef-macro] + yml_test.go:225: test p-macro-ip6-valid + yml_test.go:227: checkhost cafe:babe::3 test@e6.example.com + spf.go:129: check host with sender "cafe:babe::3" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + spf.go:160: check e6.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-valid] + yml_test.go:225: test macro-multiple-delimiters + yml_test.go:227: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo-bar+zip+quux@e12.example.com" ("e12.example.com") + spf.go:160: check e12.example.com 1 + spf.go:176: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" + spf.go:708: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] + spf.go:708: macro "d2": ["d2" "d" "2" "" ""] + spf.go:805: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" + spf.go:266: exists ok, pass matched 'exists' + yml_test.go:234: success: pass, matched 'exists' [macro-multiple-delimiters] + yml_test.go:225: test v-macro-ip4 + yml_test.go:227: checkhost 192.168.218.40 test@e4.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [v-macro-ip4] + yml_test.go:225: test macro-mania-in-domain + yml_test.go:227: checkhost 1.2.3.4 test@e1a.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "test@e1a.example.com" ("e1a.example.com") + spf.go:160: check e1a.example.com 1 + spf.go:176: dns record "v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all" + spf.go:526: masks on "a:macro%%percent%_%_space%-url-space.example.com": ["a:macro%%percent%_%_space%-url-space.example.com" ":macro%%percent%_%_space%-url-space.example.com" "macro%%percent%_%_space%-url-space.example.com" "" "" "" ""] "macro%%percent%_%_space%-url-space.example.com" {-1 -1} + spf.go:805: macro expanded "macro%%percent%_%_space%-url-space.example.com" to "macro%percent space%20url-space.example.com" + spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [macro-mania-in-domain] yml_test.go:225: test exp-txt-macro-char yml_test.go:227: checkhost 192.168.218.40 test@e3.example.com spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e3.example.com" ("e3.example.com") @@ -4542,20 +4602,6 @@ spf.go:176: dns record "v=spf1 -all exp=%{ir}.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exp-txt-macro-char] - yml_test.go:225: test domain-name-truncation - yml_test.go:227: checkhost 192.168.218.40 test@somewhat.long.exp.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@somewhat.long.exp.example.com" ("somewhat.long.exp.example.com") - spf.go:160: check somewhat.long.exp.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [domain-name-truncation] - yml_test.go:225: test v-macro-ip6 - yml_test.go:227: checkhost cafe:babe::1 test@e4.example.com - spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [v-macro-ip6] yml_test.go:225: test invalid-hello-macro yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com spf.go:129: check host with sender "192.168.218.40" "JUMPIN' JUPITER" "test@e9.example.com" ("e9.example.com") @@ -4566,27 +4612,24 @@ spf.go:805: macro expanded "%{H}" to "e9.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [invalid-hello-macro] - yml_test.go:225: test macro-reverse-split-on-dash - yml_test.go:227: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "philip-gladstone-test@e11.example.com" ("e11.example.com") - spf.go:160: check e11.example.com 1 - spf.go:176: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" - spf.go:708: macro "i": ["i" "i" "" "" ""] - spf.go:708: macro "l2r-": ["l2r-" "l" "2" "r" "-"] - spf.go:708: macro "d2": ["d2" "d" "2" "" ""] - spf.go:805: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" - spf.go:266: exists ok, pass matched 'exists' - yml_test.go:234: success: pass, matched 'exists' [macro-reverse-split-on-dash] - yml_test.go:225: test macro-multiple-delimiters - yml_test.go:227: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo-bar+zip+quux@e12.example.com" ("e12.example.com") - spf.go:160: check e12.example.com 1 - spf.go:176: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" - spf.go:708: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] - spf.go:708: macro "d2": ["d2" "d" "2" "" ""] - spf.go:805: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" - spf.go:266: exists ok, pass matched 'exists' - yml_test.go:234: success: pass, matched 'exists' [macro-multiple-delimiters] + yml_test.go:225: test hello-domain-literal + yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com + spf.go:129: check host with sender "192.168.218.40" "[192.168.218.40]" "test@e9.example.com" ("e9.example.com") + spf.go:160: check e9.example.com 1 + spf.go:176: dns record "v=spf1 a:%{H} -all" + spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} + spf.go:708: macro "H": ["H" "H" "" "" ""] + spf.go:805: macro expanded "%{H}" to "e9.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [hello-domain-literal] + yml_test.go:225: test trailing-dot-exp + yml_test.go:227: checkhost 192.168.218.40 test@exp.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@exp.example.com" ("exp.example.com") + spf.go:160: check exp.example.com 1 + spf.go:176: dns record "v=spf1 exp=msg.example.com. -all" + spf.go:270: exp= not used, skipping + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [trailing-dot-exp] yml_test.go:225: test invalid-trailing-macro-char yml_test.go:227: checkhost 192.168.218.40 test@e1t.example.com spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1t.example.com" ("e1t.example.com") @@ -4594,13 +4637,20 @@ spf.go:176: dns record "v=spf1 exists:foo%.sbl.example.com ?all" spf.go:266: exists ok, permerror invalid macro yml_test.go:234: success: permerror, invalid macro [invalid-trailing-macro-char] - yml_test.go:225: test p-macro-ip4-novalid - yml_test.go:227: checkhost 192.168.218.40 test@e6.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + yml_test.go:225: test domain-name-truncation + yml_test.go:227: checkhost 192.168.218.40 test@somewhat.long.exp.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@somewhat.long.exp.example.com" ("somewhat.long.exp.example.com") + spf.go:160: check somewhat.long.exp.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [domain-name-truncation] + yml_test.go:225: test p-macro-ip4-valid + yml_test.go:227: checkhost 192.168.218.41 test@e6.example.com + spf.go:129: check host with sender "192.168.218.41" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") spf.go:160: check e6.example.com 1 spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-novalid] + yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-valid] yml_test.go:225: test p-macro-ip6-novalid yml_test.go:227: checkhost cafe:babe::1 test@e6.example.com spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") @@ -4608,13 +4658,6 @@ spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-novalid] - yml_test.go:225: test p-macro-ip4-valid - yml_test.go:227: checkhost 192.168.218.41 test@e6.example.com - spf.go:129: check host with sender "192.168.218.41" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") - spf.go:160: check e6.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-valid] yml_test.go:225: test upper-macro yml_test.go:227: checkhost 192.168.218.42 ~jack&jill=up-a_b3.c@e8.example.com spf.go:129: check host with sender "192.168.218.42" "msgbas2x.cos.example.com" "~jack&jill=up-a_b3.c@e8.example.com" ("e8.example.com") @@ -4622,37 +4665,13 @@ spf.go:176: dns record "v=spf1 -all exp=msg8.%{D2}" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [upper-macro] - yml_test.go:225: test trailing-dot-exp - yml_test.go:227: checkhost 192.168.218.40 test@exp.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@exp.example.com" ("exp.example.com") - spf.go:160: check exp.example.com 1 - spf.go:176: dns record "v=spf1 exp=msg.example.com. -all" - spf.go:270: exp= not used, skipping - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [trailing-dot-exp] - yml_test.go:225: test invalid-macro-char - yml_test.go:227: checkhost 192.168.218.40 test@e1.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1.example.com" ("e1.example.com") - spf.go:160: check e1.example.com 1 - spf.go:176: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" + yml_test.go:225: test invalid-embedded-macro-char + yml_test.go:227: checkhost 192.168.218.40 test@e1e.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1e.example.com" ("e1e.example.com") + spf.go:160: check e1e.example.com 1 + spf.go:176: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" spf.go:266: exists ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [invalid-macro-char] - yml_test.go:225: test v-macro-ip4 - yml_test.go:227: checkhost 192.168.218.40 test@e4.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") - spf.go:160: check e4.example.com 1 - spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [v-macro-ip4] - yml_test.go:225: test undef-macro - yml_test.go:227: checkhost cafe:babe::c0a8:da28 test@e5.example.com - spf.go:129: check host with sender "cafe:babe::c0a8:da28" "msgbas2x.cos.example.com" "test@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 a:%{a}.example.com -all" - spf.go:526: masks on "a:%{a}.example.com": ["a:%{a}.example.com" ":%{a}.example.com" "%{a}.example.com" "" "" "" ""] "%{a}.example.com" {-1 -1} - spf.go:708: macro "a": [] - spf.go:246: a ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [undef-macro] + yml_test.go:234: success: permerror, invalid macro [invalid-embedded-macro-char] yml_test.go:225: test require-valid-helo yml_test.go:227: checkhost 1.2.3.4 test@e10.example.com spf.go:129: check host with sender "1.2.3.4" "OEMCOMPUTER" "test@e10.example.com" ("e10.example.com") @@ -4668,76 +4687,57 @@ spf.go:237: pass matched all spf.go:241: include ok, fail matched 'all' yml_test.go:234: success: fail, matched 'all' [require-valid-helo] - yml_test.go:225: test invalid-embedded-macro-char - yml_test.go:227: checkhost 192.168.218.40 test@e1e.example.com - spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1e.example.com" ("e1e.example.com") - spf.go:160: check e1e.example.com 1 - spf.go:176: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" + yml_test.go:225: test invalid-macro-char + yml_test.go:227: checkhost 192.168.218.40 test@e1.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e1.example.com" ("e1.example.com") + spf.go:160: check e1.example.com 1 + spf.go:176: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" spf.go:266: exists ok, permerror invalid macro - yml_test.go:234: success: permerror, invalid macro [invalid-embedded-macro-char] - yml_test.go:225: test macro-mania-in-domain - yml_test.go:227: checkhost 1.2.3.4 test@e1a.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "test@e1a.example.com" ("e1a.example.com") - spf.go:160: check e1a.example.com 1 - spf.go:176: dns record "v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all" - spf.go:526: masks on "a:macro%%percent%_%_space%-url-space.example.com": ["a:macro%%percent%_%_space%-url-space.example.com" ":macro%%percent%_%_space%-url-space.example.com" "macro%%percent%_%_space%-url-space.example.com" "" "" "" ""] "macro%%percent%_%_space%-url-space.example.com" {-1 -1} - spf.go:805: macro expanded "macro%%percent%_%_space%-url-space.example.com" to "macro%percent space%20url-space.example.com" - spf.go:561: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [macro-mania-in-domain] - yml_test.go:225: test p-macro-ip6-valid - yml_test.go:227: checkhost cafe:babe::3 test@e6.example.com - spf.go:129: check host with sender "cafe:babe::3" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") + yml_test.go:234: success: permerror, invalid macro [invalid-macro-char] + yml_test.go:225: test v-macro-ip6 + yml_test.go:227: checkhost cafe:babe::1 test@e4.example.com + spf.go:129: check host with sender "cafe:babe::1" "msgbas2x.cos.example.com" "test@e4.example.com" ("e4.example.com") + spf.go:160: check e4.example.com 1 + spf.go:176: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:237: fail matched all + yml_test.go:234: success: fail, matched 'all' [v-macro-ip6] + yml_test.go:225: test p-macro-ip4-novalid + yml_test.go:227: checkhost 192.168.218.40 test@e6.example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@e6.example.com" ("e6.example.com") spf.go:160: check e6.example.com 1 spf.go:176: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [p-macro-ip6-valid] - yml_test.go:225: test hello-domain-literal - yml_test.go:227: checkhost 192.168.218.40 test@e9.example.com - spf.go:129: check host with sender "192.168.218.40" "[192.168.218.40]" "test@e9.example.com" ("e9.example.com") - spf.go:160: check e9.example.com 1 - spf.go:176: dns record "v=spf1 a:%{H} -all" - spf.go:526: masks on "a:%{H}": ["a:%{H}" ":%{H}" "%{H}" "" "" "" ""] "%{H}" {-1 -1} - spf.go:708: macro "H": ["H" "H" "" "" ""] - spf.go:805: macro expanded "%{H}" to "e9.example.com" - spf.go:237: fail matched all - yml_test.go:234: success: fail, matched 'all' [hello-domain-literal] + yml_test.go:234: success: fail, matched 'all' [p-macro-ip4-novalid] + yml_test.go:225: test macro-reverse-split-on-dash + yml_test.go:227: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "philip-gladstone-test@e11.example.com" ("e11.example.com") + spf.go:160: check e11.example.com 1 + spf.go:176: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" + spf.go:708: macro "i": ["i" "i" "" "" ""] + spf.go:708: macro "l2r-": ["l2r-" "l" "2" "r" "-"] + spf.go:708: macro "d2": ["d2" "d" "2" "" ""] + spf.go:805: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" + spf.go:266: exists ok, pass matched 'exists' + yml_test.go:234: success: pass, matched 'exists' [macro-reverse-split-on-dash] + yml_test.go:225: test trailing-dot-domain + yml_test.go:227: checkhost 192.168.218.40 test@example.com + spf.go:129: check host with sender "192.168.218.40" "msgbas2x.cos.example.com" "test@example.com" ("example.com") + spf.go:160: check example.com 1 + spf.go:176: dns record "v=spf1 redirect=%{d}.d.spf.example.com." + spf.go:273: redirect, "redirect=%{d}.d.spf.example.com." + spf.go:708: macro "d": ["d" "d" "" "" ""] + spf.go:805: macro expanded "%{d}.d.spf.example.com." to "example.com.d.spf.example.com." + spf.go:160: check example.com.d.spf.example.com. 2 + spf.go:176: dns record "v=spf1 redirect=a.spf.example.com" + spf.go:273: redirect, "redirect=a.spf.example.com" + spf.go:160: check a.spf.example.com 3 + spf.go:176: dns record "v=spf1 include:o.spf.example.com. ~all" + spf.go:160: check o.spf.example.com. 4 + spf.go:176: dns record "v=spf1 ip4:192.168.218.40" + spf.go:256: ip ok, pass matched 'ip' + spf.go:241: include ok, pass matched 'ip' + yml_test.go:234: success: pass, matched 'ip' [trailing-dot-domain] yml_test.go:152: suite: Processing limits - yml_test.go:157: domain inc.example.com - yml_test.go:159: SPF: [v=spf1 a a a a a a a a] - yml_test.go:159: A: [1.2.3.10] - yml_test.go:157: domain e8.example.com - yml_test.go:159: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] - yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e12.example.com - yml_test.go:159: TXT: [v=spf1 a:err.example.com a:err1.example.com ?all] - yml_test.go:157: domain e2.example.com - yml_test.go:159: SPF: [v=spf1 include:e3.example.com] - yml_test.go:159: A: [1.2.3.7] - yml_test.go:157: domain e4.example.com - yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: MX: {0 mail.example.com} - yml_test.go:159: MX: {1 mail.example.com} - yml_test.go:159: MX: {2 mail.example.com} - yml_test.go:159: MX: {3 mail.example.com} - yml_test.go:159: MX: {4 mail.example.com} - yml_test.go:159: MX: {5 mail.example.com} - yml_test.go:159: MX: {6 mail.example.com} - yml_test.go:159: MX: {7 mail.example.com} - yml_test.go:159: MX: {8 mail.example.com} - yml_test.go:159: MX: {9 mail.example.com} - yml_test.go:159: MX: {10 e4.example.com} - yml_test.go:159: A: [1.2.3.5] - yml_test.go:157: domain e6.example.com - yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] - yml_test.go:159: A: [1.2.3.8] - yml_test.go:159: MX: {10 e6.example.com} - yml_test.go:157: domain e7.example.com - yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] - yml_test.go:159: A: [1.2.3.20] - yml_test.go:157: domain e1.example.com - yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] - yml_test.go:159: A: [1.2.3.6] yml_test.go:157: domain e10.example.com yml_test.go:159: SPF: [v=spf1 a -all] yml_test.go:159: A: [1.2.3.1] @@ -4754,17 +4754,38 @@ yml_test.go:159: A: [1.2.3.12] yml_test.go:157: domain e11.example.com yml_test.go:159: TXT: [v=spf1 a:err.example.com a:err1.example.com a:err2.example.com ?all] - yml_test.go:157: domain e9.example.com - yml_test.go:159: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] - yml_test.go:159: A: [1.2.3.21] yml_test.go:157: domain mail.example.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:157: domain e3.example.com - yml_test.go:159: SPF: [v=spf1 include:e2.example.com] - yml_test.go:159: A: [1.2.3.8] yml_test.go:157: domain e5.example.com yml_test.go:159: SPF: [v=spf1 ptr] yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain e6.example.com + yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] + yml_test.go:159: A: [1.2.3.8] + yml_test.go:159: MX: {10 e6.example.com} + yml_test.go:157: domain e7.example.com + yml_test.go:159: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] + yml_test.go:159: A: [1.2.3.20] + yml_test.go:157: domain e1.example.com + yml_test.go:159: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] + yml_test.go:159: A: [1.2.3.6] + yml_test.go:157: domain e4.example.com + yml_test.go:159: SPF: [v=spf1 mx] + yml_test.go:159: MX: {0 mail.example.com} + yml_test.go:159: MX: {1 mail.example.com} + yml_test.go:159: MX: {2 mail.example.com} + yml_test.go:159: MX: {3 mail.example.com} + yml_test.go:159: MX: {4 mail.example.com} + yml_test.go:159: MX: {5 mail.example.com} + yml_test.go:159: MX: {6 mail.example.com} + yml_test.go:159: MX: {7 mail.example.com} + yml_test.go:159: MX: {8 mail.example.com} + yml_test.go:159: MX: {9 mail.example.com} + yml_test.go:159: MX: {10 e4.example.com} + yml_test.go:159: A: [1.2.3.5] + yml_test.go:157: domain inc.example.com + yml_test.go:159: SPF: [v=spf1 a a a a a a a a] + yml_test.go:159: A: [1.2.3.10] yml_test.go:157: domain 5.3.2.1.in-addr.arpa yml_test.go:159: PTR: [e1.example.com.] yml_test.go:159: PTR: [e2.example.com.] @@ -4777,6 +4798,108 @@ yml_test.go:159: PTR: [e9.example.com.] yml_test.go:159: PTR: [e10.example.com.] yml_test.go:159: PTR: [e5.example.com.] + yml_test.go:157: domain e8.example.com + yml_test.go:159: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] + yml_test.go:159: A: [1.2.3.4] + yml_test.go:157: domain e9.example.com + yml_test.go:159: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] + yml_test.go:159: A: [1.2.3.21] + yml_test.go:157: domain e12.example.com + yml_test.go:159: TXT: [v=spf1 a:err.example.com a:err1.example.com ?all] + yml_test.go:157: domain e2.example.com + yml_test.go:159: SPF: [v=spf1 include:e3.example.com] + yml_test.go:159: A: [1.2.3.7] + yml_test.go:157: domain e3.example.com + yml_test.go:159: SPF: [v=spf1 include:e2.example.com] + yml_test.go:159: A: [1.2.3.8] + yml_test.go:225: test false-a-limit + yml_test.go:227: checkhost 1.2.3.12 foo@e10.example.com + spf.go:129: check host with sender "1.2.3.12" "mail.example.com" "foo@e10.example.com" ("e10.example.com") + spf.go:160: check e10.example.com 1 + spf.go:176: dns record "v=spf1 a -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e10.example.com" {-1 -1} + spf.go:561: mx matched 1.2.3.12, 1.2.3.12, {-1 -1} + spf.go:246: a ok, pass matched 'a' + yml_test.go:234: success: pass, matched 'a' [false-a-limit] + yml_test.go:225: test void-at-limit + yml_test.go:227: checkhost 1.2.3.4 foo@e12.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e12.example.com" ("e12.example.com") + spf.go:160: check e12.example.com 1 + spf.go:176: dns record "v=spf1 a:err.example.com a:err1.example.com ?all" + spf.go:526: masks on "a:err.example.com": ["a:err.example.com" ":err.example.com" "err.example.com" "" "" "" ""] "err.example.com" {-1 -1} + spf.go:526: masks on "a:err1.example.com": ["a:err1.example.com" ":err1.example.com" "err1.example.com" "" "" "" ""] "err1.example.com" {-1 -1} + spf.go:237: neutral matched all + yml_test.go:234: success: neutral, matched 'all' [void-at-limit] + yml_test.go:225: test include-loop + yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") + spf.go:160: check e2.example.com 1 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 2 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 3 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 4 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 5 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 6 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 7 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 8 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 9 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:160: check e3.example.com 10 + spf.go:176: dns record "v=spf1 include:e2.example.com" + spf.go:160: check e2.example.com 11 + spf.go:176: dns record "v=spf1 include:e3.example.com" + spf.go:218: lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + spf.go:241: include ok, permerror lookup limit reached + yml_test.go:234: success: permerror, lookup limit reached [include-loop] + yml_test.go:225: test ptr-limit + yml_test.go:227: checkhost 1.2.3.5 foo@e5.example.com + spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e5.example.com" ("e5.example.com") + spf.go:160: check e5.example.com 1 + spf.go:176: dns record "v=spf1 ptr" + spf.go:398: ptr forward resolution "e1.example.com." -> ["1.2.3.6"] + spf.go:398: ptr forward resolution "e2.example.com." -> ["1.2.3.7"] + spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.8"] + spf.go:398: ptr forward resolution "e4.example.com." -> ["1.2.3.5"] + spf.go:398: ptr forward resolution "example.com." -> [] + spf.go:398: ptr forward resolution "e6.example.com." -> ["1.2.3.8"] + spf.go:398: ptr forward resolution "e7.example.com." -> ["1.2.3.20"] + spf.go:398: ptr forward resolution "e8.example.com." -> ["1.2.3.4"] + spf.go:398: ptr forward resolution "e9.example.com." -> ["1.2.3.21"] + spf.go:284: fallback to neutral + yml_test.go:234: success: neutral, [ptr-limit] + yml_test.go:225: test mech-over-limit + yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") + spf.go:160: check e7.example.com 1 + spf.go:176: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} + spf.go:407: ptr evaluating "e7.example.com" in [] + spf.go:218: lookup limit reached + yml_test.go:234: success: permerror, lookup limit reached [mech-over-limit] yml_test.go:225: test include-at-limit yml_test.go:227: checkhost 1.2.3.4 foo@e8.example.com spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e8.example.com" ("e8.example.com") @@ -4842,43 +4965,6 @@ spf.go:176: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" spf.go:218: lookup limit reached yml_test.go:234: success: permerror, lookup limit reached [redirect-loop] - yml_test.go:225: test include-loop - yml_test.go:227: checkhost 1.2.3.4 foo@e2.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e2.example.com" ("e2.example.com") - spf.go:160: check e2.example.com 1 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 2 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 3 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 4 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 5 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 6 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 7 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 8 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 9 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:160: check e3.example.com 10 - spf.go:176: dns record "v=spf1 include:e2.example.com" - spf.go:160: check e2.example.com 11 - spf.go:176: dns record "v=spf1 include:e3.example.com" - spf.go:218: lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - spf.go:241: include ok, permerror lookup limit reached - yml_test.go:234: success: permerror, lookup limit reached [include-loop] yml_test.go:225: test mx-limit yml_test.go:227: checkhost 1.2.3.5 foo@e4.example.com spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e4.example.com" ("e4.example.com") @@ -4887,64 +4973,7 @@ spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e4.example.com" {-1 -1} spf.go:251: mx ok, permerror too many MX records yml_test.go:234: success: permerror, too many MX records [mx-limit] - yml_test.go:225: test ptr-limit - yml_test.go:227: checkhost 1.2.3.5 foo@e5.example.com - spf.go:129: check host with sender "1.2.3.5" "mail.example.com" "foo@e5.example.com" ("e5.example.com") - spf.go:160: check e5.example.com 1 - spf.go:176: dns record "v=spf1 ptr" - spf.go:398: ptr forward resolution "e1.example.com." -> ["1.2.3.6"] - spf.go:398: ptr forward resolution "e2.example.com." -> ["1.2.3.7"] - spf.go:398: ptr forward resolution "e3.example.com." -> ["1.2.3.8"] - spf.go:398: ptr forward resolution "e4.example.com." -> ["1.2.3.5"] - spf.go:398: ptr forward resolution "example.com." -> [] - spf.go:398: ptr forward resolution "e6.example.com." -> ["1.2.3.8"] - spf.go:398: ptr forward resolution "e7.example.com." -> ["1.2.3.20"] - spf.go:398: ptr forward resolution "e8.example.com." -> ["1.2.3.4"] - spf.go:398: ptr forward resolution "e9.example.com." -> ["1.2.3.21"] - spf.go:284: fallback to neutral - yml_test.go:234: success: neutral, [ptr-limit] - yml_test.go:225: test false-a-limit - yml_test.go:227: checkhost 1.2.3.12 foo@e10.example.com - spf.go:129: check host with sender "1.2.3.12" "mail.example.com" "foo@e10.example.com" ("e10.example.com") - spf.go:160: check e10.example.com 1 - spf.go:176: dns record "v=spf1 a -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e10.example.com" {-1 -1} - spf.go:561: mx matched 1.2.3.12, 1.2.3.12, {-1 -1} - spf.go:246: a ok, pass matched 'a' - yml_test.go:234: success: pass, matched 'a' [false-a-limit] - yml_test.go:225: test mech-over-limit - yml_test.go:227: checkhost 1.2.3.4 foo@e7.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e7.example.com" ("e7.example.com") - spf.go:160: check e7.example.com 1 - spf.go:176: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "mx": ["mx" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:526: masks on "a": ["a" "" "" "" "" "" ""] "e7.example.com" {-1 -1} - spf.go:407: ptr evaluating "e7.example.com" in [] - spf.go:218: lookup limit reached - yml_test.go:234: success: permerror, lookup limit reached [mech-over-limit] - yml_test.go:225: test void-at-limit - yml_test.go:227: checkhost 1.2.3.4 foo@e12.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "foo@e12.example.com" ("e12.example.com") - spf.go:160: check e12.example.com 1 - spf.go:176: dns record "v=spf1 a:err.example.com a:err1.example.com ?all" - spf.go:526: masks on "a:err.example.com": ["a:err.example.com" ":err.example.com" "err.example.com" "" "" "" ""] "err.example.com" {-1 -1} - spf.go:526: masks on "a:err1.example.com": ["a:err1.example.com" ":err1.example.com" "err1.example.com" "" "" "" ""] "err1.example.com" {-1 -1} - spf.go:237: neutral matched all - yml_test.go:234: success: neutral, matched 'all' [void-at-limit] yml_test.go:152: suite: Test cases from implementation bugs - yml_test.go:157: domain smtp6-v.fe.example.org - yml_test.go:159: AAAA: [2001:db8:ff0:100::2] - yml_test.go:157: domain _spf.example.com - yml_test.go:159: SPF: [v=spf1 ptr:fe.example.org ptr:sgp.example.com exp=_expspf.example.org -all] - yml_test.go:157: domain _expspf.example.org - yml_test.go:159: TXT: [Sender domain not allowed from this host. Please see http://www.openspf.org/Why?s=mfrom&id=%{S}&ip=%{C}&r=%{R}] yml_test.go:157: domain example.org yml_test.go:159: SPF: [v=spf1 mx redirect=_spf.example.com] yml_test.go:159: MX: {10 smtp.example.org} @@ -4957,6 +4986,12 @@ yml_test.go:159: AAAA: [2001:db8:ff0:200::2] yml_test.go:157: domain 2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.F.F.0.8.B.D.0.1.0.0.2.ip6.arpa yml_test.go:159: PTR: [smtp6-v.fe.example.org] + yml_test.go:157: domain smtp6-v.fe.example.org + yml_test.go:159: AAAA: [2001:db8:ff0:100::2] + yml_test.go:157: domain _spf.example.com + yml_test.go:159: SPF: [v=spf1 ptr:fe.example.org ptr:sgp.example.com exp=_expspf.example.org -all] + yml_test.go:157: domain _expspf.example.org + yml_test.go:159: TXT: [Sender domain not allowed from this host. Please see http://www.openspf.org/Why?s=mfrom&id=%{S}&ip=%{C}&r=%{R}] yml_test.go:225: test bytes-bug yml_test.go:227: checkhost 2001:db8:ff0:100::2 test@example.org spf.go:129: check host with sender "2001:db8:ff0:100::2" "example.org" "test@example.org" ("example.org") @@ -4970,7 +5005,7 @@ spf.go:407: ptr evaluating "fe.example.org" in ["smtp6-v.fe.example.org."] spf.go:261: ptr ok, pass matched 'ptr' yml_test.go:234: success: pass, matched 'ptr' [bytes-bug] ---- PASS: TestRFC7208 (0.18s) +--- PASS: TestRFC7208 (0.02s) === RUN TestPySPF yml_test.go:152: suite: yml_test.go:157: domain lyme.eater.example.co.uk.1.2.3.5.spf.example.net @@ -5002,8 +5037,6 @@ spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [exists-fail] yml_test.go:152: suite: - yml_test.go:157: domain examplee.com - yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4:8080] yml_test.go:157: domain examplef.com yml_test.go:159: SPF: [v=spf1 -all] yml_test.go:159: SPF: [v=spf1 +all] @@ -5015,13 +5048,8 @@ yml_test.go:159: SPF: [v=spf1 -all:foobar] yml_test.go:157: domain exampled.com yml_test.go:159: SPF: [v=spf1 a:examplea.com:8080] - yml_test.go:225: test badip - yml_test.go:227: checkhost 66.150.186.79 chuckvsr@examplee.com - spf.go:129: check host with sender "66.150.186.79" "mail.example.com" "chuckvsr@examplee.com" ("examplee.com") - spf.go:160: check examplee.com 1 - spf.go:176: dns record "v=spf1 ip4:1.2.3.4:8080" - spf.go:256: ip ok, permerror invalid ipX value - yml_test.go:234: success: permerror, invalid ipX value [badip] + yml_test.go:157: domain examplee.com + yml_test.go:159: SPF: [v=spf1 ip4:1.2.3.4:8080] yml_test.go:225: test incloop yml_test.go:227: checkhost 66.150.186.79 chuckvsr@examplea.com spf.go:129: check host with sender "66.150.186.79" "mail.example.com" "chuckvsr@examplea.com" ("examplea.com") @@ -5046,23 +5074,24 @@ spf.go:160: check examplef.com 1 spf.go:168: multiple dns records yml_test.go:234: success: permerror, multiple matching DNS records [tworecs] + yml_test.go:225: test badip + yml_test.go:227: checkhost 66.150.186.79 chuckvsr@examplee.com + spf.go:129: check host with sender "66.150.186.79" "mail.example.com" "chuckvsr@examplee.com" ("examplee.com") + spf.go:160: check examplee.com 1 + spf.go:176: dns record "v=spf1 ip4:1.2.3.4:8080" + spf.go:256: ip ok, permerror invalid ipX value + yml_test.go:234: success: permerror, invalid ipX value [badip] yml_test.go:152: suite: - yml_test.go:157: domain example3.com - yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: SPF: [v=spf1 mx] - yml_test.go:159: MX: {0 mail.example1.com} yml_test.go:157: domain example1.com yml_test.go:159: SPF: [v=spf1] yml_test.go:157: domain example2.com yml_test.go:159: SPF: [v=spf1mx] yml_test.go:157: domain mail.example1.com yml_test.go:159: A: [1.2.3.4] - yml_test.go:225: test nospace1 - yml_test.go:227: checkhost 1.2.3.4 foo@example2.com - spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example2.com" ("example2.com") - spf.go:160: check example2.com 1 - spf.go:176: dns record "" - yml_test.go:234: success: none, no DNS record found [nospace1] + yml_test.go:157: domain example3.com + yml_test.go:159: SPF: [v=spf1 mx] + yml_test.go:159: SPF: [v=spf1 mx] + yml_test.go:159: MX: {0 mail.example1.com} yml_test.go:225: test empty yml_test.go:227: checkhost 1.2.3.4 foo@example1.com spf.go:129: check host with sender "1.2.3.4" "mail1.example1.com" "foo@example1.com" ("example1.com") @@ -5079,7 +5108,16 @@ spf.go:615: mx matched 1.2.3.4, 1.2.3.4, {-1 -1} spf.go:251: mx ok, pass matched 'mx' yml_test.go:234: success: pass, matched 'mx' [nospace2] + yml_test.go:225: test nospace1 + yml_test.go:227: checkhost 1.2.3.4 foo@example2.com + spf.go:129: check host with sender "1.2.3.4" "mail.example1.com" "foo@example2.com" ("example2.com") + spf.go:160: check example2.com 1 + spf.go:176: dns record "" + yml_test.go:234: success: none, no DNS record found [nospace1] yml_test.go:152: suite: + yml_test.go:157: domain c2.example.com + yml_test.go:159: SPF: [v=spf1 a a:c1.example.com -all] + yml_test.go:159: A: [1.2.3.4] yml_test.go:157: domain mx1.example.com yml_test.go:159: CNAME: [] yml_test.go:157: domain e3.example.com @@ -5095,9 +5133,15 @@ yml_test.go:159: CNAME: [c1.example.com.] yml_test.go:157: domain c1.example.com yml_test.go:159: CNAME: [c2.example.com.] - yml_test.go:157: domain c2.example.com - yml_test.go:159: SPF: [v=spf1 a a:c1.example.com -all] - yml_test.go:159: A: [1.2.3.4] + yml_test.go:225: test null-cname + yml_test.go:227: checkhost 1.2.3.4 bar@e3.example.com + spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "bar@e3.example.com" ("e3.example.com") + spf.go:160: check e3.example.com 1 + spf.go:176: dns record "v=spf1 a:mx1.example.com mx:mx1.example.com ~all" + spf.go:526: masks on "a:mx1.example.com": ["a:mx1.example.com" ":mx1.example.com" "mx1.example.com" "" "" "" ""] "mx1.example.com" {-1 -1} + spf.go:526: masks on "mx:mx1.example.com": ["mx:mx1.example.com" ":mx1.example.com" "mx1.example.com" "" "" "" ""] "mx1.example.com" {-1 -1} + spf.go:237: softfail matched all + yml_test.go:234: success: softfail, matched 'all' [null-cname] yml_test.go:225: test emptyMX yml_test.go:227: checkhost 1.2.3.4 spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "" ("mail.example.com") @@ -5113,18 +5157,9 @@ spf.go:176: dns record "v=spf1 -all" spf.go:237: fail matched all yml_test.go:234: success: fail, matched 'all' [localhost] - yml_test.go:225: test null-cname - yml_test.go:227: checkhost 1.2.3.4 bar@e3.example.com - spf.go:129: check host with sender "1.2.3.4" "mail.example.com" "bar@e3.example.com" ("e3.example.com") - spf.go:160: check e3.example.com 1 - spf.go:176: dns record "v=spf1 a:mx1.example.com mx:mx1.example.com ~all" - spf.go:526: masks on "a:mx1.example.com": ["a:mx1.example.com" ":mx1.example.com" "mx1.example.com" "" "" "" ""] "mx1.example.com" {-1 -1} - spf.go:526: masks on "mx:mx1.example.com": ["mx:mx1.example.com" ":mx1.example.com" "mx1.example.com" "" "" "" ""] "mx1.example.com" {-1 -1} - spf.go:237: softfail matched all - yml_test.go:234: success: softfail, matched 'all' [null-cname] ---- PASS: TestPySPF (0.18s) +--- PASS: TestPySPF (0.00s) PASS -ok blitiri.com.ar/go/spf 0.755s +ok blitiri.com.ar/go/spf 0.055s create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=golang dh_prep -O--buildsystem=golang @@ -5152,12 +5187,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/2609101/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1884695 and its subdirectories -I: Current time: Wed Jul 17 08:15:17 -12 2024 -I: pbuilder-time-stamp: 1721247317 +I: removing directory /srv/workspace/pbuilder/2609101 and its subdirectories +I: Current time: Wed Aug 20 16:39:44 +14 2025 +I: pbuilder-time-stamp: 1755657584