Diff of the two buildlogs: -- --- b1/build.log 2023-04-29 07:21:48.607745764 +0000 +++ b2/build.log 2023-04-29 07:22:29.161952612 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Fri Apr 28 19:20:57 -12 2023 -I: pbuilder-time-stamp: 1682752857 +I: Current time: Sat Jun 1 03:44:49 +14 2024 +I: pbuilder-time-stamp: 1717163089 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/bookworm-reproducible-base.tgz] I: copying local configuration @@ -17,7 +17,7 @@ I: copying [./golang-blitiri-go-spf_1.5.1.orig.tar.gz] I: copying [./golang-blitiri-go-spf_1.5.1-1.debian.tar.xz] I: Extracting source -gpgv: Signature made Fri Sep 2 06:38:54 2022 -12 +gpgv: Signature made Sat Sep 3 08:38:54 2022 +14 gpgv: using RSA key 3E99A526F5DCC0CBBF1CEEA600BAE74B343369F1 gpgv: issuer "nilesh@debian.org" gpgv: Can't check signature: No public key @@ -27,137 +27,169 @@ dpkg-source: info: unpacking golang-blitiri-go-spf_1.5.1-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/28910/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/115519/tmp/hooks/D01_modify_environment starting +debug: Running on ionos6-i386. +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 Jun 1 03:44 /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/115519/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/115519/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='i386' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=8' - DISTRIBUTION='bookworm' - HOME='/root' - HOST_ARCH='i386' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="15" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") + BASH_VERSION='5.2.15(1)-release' + BUILDDIR=/build + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=i386 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=15' + DIRSTACK=() + DISTRIBUTION=bookworm + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=i686 + HOST_ARCH=i386 IFS=' ' - INVOCATION_ID='3614c81fa24546d296b71475ec8107de' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - LD_LIBRARY_PATH='/usr/lib/libeatmydata' - LD_PRELOAD='libeatmydata.so' - 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='28910' - PS1='# ' - PS2='> ' + INVOCATION_ID=fbb4f45750fb49e48e1da35c314cac37 + LANG=C + LANGUAGE=de_CH:de + LC_ALL=C + LD_LIBRARY_PATH=/usr/lib/libeatmydata + LD_PRELOAD=libeatmydata.so + MACHTYPE=i686-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=115519 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.uXuSQMBI/pbuilderrc_fbvW --distribution bookworm --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.uXuSQMBI/b1 --logfile b1/build.log golang-blitiri-go-spf_1.5.1-1.dsc' - SUDO_GID='112' - SUDO_UID='107' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://78.137.99.97: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.uXuSQMBI/pbuilderrc_sQwN --distribution bookworm --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/bookworm-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.uXuSQMBI/b2 --logfile b2/build.log --extrapackages usrmerge golang-blitiri-go-spf_1.5.1-1.dsc' + SUDO_GID=112 + SUDO_UID=107 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://85.184.249.68:3128 I: uname -a - Linux ionos12-i386 5.10.0-21-686-pae #1 SMP Debian 5.10.162-1 (2023-01-21) i686 GNU/Linux + Linux i-capture-the-hostname 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-21) x86_64 GNU/Linux I: ls -l /bin total 6036 - -rwxr-xr-x 1 root root 1408088 Apr 23 09:24 bash - -rwxr-xr-x 3 root root 38404 Sep 18 2022 bunzip2 - -rwxr-xr-x 3 root root 38404 Sep 18 2022 bzcat - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzcmp -> bzdiff - -rwxr-xr-x 1 root root 2225 Sep 18 2022 bzdiff - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzegrep -> bzgrep - -rwxr-xr-x 1 root root 4893 Nov 27 2021 bzexe - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzfgrep -> bzgrep - -rwxr-xr-x 1 root root 3775 Sep 18 2022 bzgrep - -rwxr-xr-x 3 root root 38404 Sep 18 2022 bzip2 - -rwxr-xr-x 1 root root 17892 Sep 18 2022 bzip2recover - lrwxrwxrwx 1 root root 6 Sep 18 2022 bzless -> bzmore - -rwxr-xr-x 1 root root 1297 Sep 18 2022 bzmore - -rwxr-xr-x 1 root root 42920 Sep 20 2022 cat - -rwxr-xr-x 1 root root 79816 Sep 20 2022 chgrp - -rwxr-xr-x 1 root root 67496 Sep 20 2022 chmod - -rwxr-xr-x 1 root root 79816 Sep 20 2022 chown - -rwxr-xr-x 1 root root 162024 Sep 20 2022 cp - -rwxr-xr-x 1 root root 136916 Jan 5 01:20 dash - -rwxr-xr-x 1 root root 137160 Sep 20 2022 date - -rwxr-xr-x 1 root root 100364 Sep 20 2022 dd - -rwxr-xr-x 1 root root 108940 Sep 20 2022 df - -rwxr-xr-x 1 root root 162152 Sep 20 2022 dir - -rwxr-xr-x 1 root root 87760 Mar 22 22:20 dmesg - lrwxrwxrwx 1 root root 8 Dec 19 01:33 dnsdomainname -> hostname - lrwxrwxrwx 1 root root 8 Dec 19 01:33 domainname -> hostname - -rwxr-xr-x 1 root root 38760 Sep 20 2022 echo - -rwxr-xr-x 1 root root 41 Jan 24 02:43 egrep - -rwxr-xr-x 1 root root 34664 Sep 20 2022 false - -rwxr-xr-x 1 root root 41 Jan 24 02:43 fgrep - -rwxr-xr-x 1 root root 84272 Mar 22 22:20 findmnt - -rwsr-xr-x 1 root root 30240 Mar 22 20:38 fusermount - -rwxr-xr-x 1 root root 218680 Jan 24 02:43 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 100952 Apr 9 2022 gzip - -rwxr-xr-x 1 root root 21916 Dec 19 01:33 hostname - -rwxr-xr-x 1 root root 75756 Sep 20 2022 ln - -rwxr-xr-x 1 root root 55600 Mar 22 23:43 login - -rwxr-xr-x 1 root root 162152 Sep 20 2022 ls - -rwxr-xr-x 1 root root 214568 Mar 22 22:20 lsblk - -rwxr-xr-x 1 root root 96328 Sep 20 2022 mkdir - -rwxr-xr-x 1 root root 84008 Sep 20 2022 mknod - -rwxr-xr-x 1 root root 38792 Sep 20 2022 mktemp - -rwxr-xr-x 1 root root 63016 Mar 22 22:20 more - -rwsr-xr-x 1 root root 58912 Mar 22 22:20 mount - -rwxr-xr-x 1 root root 13856 Mar 22 22:20 mountpoint - -rwxr-xr-x 1 root root 157932 Sep 20 2022 mv - lrwxrwxrwx 1 root root 8 Dec 19 01:33 nisdomainname -> hostname - lrwxrwxrwx 1 root root 14 Apr 2 18:25 pidof -> /sbin/killall5 - -rwxr-xr-x 1 root root 38792 Sep 20 2022 pwd - lrwxrwxrwx 1 root root 4 Apr 23 09:24 rbash -> bash - -rwxr-xr-x 1 root root 51080 Sep 20 2022 readlink - -rwxr-xr-x 1 root root 75720 Sep 20 2022 rm - -rwxr-xr-x 1 root root 51080 Sep 20 2022 rmdir - -rwxr-xr-x 1 root root 22308 Nov 2 04:31 run-parts - -rwxr-xr-x 1 root root 133224 Jan 5 07:55 sed - lrwxrwxrwx 1 root root 4 Jan 5 01:20 sh -> dash - -rwxr-xr-x 1 root root 38760 Sep 20 2022 sleep - -rwxr-xr-x 1 root root 87976 Sep 20 2022 stty - -rwsr-xr-x 1 root root 83492 Mar 22 22:20 su - -rwxr-xr-x 1 root root 38792 Sep 20 2022 sync - -rwxr-xr-x 1 root root 598456 Apr 6 02:25 tar - -rwxr-xr-x 1 root root 13860 Nov 2 04:31 tempfile - -rwxr-xr-x 1 root root 120776 Sep 20 2022 touch - -rwxr-xr-x 1 root root 34664 Sep 20 2022 true - -rwxr-xr-x 1 root root 17892 Mar 22 20:38 ulockmgr_server - -rwsr-xr-x 1 root root 30236 Mar 22 22:20 umount - -rwxr-xr-x 1 root root 38760 Sep 20 2022 uname - -rwxr-xr-x 2 root root 2346 Apr 9 2022 uncompress - -rwxr-xr-x 1 root root 162152 Sep 20 2022 vdir - -rwxr-xr-x 1 root root 71216 Mar 22 22:20 wdctl - lrwxrwxrwx 1 root root 8 Dec 19 01:33 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 6460 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 8103 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/28910/tmp/hooks/D02_print_environment finished + -rwxr-xr-x 1 root root 1408088 Apr 24 2023 bash + -rwxr-xr-x 3 root root 38404 Sep 19 2022 bunzip2 + -rwxr-xr-x 3 root root 38404 Sep 19 2022 bzcat + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzcmp -> bzdiff + -rwxr-xr-x 1 root root 2225 Sep 19 2022 bzdiff + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzegrep -> bzgrep + -rwxr-xr-x 1 root root 4893 Nov 28 2021 bzexe + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzfgrep -> bzgrep + -rwxr-xr-x 1 root root 3775 Sep 19 2022 bzgrep + -rwxr-xr-x 3 root root 38404 Sep 19 2022 bzip2 + -rwxr-xr-x 1 root root 17892 Sep 19 2022 bzip2recover + lrwxrwxrwx 1 root root 6 Sep 19 2022 bzless -> bzmore + -rwxr-xr-x 1 root root 1297 Sep 19 2022 bzmore + -rwxr-xr-x 1 root root 42920 Sep 21 2022 cat + -rwxr-xr-x 1 root root 79816 Sep 21 2022 chgrp + -rwxr-xr-x 1 root root 67496 Sep 21 2022 chmod + -rwxr-xr-x 1 root root 79816 Sep 21 2022 chown + -rwxr-xr-x 1 root root 162024 Sep 21 2022 cp + -rwxr-xr-x 1 root root 136916 Jan 6 2023 dash + -rwxr-xr-x 1 root root 137160 Sep 21 2022 date + -rwxr-xr-x 1 root root 100364 Sep 21 2022 dd + -rwxr-xr-x 1 root root 108940 Sep 21 2022 df + -rwxr-xr-x 1 root root 162152 Sep 21 2022 dir + -rwxr-xr-x 1 root root 87760 Mar 24 2023 dmesg + lrwxrwxrwx 1 root root 8 Dec 20 2022 dnsdomainname -> hostname + lrwxrwxrwx 1 root root 8 Dec 20 2022 domainname -> hostname + -rwxr-xr-x 1 root root 38760 Sep 21 2022 echo + -rwxr-xr-x 1 root root 41 Jan 25 2023 egrep + -rwxr-xr-x 1 root root 34664 Sep 21 2022 false + -rwxr-xr-x 1 root root 41 Jan 25 2023 fgrep + -rwxr-xr-x 1 root root 84272 Mar 24 2023 findmnt + -rwsr-xr-x 1 root root 30240 Mar 23 2023 fusermount + -rwxr-xr-x 1 root root 218680 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 100952 Apr 10 2022 gzip + -rwxr-xr-x 1 root root 21916 Dec 20 2022 hostname + -rwxr-xr-x 1 root root 75756 Sep 21 2022 ln + -rwxr-xr-x 1 root root 55600 Mar 24 2023 login + -rwxr-xr-x 1 root root 162152 Sep 21 2022 ls + -rwxr-xr-x 1 root root 214568 Mar 24 2023 lsblk + -rwxr-xr-x 1 root root 96328 Sep 21 2022 mkdir + -rwxr-xr-x 1 root root 84008 Sep 21 2022 mknod + -rwxr-xr-x 1 root root 38792 Sep 21 2022 mktemp + -rwxr-xr-x 1 root root 63016 Mar 24 2023 more + -rwsr-xr-x 1 root root 58912 Mar 24 2023 mount + -rwxr-xr-x 1 root root 13856 Mar 24 2023 mountpoint + -rwxr-xr-x 1 root root 157932 Sep 21 2022 mv + lrwxrwxrwx 1 root root 8 Dec 20 2022 nisdomainname -> hostname + lrwxrwxrwx 1 root root 14 Apr 3 2023 pidof -> /sbin/killall5 + -rwxr-xr-x 1 root root 38792 Sep 21 2022 pwd + lrwxrwxrwx 1 root root 4 Apr 24 2023 rbash -> bash + -rwxr-xr-x 1 root root 51080 Sep 21 2022 readlink + -rwxr-xr-x 1 root root 75720 Sep 21 2022 rm + -rwxr-xr-x 1 root root 51080 Sep 21 2022 rmdir + -rwxr-xr-x 1 root root 22308 Nov 3 2022 run-parts + -rwxr-xr-x 1 root root 133224 Jan 6 2023 sed + lrwxrwxrwx 1 root root 9 Jun 1 03:44 sh -> /bin/bash + -rwxr-xr-x 1 root root 38760 Sep 21 2022 sleep + -rwxr-xr-x 1 root root 87976 Sep 21 2022 stty + -rwsr-xr-x 1 root root 83492 Mar 24 2023 su + -rwxr-xr-x 1 root root 38792 Sep 21 2022 sync + -rwxr-xr-x 1 root root 598456 Apr 7 2023 tar + -rwxr-xr-x 1 root root 13860 Nov 3 2022 tempfile + -rwxr-xr-x 1 root root 120776 Sep 21 2022 touch + -rwxr-xr-x 1 root root 34664 Sep 21 2022 true + -rwxr-xr-x 1 root root 17892 Mar 23 2023 ulockmgr_server + -rwsr-xr-x 1 root root 30236 Mar 24 2023 umount + -rwxr-xr-x 1 root root 38760 Sep 21 2022 uname + -rwxr-xr-x 2 root root 2346 Apr 10 2022 uncompress + -rwxr-xr-x 1 root root 162152 Sep 21 2022 vdir + -rwxr-xr-x 1 root root 71216 Mar 24 2023 wdctl + lrwxrwxrwx 1 root root 8 Dec 20 2022 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 6460 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 8103 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/115519/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -236,7 +268,7 @@ Get: 35 http://deb.debian.org/debian bookworm/main i386 golang-go i386 2:1.19~1 [45.0 kB] Get: 36 http://deb.debian.org/debian bookworm/main i386 golang-any i386 2:1.19~1 [5872 B] Get: 37 http://deb.debian.org/debian bookworm/main i386 golang-gopkg-yaml.v3-dev all 3.0.1-3 [74.3 kB] -Fetched 98.7 MB in 4s (25.4 MB/s) +Fetched 98.7 MB in 2s (50.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (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 ... 19604 files and directories currently installed.) @@ -398,8 +430,19 @@ Writing extended state information... Building tag database... -> Finished parsing the build-deps +Reading package lists... +Building dependency tree... +Reading state information... +usrmerge is already the newest version (35). +0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package -I: Running cd /build/golang-blitiri-go-spf-1.5.1/ && 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.5.1-1_source.changes +I: user script /srv/workspace/pbuilder/115519/tmp/hooks/A99_set_merged_usr starting +Re-configuring usrmerge... +removed '/etc/unsupported-skip-usrmerge-conversion' +The system has been successfully converted. +I: user script /srv/workspace/pbuilder/115519/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/golang-blitiri-go-spf-1.5.1/ && 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.5.1-1_source.changes dpkg-buildpackage: info: source package golang-blitiri-go-spf dpkg-buildpackage: info: source version 1.5.1-1 dpkg-buildpackage: info: source distribution unstable @@ -417,26 +460,26 @@ dh_autoreconf -O--buildsystem=golang dh_auto_configure -O--buildsystem=golang dh_auto_build -O--buildsystem=golang - cd obj-i686-linux-gnu && go install -trimpath -v -p 8 blitiri.com.ar/go/spf blitiri.com.ar/go/spf/internal/dnstest + cd obj-i686-linux-gnu && go install -trimpath -v -p 15 blitiri.com.ar/go/spf blitiri.com.ar/go/spf/internal/dnstest +internal/itoa internal/goarch internal/unsafeheader +unicode/utf8 +runtime/internal/atomic internal/goos +internal/cpu +sync/atomic internal/goexperiment internal/race +internal/nettrace runtime/internal/syscall -internal/abi -internal/cpu -runtime/internal/math -runtime/internal/sys -sync/atomic -runtime/internal/atomic -internal/itoa math/bits -unicode/utf8 -internal/nettrace unicode -internal/bytealg +runtime/internal/math +internal/abi +runtime/internal/sys math +internal/bytealg runtime internal/reflectlite sync @@ -447,24 +490,24 @@ sort internal/oserror internal/safefilepath -path io +path vendor/golang.org/x/net/dns/dnsmessage strconv syscall -bytes strings +bytes reflect regexp/syntax +internal/syscall/execenv internal/syscall/unix time -internal/syscall/execenv regexp context io/fs internal/poll -internal/fmtsort os +internal/fmtsort internal/godebug fmt internal/intern @@ -474,7 +517,7 @@ blitiri.com.ar/go/spf/internal/dnstest blitiri.com.ar/go/spf dh_auto_test -O--buildsystem=golang - cd obj-i686-linux-gnu && go test -vet=off -v -p 8 blitiri.com.ar/go/spf blitiri.com.ar/go/spf/internal/dnstest + cd obj-i686-linux-gnu && go test -vet=off -v -p 15 blitiri.com.ar/go/spf blitiri.com.ar/go/spf/internal/dnstest === RUN TestBasic spf.go:308: check "domain" 0 0 spf.go:330: dns record "" @@ -1248,19 +1291,23 @@ yml_test.go:162: suite: Simple failures yml_test.go:167: domain example.net yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:251: test test1 + yml_test.go:251: test test2 yml_test.go:253: checkhost 1.2.3.4 foobar@example.net spf.go:308: check "example.net" 0 0 spf.go:330: dns record "v=spf1 -all" spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [test1] - yml_test.go:251: test test2 + yml_test.go:260: success: fail, matched all [test2] + yml_test.go:251: test test1 yml_test.go:253: checkhost 1.2.3.4 foobar@example.net spf.go:308: check "example.net" 0 0 spf.go:330: dns record "v=spf1 -all" spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [test2] + yml_test.go:260: success: fail, matched all [test1] yml_test.go:162: suite: Regexp edge cases for "a", "mx" and "ptr" + yml_test.go:167: domain a1.net + yml_test.go:169: SPF: [v=spf1 ip6:a::a ~all] + yml_test.go:167: domain a2.net + yml_test.go:169: SPF: [v=spf1 ip6:1a0a:cccc::/29 ~all] yml_test.go:167: domain expmx.net yml_test.go:169: SPF: [v=spf1 exp=mx:mymx.com ~all] yml_test.go:169: MX: {10 mymx.com} @@ -1272,10 +1319,6 @@ yml_test.go:169: PTR: [ptr:lalala.com.] yml_test.go:167: domain ptr:lalala.com yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain a1.net - yml_test.go:169: SPF: [v=spf1 ip6:a::a ~all] - yml_test.go:167: domain a2.net - yml_test.go:169: SPF: [v=spf1 ip6:1a0a:cccc::/29 ~all] yml_test.go:251: test ipv6-with-a yml_test.go:253: checkhost a::a foobar@a1.net spf.go:308: check "a1.net" 0 0 @@ -1343,8 +1386,18 @@ spf.go:426: "exists:%{h}.com" pass, matched exists yml_test.go:260: success: pass, matched exists [resolve-h-macros] yml_test.go:162: suite: Only include the first 10 PTR results + yml_test.go:167: domain dom01.com + yml_test.go:169: A: [127.0.0.1] + yml_test.go:167: domain dom03.com + yml_test.go:169: A: [127.0.0.3] + yml_test.go:167: domain dom07.com + yml_test.go:169: A: [127.0.0.7] + yml_test.go:167: domain dom08.com + yml_test.go:169: A: [127.0.0.8] yml_test.go:167: domain dom09.com yml_test.go:169: A: [127.0.0.9] + yml_test.go:167: domain dom10.com + yml_test.go:169: A: [127.0.0.10] yml_test.go:167: domain domain.net yml_test.go:169: A: [127.0.0.1] yml_test.go:169: SPF: [v=spf1 ptr ~all] @@ -1362,22 +1415,12 @@ yml_test.go:169: PTR: [domain.net] yml_test.go:167: domain dom02.com yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain dom06.com - yml_test.go:169: A: [127.0.0.6] - yml_test.go:167: domain dom08.com - yml_test.go:169: A: [127.0.0.8] - yml_test.go:167: domain dom10.com - yml_test.go:169: A: [127.0.0.10] - yml_test.go:167: domain dom01.com - yml_test.go:169: A: [127.0.0.1] - yml_test.go:167: domain dom03.com - yml_test.go:169: A: [127.0.0.3] yml_test.go:167: domain dom04.com yml_test.go:169: A: [127.0.0.4] yml_test.go:167: domain dom05.com yml_test.go:169: A: [127.0.0.5] - yml_test.go:167: domain dom07.com - yml_test.go:169: A: [127.0.0.7] + yml_test.go:167: domain dom06.com + yml_test.go:169: A: [127.0.0.6] yml_test.go:251: test only-first-10-ptr yml_test.go:253: checkhost 1.2.3.4 foo@domain.net spf.go:308: check "domain.net" 0 0 @@ -1397,32 +1440,32 @@ spf.go:397: all: softfail yml_test.go:260: success: softfail, matched all [only-first-10-ptr] yml_test.go:162: suite: Resolution limits + yml_test.go:167: domain d23 + yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain okay.com yml_test.go:169: SPF: [v=spf1 include:d11 include:d12 include:d13 include:d14 include:d15 -all] yml_test.go:167: domain bad.com yml_test.go:169: SPF: [v=spf1 include:d00 include:d11 include:d12 include:d13 include:d14 include:d15 -all] yml_test.go:167: domain d00 yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain d11 + yml_test.go:169: SPF: [v=spf1 include:d21 ~all] + yml_test.go:167: domain d15 + yml_test.go:169: SPF: [v=spf1 include:d25 ~all] + yml_test.go:167: domain d21 + yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain d12 yml_test.go:169: SPF: [v=spf1 include:d22 ~all] + yml_test.go:167: domain d13 + yml_test.go:169: SPF: [v=spf1 include:d23 ~all] yml_test.go:167: domain d14 yml_test.go:169: SPF: [v=spf1 include:d24 ~all] - yml_test.go:167: domain d15 - yml_test.go:169: SPF: [v=spf1 include:d25 ~all] yml_test.go:167: domain d22 yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain d23 - yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain d24 yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain d25 yml_test.go:169: SPF: [v=spf1 all] - yml_test.go:167: domain d11 - yml_test.go:169: SPF: [v=spf1 include:d21 ~all] - yml_test.go:167: domain d13 - yml_test.go:169: SPF: [v=spf1 include:d23 ~all] - yml_test.go:167: domain d21 - yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:251: test resolution-with-10-lookups yml_test.go:253: checkhost 1.2.3.4 foo@okay.com spf.go:308: check "okay.com" 0 0 @@ -1562,12 +1605,6 @@ spf.go:373: lookup limit reached yml_test.go:260: success: permerror, lookup limit reached [mx-resolution-11-terms] yml_test.go:162: suite: NXDOMAIN tests - yml_test.go:167: domain d01 - yml_test.go:169: SPF: [v=spf1 mx ip4:1.2.3.4 -all] - yml_test.go:169: MX: {10 doesnotexist} - yml_test.go:169: MX: {20 doesnotexist} - yml_test.go:167: domain d02 - yml_test.go:169: SPF: [v=spf1 include:doesnotexist all] yml_test.go:167: domain d03 yml_test.go:169: SPF: [v=spf1 redirect=doesnotexist] yml_test.go:167: domain sender @@ -1576,6 +1613,28 @@ yml_test.go:169: SPF: [v=spf1 mx -all] yml_test.go:169: MX: {10 doesnotexist} yml_test.go:169: MX: {20 sender} + yml_test.go:167: domain d01 + yml_test.go:169: SPF: [v=spf1 mx ip4:1.2.3.4 -all] + yml_test.go:169: MX: {10 doesnotexist} + yml_test.go:169: MX: {20 doesnotexist} + yml_test.go:167: domain d02 + yml_test.go:169: SPF: [v=spf1 include:doesnotexist all] + yml_test.go:251: test include-not-found + yml_test.go:253: checkhost 1.2.3.4 foo@d02 + spf.go:308: check "d02" 0 0 + spf.go:330: dns record "v=spf1 include:doesnotexist all" + spf.go:308: check "doesnotexist" 1 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + spf.go:401: "include:doesnotexist" permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [include-not-found] + yml_test.go:251: test redirect-not-found + yml_test.go:253: checkhost 1.2.3.4 foo@d03 + spf.go:308: check "d03" 0 0 + spf.go:330: dns record "v=spf1 redirect=doesnotexist" + spf.go:308: check "doesnotexist" 1 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + spf.go:434: "redirect=doesnotexist": permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [redirect-not-found] yml_test.go:251: test one-mx-not-found yml_test.go:253: checkhost 1.2.3.4 foo@d00 spf.go:308: check "d00" 0 0 @@ -1599,57 +1658,35 @@ spf.go:308: check "doesnotexist" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) yml_test.go:260: success: none, no DNS record found [domain-not-found] - yml_test.go:251: test include-not-found - yml_test.go:253: checkhost 1.2.3.4 foo@d02 - spf.go:308: check "d02" 0 0 - spf.go:330: dns record "v=spf1 include:doesnotexist all" - spf.go:308: check "doesnotexist" 1 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - spf.go:401: "include:doesnotexist" permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [include-not-found] - yml_test.go:251: test redirect-not-found - yml_test.go:253: checkhost 1.2.3.4 foo@d03 - spf.go:308: check "d03" 0 0 - spf.go:330: dns record "v=spf1 redirect=doesnotexist" - spf.go:308: check "doesnotexist" 1 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - spf.go:434: "redirect=doesnotexist": permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [redirect-not-found] --- PASS: TestOurs (0.01s) === RUN TestRFC4408 yml_test.go:162: suite: Initial processing - yml_test.go:167: domain fine.example.com - yml_test.go:169: TXT: [v=spf1 a -all] - yml_test.go:167: domain a.example.net - yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] - yml_test.go:167: domain example.net - yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] yml_test.go:167: domain exp.example.net yml_test.go:169: TXT: [%{l}] yml_test.go:167: domain a12345678901234567890123456789012345678901234567890123456789012.example.com yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain hosed.example.com - yml_test.go:169: SPF: [v=spf1 a:garbage.example.net -all] yml_test.go:167: domain hosed2.example.com yml_test.go:169: SPF: [v=spf1 €a:example.net -all] yml_test.go:167: domain hosed3.example.com yml_test.go:169: SPF: [v=spf1 a:example.net –all] + yml_test.go:167: domain example.com + yml_test.go:169: TIMEOUT + yml_test.go:167: domain a.example.net + yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] yml_test.go:167: domain nothosed.example.com yml_test.go:169: SPF: [v=spf1 a:example.net -all] yml_test.go:169: SPF: [–] - yml_test.go:167: domain example.com - yml_test.go:169: TIMEOUT - yml_test.go:251: test nolocalpart - yml_test.go:253: checkhost 1.2.3.4 @example.net - spf.go:308: check "example.net" 0 0 - spf.go:330: dns record "v=spf1 -all exp=exp.example.net" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [nolocalpart] - yml_test.go:251: test domain-literal - yml_test.go:253: checkhost 1.2.3.5 foo@[1.2.3.5] + yml_test.go:167: domain fine.example.com + yml_test.go:169: TXT: [v=spf1 a -all] + yml_test.go:167: domain example.net + yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] + yml_test.go:167: domain hosed.example.com + yml_test.go:169: SPF: [v=spf1 a:garbage.example.net -all] + yml_test.go:251: test helo-domain-literal + yml_test.go:253: checkhost 1.2.3.5 spf.go:308: check "[1.2.3.5]" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [domain-literal] + yml_test.go:260: success: none, no DNS record found [helo-domain-literal] yml_test.go:251: test non-ascii-result yml_test.go:253: checkhost 1.2.3.4 foobar@hosed3.example.com spf.go:308: check "hosed3.example.com" 0 0 @@ -1658,6 +1695,14 @@ spf.go:514: void lookup: nxdomain spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [non-ascii-result] + yml_test.go:251: test non-ascii-non-spf + yml_test.go:253: checkhost 1.2.3.4 foobar@nothosed.example.com + spf.go:308: check "nothosed.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:example.net -all" + spf.go:747: masks on "a:example.net", "nothosed.example.com": "example.net" [, ] + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [non-ascii-non-spf] yml_test.go:251: test two-spaces yml_test.go:253: checkhost 1.2.3.4 actually@fine.example.com spf.go:308: check "fine.example.com" 0 0 @@ -1677,19 +1722,6 @@ spf.go:330: dns record "v=spf1 -all" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [longlabel] - yml_test.go:251: test helo-domain-literal - yml_test.go:253: checkhost 1.2.3.5 - spf.go:308: check "[1.2.3.5]" 0 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [helo-domain-literal] - yml_test.go:251: test non-ascii-non-spf - yml_test.go:253: checkhost 1.2.3.4 foobar@nothosed.example.com - spf.go:308: check "nothosed.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:example.net -all" - spf.go:747: masks on "a:example.net", "nothosed.example.com": "example.net" [, ] - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [non-ascii-non-spf] yml_test.go:251: test emptylabel yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A...example.com spf.go:308: check "A...example.com" 0 0 @@ -1700,12 +1732,18 @@ spf.go:308: check "A2345678" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) yml_test.go:260: success: none, no DNS record found [helo-not-fqdn] + yml_test.go:251: test nolocalpart + yml_test.go:253: checkhost 1.2.3.4 @example.net + spf.go:308: check "example.net" 0 0 + spf.go:330: dns record "v=spf1 -all exp=exp.example.net" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [nolocalpart] + yml_test.go:251: test domain-literal + yml_test.go:253: checkhost 1.2.3.5 foo@[1.2.3.5] + spf.go:308: check "[1.2.3.5]" 0 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + yml_test.go:260: success: none, no DNS record found [domain-literal] yml_test.go:162: suite: Record lookup - yml_test.go:167: domain both.example.net - yml_test.go:169: TXT: [v=spf1 -all] - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain txtonly.example.net - yml_test.go:169: TXT: [v=spf1 -all] yml_test.go:167: domain spfonly.example.net yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:169: TXT: [NONE] @@ -1722,6 +1760,11 @@ yml_test.go:169: TIMEOUT yml_test.go:167: domain alltimeout.example.net yml_test.go:169: TIMEOUT + yml_test.go:167: domain both.example.net + yml_test.go:169: TXT: [v=spf1 -all] + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain txtonly.example.net + yml_test.go:169: TXT: [v=spf1 -all] yml_test.go:251: test spftimeout yml_test.go:253: checkhost 1.2.3.4 foo@spftimeout.example.net spf.go:308: check "spftimeout.example.net" 0 0 @@ -1764,62 +1807,36 @@ yml_test.go:169: SPF: [v=spf10] yml_test.go:169: SPF: [v=spf1 mx] yml_test.go:169: MX: {0 mail.example1.com} - yml_test.go:167: domain example7.com - yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain example2.com + yml_test.go:169: SPF: [v=spf1 mx] + yml_test.go:167: domain example5.com + yml_test.go:169: SPF: [v=spf1 +all] + yml_test.go:169: TXT: [v=spf1 -all] + yml_test.go:169: TXT: [v=spf1 +all] + yml_test.go:167: domain example6.com yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:169: SPF: [V=sPf1 +all] yml_test.go:167: domain example8.com yml_test.go:169: SPF: [V=spf1 -all] yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:169: TXT: [v=spf1 +all] - yml_test.go:167: domain example9.com - yml_test.go:169: SPF: [v=SpF1 ~all] yml_test.go:167: domain example1.com yml_test.go:169: SPF: [v=spf1] - yml_test.go:167: domain example2.com - yml_test.go:169: SPF: [v=spf1 mx] yml_test.go:167: domain mail.example1.com yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain example4.com yml_test.go:169: SPF: [v=spf1 +all] yml_test.go:169: TXT: [v=spf1 -all] - yml_test.go:167: domain example5.com - yml_test.go:169: SPF: [v=spf1 +all] - yml_test.go:169: TXT: [v=spf1 -all] - yml_test.go:169: TXT: [v=spf1 +all] - yml_test.go:167: domain example6.com + yml_test.go:167: domain example7.com yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:169: SPF: [V=sPf1 +all] + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain example9.com + yml_test.go:169: SPF: [v=SpF1 ~all] yml_test.go:251: test nospf yml_test.go:253: checkhost 1.2.3.4 foo@mail.example1.com spf.go:308: check "mail.example1.com" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) yml_test.go:260: success: none, no DNS record found [nospf] - yml_test.go:251: test empty - yml_test.go:253: checkhost 1.2.3.4 foo@example1.com - spf.go:308: check "example1.com" 0 0 - spf.go:330: dns record "v=spf1" - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [empty] - yml_test.go:251: test nospace2 - yml_test.go:253: checkhost 1.2.3.4 foo@example3.com - spf.go:308: check "example3.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "example3.com": "example3.com" [, ] - spf.go:828: mx ips: [1.2.3.4] - spf.go:831: mx match: 1.2.3.4, 1.2.3.4, [, ] - spf.go:411: "mx" pass, matched mx - yml_test.go:260: success: pass, matched mx [nospace2] - yml_test.go:251: test multitxt2 - yml_test.go:253: checkhost 1.2.3.4 foo@example6.com - spf.go:308: check "example6.com" 0 0 - spf.go:322: multiple dns records - yml_test.go:260: success: permerror, multiple matching DNS records [multitxt2] - yml_test.go:251: test multispf2 - yml_test.go:253: checkhost 1.2.3.4 foo@example8.com - spf.go:308: check "example8.com" 0 0 - spf.go:330: dns record "v=spf1 +all" - spf.go:397: all: pass - yml_test.go:260: success: pass, matched all [multispf2] yml_test.go:251: test case-insensitive yml_test.go:253: checkhost 1.2.3.4 foo@example9.com spf.go:308: check "example9.com" 0 0 @@ -1831,6 +1848,12 @@ spf.go:308: check "example2.com" 0 0 spf.go:330: dns record "" yml_test.go:260: success: none, no DNS record found [nospace1] + yml_test.go:251: test empty + yml_test.go:253: checkhost 1.2.3.4 foo@example1.com + spf.go:308: check "example1.com" 0 0 + spf.go:330: dns record "v=spf1" + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [empty] yml_test.go:251: test spfoverride yml_test.go:253: checkhost 1.2.3.4 foo@example4.com spf.go:308: check "example4.com" 0 0 @@ -1847,39 +1870,59 @@ spf.go:308: check "example7.com" 0 0 spf.go:322: multiple dns records yml_test.go:260: success: permerror, multiple matching DNS records [multispf1] + yml_test.go:251: test multispf2 + yml_test.go:253: checkhost 1.2.3.4 foo@example8.com + spf.go:308: check "example8.com" 0 0 + spf.go:330: dns record "v=spf1 +all" + spf.go:397: all: pass + yml_test.go:260: success: pass, matched all [multispf2] + yml_test.go:251: test nospace2 + yml_test.go:253: checkhost 1.2.3.4 foo@example3.com + spf.go:308: check "example3.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "example3.com": "example3.com" [, ] + spf.go:828: mx ips: [1.2.3.4] + spf.go:831: mx match: 1.2.3.4, 1.2.3.4, [, ] + spf.go:411: "mx" pass, matched mx + yml_test.go:260: success: pass, matched mx [nospace2] + yml_test.go:251: test multitxt2 + yml_test.go:253: checkhost 1.2.3.4 foo@example6.com + spf.go:308: check "example6.com" 0 0 + spf.go:322: multiple dns records + yml_test.go:260: success: permerror, multiple matching DNS records [multitxt2] yml_test.go:162: suite: Record evaluation - yml_test.go:167: domain t6.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] + yml_test.go:167: domain t1.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 -all moo] + yml_test.go:167: domain t2.example.com + yml_test.go:169: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:167: domain t8.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect:t2.example.com] yml_test.go:167: domain t9.example.com yml_test.go:169: SPF: [v=spf1 a:foo-bar -all] - yml_test.go:167: domain t10.example.com - yml_test.go:169: SPF: [v=spf1 a:mail.example...com -all] + yml_test.go:167: domain t11.example.com + yml_test.go:169: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain t1.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 -all moo] + yml_test.go:167: domain t3.example.com + yml_test.go:169: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:167: domain t4.example.com yml_test.go:169: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] yml_test.go:167: domain t5.example.com yml_test.go:169: SPF: [v=spf1 redirect=t5.example.com ~all] - yml_test.go:167: domain t12.example.com - yml_test.go:169: SPF: [v=spf1 a:%{H}.bar -all] - yml_test.go:167: domain t2.example.com - yml_test.go:169: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] - yml_test.go:167: domain t3.example.com - yml_test.go:169: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:167: domain t6.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] yml_test.go:167: domain t7.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4] - yml_test.go:167: domain t11.example.com - yml_test.go:169: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] - yml_test.go:251: test modifier-charset-bad1 - yml_test.go:253: checkhost 1.2.3.4 foo@t3.example.com - spf.go:308: check "t3.example.com" 0 0 - spf.go:330: dns record "v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [modifier-charset-bad1] + yml_test.go:167: domain t10.example.com + yml_test.go:169: SPF: [v=spf1 a:mail.example...com -all] + yml_test.go:167: domain t12.example.com + yml_test.go:169: SPF: [v=spf1 a:%{H}.bar -all] + yml_test.go:251: test default-result + yml_test.go:253: checkhost 1.2.3.5 foo@t7.example.com + spf.go:308: check "t7.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4" + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [default-result] yml_test.go:251: test invalid-domain-long yml_test.go:253: checkhost 1.2.3.4 foo@t11.example.com spf.go:308: check "t11.example.com" 0 0 @@ -1888,24 +1931,28 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [invalid-domain-long] - yml_test.go:251: test modifier-charset-bad2 - yml_test.go:253: checkhost 1.2.3.4 foo@t4.example.com - spf.go:308: check "t4.example.com" 0 0 - spf.go:330: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" + yml_test.go:251: test invalid-domain-long-via-macro + yml_test.go:253: checkhost 1.2.3.4 foo@t12.example.com + spf.go:308: check "t12.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:%{H}.bar -all" + spf.go:747: masks on "a:%{H}.bar", "t12.example.com": "%{H}.bar" [, ] + spf.go:923: macro "H": ["H" "H" "" "" ""] + spf.go:1020: macro expanded "%{H}.bar" to "%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25.bar" + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [invalid-domain-long-via-macro] + yml_test.go:251: test modifier-charset-bad1 + yml_test.go:253: checkhost 1.2.3.4 foo@t3.example.com + spf.go:308: check "t3.example.com" 0 0 + spf.go:330: dns record "v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all" spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [modifier-charset-bad2] + yml_test.go:260: success: permerror, unknown field [modifier-charset-bad1] yml_test.go:251: test redirect-after-mechanisms1 yml_test.go:253: checkhost 1.2.3.4 foo@t5.example.com spf.go:308: check "t5.example.com" 0 0 spf.go:330: dns record "v=spf1 redirect=t5.example.com ~all" spf.go:397: all: softfail yml_test.go:260: success: softfail, matched all [redirect-after-mechanisms1] - yml_test.go:251: test default-result - yml_test.go:253: checkhost 1.2.3.5 foo@t7.example.com - spf.go:308: check "t7.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4" - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [default-result] yml_test.go:251: test invalid-domain-empty-label yml_test.go:253: checkhost 1.2.3.4 foo@t10.example.com spf.go:308: check "t10.example.com" 0 0 @@ -1914,19 +1961,13 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [invalid-domain-empty-label] - yml_test.go:251: test invalid-domain-long-via-macro - yml_test.go:253: checkhost 1.2.3.4 foo@t12.example.com - spf.go:308: check "t12.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:%{H}.bar -all" - spf.go:747: masks on "a:%{H}.bar", "t12.example.com": "%{H}.bar" [, ] - spf.go:923: macro "H": ["H" "H" "" "" ""] - spf.go:1020: macro expanded "%{H}.bar" to "%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25%25.bar" - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [invalid-domain-long-via-macro] + yml_test.go:251: test modifier-charset-bad2 + yml_test.go:253: checkhost 1.2.3.4 foo@t4.example.com + spf.go:308: check "t4.example.com" 0 0 + spf.go:330: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [modifier-charset-bad2] yml_test.go:162: suite: ALL mechanism syntax - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 ?all] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 all -all] yml_test.go:167: domain mail.example.com @@ -1937,6 +1978,20 @@ yml_test.go:169: SPF: [v=spf1 -all:foobar] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 -all/8] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 ?all] + yml_test.go:251: test all-arg + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all:foobar" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [all-arg] + yml_test.go:251: test all-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all/8" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [all-cidr] yml_test.go:251: test all-neutral yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com spf.go:308: check "e4.example.com" 0 0 @@ -1955,19 +2010,15 @@ spf.go:330: dns record "v=spf1 -all." spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [all-dot] - yml_test.go:251: test all-arg - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all:foobar" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [all-arg] - yml_test.go:251: test all-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all/8" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [all-cidr] yml_test.go:162: suite: PTR mechanism syntax + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 ptr:example.com -all] + yml_test.go:167: domain 4.3.2.1.in-addr.arpa + yml_test.go:169: PTR: [e3.example.com] + yml_test.go:169: PTR: [e4.example.com] + yml_test.go:169: PTR: [mail.example.com] + yml_test.go:167: 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:169: PTR: [e3.example.com] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 ptr -all] yml_test.go:169: A: [1.2.3.4] @@ -1980,14 +2031,12 @@ yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 ptr/0 -all] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 ptr:example.com -all] - yml_test.go:167: domain 4.3.2.1.in-addr.arpa - yml_test.go:169: PTR: [e3.example.com] - yml_test.go:169: PTR: [e4.example.com] - yml_test.go:169: PTR: [mail.example.com] - yml_test.go:167: 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:169: PTR: [e3.example.com] + yml_test.go:251: test ptr-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 ptr/0 -all" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [ptr-cidr] yml_test.go:251: test ptr-match-target yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -2032,89 +2081,76 @@ spf.go:330: dns record "v=spf1 ptr:" spf.go:421: "ptr:" permerror, invalid domain yml_test.go:260: success: permerror, invalid domain [ptr-empty-domain] - yml_test.go:251: test ptr-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 ptr/0 -all" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [ptr-cidr] yml_test.go:162: suite: A mechanism syntax - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 a:foo.example.com] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 a:111.222.33.44] - yml_test.go:167: domain e13.example.com - yml_test.go:169: SPF: [v=spf1 a:] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 a//33 -all] yml_test.go:167: domain e14.example.com yml_test.go:169: SPF: [v=spf1 a:foo.example.xn--zckzah -all] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 a:foo:bar/baz.example.com] - yml_test.go:167: domain foo.example.xn--zckzah + yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 a/0 -all] yml_test.go:167: domain e6a.example.com yml_test.go:169: SPF: [v=spf1 a/33 -all] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 a:foo.example.com/24] - yml_test.go:167: domain foo.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: A: [1.2.3.5] - yml_test.go:167: domain ipv6.example.com - yml_test.go:169: AAAA: [1234::1] - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: SPF: [v=spf1 a -all] - yml_test.go:167: domain e8.example.com + yml_test.go:167: domain e8a.example.com yml_test.go:169: A: [1.2.3.5] yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:169: SPF: [v=spf1 a/24//64 -all] + yml_test.go:169: SPF: [v=spf1 a/24 -all] yml_test.go:167: domain e8e.example.com yml_test.go:169: A: [1.2.3.5] yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] yml_test.go:169: SPF: [v=spf1 a/24/64 -all] - yml_test.go:167: domain e2.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: AAAA: [1234::2] - yml_test.go:169: SPF: [v=spf1 a/0 -all] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 a//33 -all] - yml_test.go:167: domain e2b.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: SPF: [v=spf1 a//0 -all] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 a:abc.123] yml_test.go:167: domain e8b.example.com yml_test.go:169: A: [1.2.3.5] yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] yml_test.go:169: SPF: [v=spf1 a//64 -all] - yml_test.go:167: domain foo:bar/baz.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e12.example.com - yml_test.go:169: SPF: [v=spf1 a:example.-com] yml_test.go:167: domain e2a.example.com yml_test.go:169: AAAA: [1234::1] yml_test.go:169: SPF: [v=spf1 a//0 -all] - yml_test.go:167: domain e5a.example.com - yml_test.go:169: SPF: [v=spf1 a:museum] - yml_test.go:167: domain e5b.example.com - yml_test.go:169: SPF: [v=spf1 a:museum.] yml_test.go:167: domain e7.example.com yml_test.go:169: SPF: [v=spf1 a//129 -all] - yml_test.go:167: domain e8a.example.com + yml_test.go:167: domain foo.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain e2.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: AAAA: [1234::2] + yml_test.go:169: SPF: [v=spf1 a/0 -all] + yml_test.go:167: domain e8.example.com yml_test.go:169: A: [1.2.3.5] yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:169: SPF: [v=spf1 a/24 -all] + yml_test.go:169: SPF: [v=spf1 a/24//64 -all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 a:abc.123] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 a:example.com:8080] - yml_test.go:251: test a-cidr6-0-ip4mapped - yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//0 -all" - spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4mapped] + yml_test.go:167: domain e2b.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: SPF: [v=spf1 a//0 -all] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 a:foo:bar/baz.example.com] + yml_test.go:167: domain foo.example.xn--zckzah + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e5a.example.com + yml_test.go:169: SPF: [v=spf1 a:museum] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 a:foo.example.com/24] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 a:foo.example.com] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 a:111.222.33.44] + yml_test.go:167: domain e5b.example.com + yml_test.go:169: SPF: [v=spf1 a:museum.] + yml_test.go:167: domain e13.example.com + yml_test.go:169: SPF: [v=spf1 a:] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 a/0 -all] + yml_test.go:167: domain ipv6.example.com + yml_test.go:169: AAAA: [1234::1] + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: SPF: [v=spf1 a -all] + yml_test.go:167: domain foo:bar/baz.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e12.example.com + yml_test.go:169: SPF: [v=spf1 a:example.-com] yml_test.go:251: test a-bad-cidr4 yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com spf.go:308: check "e6a.example.com" 0 0 @@ -2122,37 +2158,6 @@ spf.go:747: masks on "a/33", "e6a.example.com": "" [, ] spf.go:406: "a/33" permerror, invalid mask yml_test.go:260: success: permerror, invalid mask [a-bad-cidr4] - yml_test.go:251: test a-cidr6-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//0 -all" - spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:768: a match: 1234::1, 1234::1, [, /0] - spf.go:406: "a//0" pass, matched a - yml_test.go:260: success: pass, matched a [a-cidr6-0-ip6] - yml_test.go:251: test a-bad-cidr6 - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//129 -all" - spf.go:747: masks on "a//129", "e7.example.com": "" [, ] - spf.go:406: "a//129" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [a-bad-cidr6] - yml_test.go:251: test a-dual-cidr-ip4-match - yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/24//64 -all" - spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] - spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, /64] - spf.go:406: "a/24//64" pass, matched a - yml_test.go:260: success: pass, matched a [a-dual-cidr-ip4-match] - yml_test.go:251: test a-dual-cidr-ip6-match - yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/24//64 -all" - spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] - spf.go:768: a match: 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, [/24, /64] - spf.go:406: "a/24//64" pass, matched a - yml_test.go:260: success: pass, matched a [a-dual-cidr-ip6-match] yml_test.go:251: test a-dual-cidr-ip4-default yml_test.go:253: checkhost 1.2.3.4 foo@e8b.example.com spf.go:308: check "e8b.example.com" 0 0 @@ -2160,21 +2165,14 @@ spf.go:747: masks on "a//64", "e8b.example.com": "e8b.example.com" [, /64] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-dual-cidr-ip4-default] - yml_test.go:251: test a-multi-ip1 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:foo.example.com/24" - spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:406: "a:foo.example.com/24" pass, matched a - yml_test.go:260: success: pass, matched a [a-multi-ip1] - yml_test.go:251: test a-cidr4-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/0 -all" - spf.go:747: masks on "a/0", "e2.example.com": "e2.example.com" [/0, ] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr4-0-ip6] + yml_test.go:251: test a-dash-in-toplabel + yml_test.go:253: checkhost 1.2.3.4 foo@e14.example.com + spf.go:308: check "e14.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:foo.example.xn--zckzah -all" + spf.go:747: masks on "a:foo.example.xn--zckzah", "e14.example.com": "foo.example.xn--zckzah" [, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] + spf.go:406: "a:foo.example.xn--zckzah" pass, matched a + yml_test.go:260: success: pass, matched a [a-dash-in-toplabel] yml_test.go:251: test a-ip6-dualstack yml_test.go:253: checkhost 1234::1 foo@ipv6.example.com spf.go:308: check "ipv6.example.com" 0 0 @@ -2197,13 +2195,21 @@ spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4] - yml_test.go:251: test a-cidr6-0-nxdomain - yml_test.go:253: checkhost 1234::1 foo@e2b.example.com - spf.go:308: check "e2b.example.com" 0 0 + yml_test.go:251: test a-cidr6-0-ip4mapped + yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 spf.go:330: dns record "v=spf1 a//0 -all" - spf.go:747: masks on "a//0", "e2b.example.com": "e2b.example.com" [, /0] + spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr6-0-nxdomain] + yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4mapped] + yml_test.go:251: test a-dual-cidr-ip4-match + yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/24//64 -all" + spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] + spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, /64] + spf.go:406: "a/24//64" pass, matched a + yml_test.go:260: success: pass, matched a [a-dual-cidr-ip4-match] yml_test.go:251: test a-cidr6 yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -2212,6 +2218,28 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-cidr6] + yml_test.go:251: test a-bad-cidr6 + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//129 -all" + spf.go:747: masks on "a//129", "e7.example.com": "" [, ] + spf.go:406: "a//129" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [a-bad-cidr6] + yml_test.go:251: test a-multi-ip1 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:foo.example.com/24" + spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:406: "a:foo.example.com/24" pass, matched a + yml_test.go:260: success: pass, matched a [a-multi-ip1] + yml_test.go:251: test a-cidr4-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/0 -all" + spf.go:747: masks on "a/0", "e2.example.com": "e2.example.com" [/0, ] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [a-cidr4-0-ip6] yml_test.go:251: test a-multi-ip2 yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com spf.go:308: check "e10.example.com" 0 0 @@ -2220,14 +2248,21 @@ spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] spf.go:406: "a:foo.example.com/24" pass, matched a yml_test.go:260: success: pass, matched a [a-multi-ip2] - yml_test.go:251: test a-dash-in-toplabel - yml_test.go:253: checkhost 1.2.3.4 foo@e14.example.com - spf.go:308: check "e14.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:foo.example.xn--zckzah -all" - spf.go:747: masks on "a:foo.example.xn--zckzah", "e14.example.com": "foo.example.xn--zckzah" [, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] - spf.go:406: "a:foo.example.xn--zckzah" pass, matched a - yml_test.go:260: success: pass, matched a [a-dash-in-toplabel] + yml_test.go:251: test a-cidr6-0-nxdomain + yml_test.go:253: checkhost 1234::1 foo@e2b.example.com + spf.go:308: check "e2b.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//0 -all" + spf.go:747: masks on "a//0", "e2b.example.com": "e2b.example.com" [, /0] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [a-cidr6-0-nxdomain] + yml_test.go:251: test a-dual-cidr-ip6-match + yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/24//64 -all" + spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] + spf.go:768: a match: 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, [/24, /64] + spf.go:406: "a/24//64" pass, matched a + yml_test.go:260: success: pass, matched a [a-dual-cidr-ip6-match] yml_test.go:251: test a-dual-cidr-ip6-default yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com spf.go:308: check "e8a.example.com" 0 0 @@ -2251,54 +2286,62 @@ spf.go:768: a match: 1.2.3.4, 1.1.1.1, [/0, ] spf.go:406: "a/0" pass, matched a yml_test.go:260: success: pass, matched a [a-cidr4-0] + yml_test.go:251: test a-cidr6-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//0 -all" + spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] + spf.go:768: a match: 1234::1, 1234::1, [, /0] + spf.go:406: "a//0" pass, matched a + yml_test.go:260: success: pass, matched a [a-cidr6-0-ip6] yml_test.go:162: suite: Include mechanism semantics and syntax yml_test.go:167: domain ip5.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.5 -all] + yml_test.go:167: domain erehwon.example.com + yml_test.go:169: TXT: [v=spfl am not an SPF record] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 include:ip5.example.com ~all] yml_test.go:167: domain e2.example.com yml_test.go:169: SPF: [v=spf1 include:ip6.example.com all] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 include:ip8.example.com -all] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 include: -all] yml_test.go:167: domain ip6.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.6 ~all] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 include:ip5.example.com ~all] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 include:e6.example.com -all] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 include:ip5.example.com/24 -all] - yml_test.go:167: domain ip8.example.com - yml_test.go:169: TIMEOUT yml_test.go:167: domain ip7.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.7 ?all] - yml_test.go:167: domain erehwon.example.com - yml_test.go:169: TXT: [v=spfl am not an SPF record] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 include:ip7.example.com -all] + yml_test.go:167: domain ip8.example.com + yml_test.go:169: TIMEOUT + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 include:ip8.example.com -all] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 include +all] yml_test.go:167: domain e7.example.com yml_test.go:169: SPF: [v=spf1 include:erehwon.example.com -all] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 include: -all] - yml_test.go:251: test include-softfail - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip6.example.com all" - spf.go:308: check "ip6.example.com" 1 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.6 ~all" + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 include:ip7.example.com -all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 include:e6.example.com -all] + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 include:ip5.example.com/24 -all] + yml_test.go:251: test include-none + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:erehwon.example.com -all" + spf.go:308: check "erehwon.example.com" 1 0 + spf.go:330: dns record "" + spf.go:401: "include:erehwon.example.com" permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [include-none] + yml_test.go:251: test include-fail + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip5.example.com ~all" + spf.go:308: check "ip5.example.com" 1 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.5 -all" + spf.go:397: all: fail spf.go:397: all: softfail - spf.go:397: all: pass - yml_test.go:260: success: pass, matched all [include-softfail] - yml_test.go:251: test include-temperror - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip8.example.com -all" - spf.go:308: check "ip8.example.com" 1 0 - spf.go:318: dns temp error: lookup : test timeout error - spf.go:401: "include:ip8.example.com" temperror, lookup : test timeout error - yml_test.go:260: success: temperror, lookup : test timeout error [include-temperror] + yml_test.go:260: success: softfail, matched all [include-fail] yml_test.go:251: test include-permerror yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 @@ -2314,15 +2357,22 @@ spf.go:330: dns record "v=spf1 include +all" spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [include-syntax-error] - yml_test.go:251: test include-fail - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip5.example.com ~all" - spf.go:308: check "ip5.example.com" 1 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.5 -all" - spf.go:397: all: fail + yml_test.go:251: test include-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip5.example.com/24 -all" + spf.go:874: macro contains / + spf.go:401: "include:ip5.example.com/24" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [include-cidr] + yml_test.go:251: test include-softfail + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip6.example.com all" + spf.go:308: check "ip6.example.com" 1 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.6 ~all" spf.go:397: all: softfail - yml_test.go:260: success: softfail, matched all [include-fail] + spf.go:397: all: pass + yml_test.go:260: success: pass, matched all [include-softfail] yml_test.go:251: test include-neutral yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com spf.go:308: check "e3.example.com" 0 0 @@ -2332,21 +2382,14 @@ spf.go:397: all: neutral spf.go:397: all: fail yml_test.go:260: success: fail, matched all [include-neutral] - yml_test.go:251: test include-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip5.example.com/24 -all" - spf.go:874: macro contains / - spf.go:401: "include:ip5.example.com/24" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [include-cidr] - yml_test.go:251: test include-none - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:erehwon.example.com -all" - spf.go:308: check "erehwon.example.com" 1 0 - spf.go:330: dns record "" - spf.go:401: "include:erehwon.example.com" permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [include-none] + yml_test.go:251: test include-temperror + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip8.example.com -all" + spf.go:308: check "ip8.example.com" 1 0 + spf.go:318: dns temp error: lookup : test timeout error + spf.go:401: "include:ip8.example.com" temperror, lookup : test timeout error + yml_test.go:260: success: temperror, lookup : test timeout error [include-temperror] yml_test.go:251: test include-empty-domain yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com spf.go:308: check "e8.example.com" 0 0 @@ -2356,19 +2399,10 @@ spf.go:401: "include:" permerror, no DNS record found yml_test.go:260: success: permerror, no DNS record found [include-empty-domain] yml_test.go:162: suite: MX mechanism syntax - yml_test.go:167: domain e2a.example.com - yml_test.go:169: AAAA: [1234::1] - yml_test.go:169: MX: {0 e2a.example.com} - yml_test.go:169: SPF: [v=spf1 mx//0 -all] - yml_test.go:167: domain e2b.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: MX: {0 e2b.example.com} - yml_test.go:169: SPF: [v=spf1 mx//0 -all] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 mx//129 -all] - yml_test.go:167: domain foo1.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:169: MX: {0 } + yml_test.go:169: SPF: [v=spf1 mx] yml_test.go:167: domain e12.example.com yml_test.go:169: SPF: [v=spf1 mx:example.-com] yml_test.go:167: domain e13.example.com @@ -2381,48 +2415,72 @@ yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 mx] yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 mx:abc.123] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 mx:example.com:8080] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 mx//129 -all] yml_test.go:167: domain e10.example.com yml_test.go:169: SPF: [v=spf1 mx:foo.example.com/24] - yml_test.go:167: domain foo.example.com - yml_test.go:169: MX: {0 foo1.example.com} yml_test.go:167: domain e11.example.com yml_test.go:169: SPF: [v=spf1 mx:foo:bar/baz.example.com] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:169: MX: {0 } - yml_test.go:169: SPF: [v=spf1 mx] - yml_test.go:167: domain e6a.example.com - yml_test.go:169: SPF: [v=spf1 mx/33 -all] - yml_test.go:167: domain foo:bar/baz.example.com - yml_test.go:169: MX: {0 foo:bar/baz.example.com} - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e2.example.com yml_test.go:169: A: [1.1.1.1] yml_test.go:169: AAAA: [1234::2] yml_test.go:169: MX: {0 e2.example.com} yml_test.go:169: SPF: [v=spf1 mx/0 -all] + yml_test.go:167: domain e2b.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: MX: {0 e2b.example.com} + yml_test.go:169: SPF: [v=spf1 mx//0 -all] + yml_test.go:167: domain e6a.example.com + yml_test.go:169: SPF: [v=spf1 mx/33 -all] + yml_test.go:167: domain e2a.example.com + yml_test.go:169: AAAA: [1234::1] + yml_test.go:169: MX: {0 e2a.example.com} + yml_test.go:169: SPF: [v=spf1 mx//0 -all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 mx:abc.123] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 mx//33 -all] - yml_test.go:251: test mx-bad-cidr4 - yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:308: check "e6a.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/33 -all" - spf.go:780: masks on "mx/33", "e6a.example.com": "" [, ] - spf.go:411: "mx/33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr4] - yml_test.go:251: test mx-multi-ip2 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx:foo.example.com/24" - spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:828: mx ips: [1.1.1.1 1.2.3.5] - spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:411: "mx:foo.example.com/24" pass, matched mx - yml_test.go:260: success: pass, matched mx [mx-multi-ip2] + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 mx:example.com:8080] + yml_test.go:167: domain foo.example.com + yml_test.go:169: MX: {0 foo1.example.com} + yml_test.go:167: domain foo1.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain foo:bar/baz.example.com + yml_test.go:169: MX: {0 foo:bar/baz.example.com} + yml_test.go:169: A: [1.2.3.4] + yml_test.go:251: test mx-nxdomain + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/0 -all" + spf.go:780: masks on "mx/0", "e1.example.com": "e1.example.com" [/0, ] + spf.go:828: mx ips: [] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-nxdomain] + yml_test.go:251: test mx-cidr4-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/0 -all" + spf.go:780: masks on "mx/0", "e2.example.com": "e2.example.com" [/0, ] + spf.go:828: mx ips: [1.1.1.1 1234::2] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr4-0-ip6] + yml_test.go:251: test mx-bad-cidr6 + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//129 -all" + spf.go:780: masks on "mx//129", "e7.example.com": "" [, ] + spf.go:411: "mx//129" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr6] + yml_test.go:251: test mx-implicit + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [mx-implicit] yml_test.go:251: test mx-cidr6-0-ip4 yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com spf.go:308: check "e2a.example.com" 0 0 @@ -2431,6 +2489,14 @@ spf.go:828: mx ips: [1234::1] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4] + yml_test.go:251: test mx-cidr6-0-ip4mapped + yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//0 -all" + spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] + spf.go:828: mx ips: [1234::1] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4mapped] yml_test.go:251: test mx-cidr6-0-nxdomain yml_test.go:253: checkhost 1234::1 foo@e2b.example.com spf.go:308: check "e2b.example.com" 0 0 @@ -2439,29 +2505,31 @@ spf.go:828: mx ips: [1.1.1.1] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [mx-cidr6-0-nxdomain] - yml_test.go:251: test mx-cidr6 - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//33 -all" - spf.go:780: masks on "mx//33", "e6.example.com": "e6.example.com" [, /33] - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr6] - yml_test.go:251: test mx-empty - yml_test.go:253: checkhost 1.2.3.4 - spf.go:308: check "mail.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "mail.example.com": "mail.example.com" [, ] - spf.go:828: mx ips: [] - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [mx-empty] - yml_test.go:251: test mx-bad-cidr6 - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//129 -all" - spf.go:780: masks on "mx//129", "e7.example.com": "" [, ] - spf.go:411: "mx//129" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr6] + yml_test.go:251: test mx-bad-cidr4 + yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:308: check "e6a.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/33 -all" + spf.go:780: masks on "mx/33", "e6a.example.com": "" [, ] + spf.go:411: "mx/33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr4] + yml_test.go:251: test mx-multi-ip1 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx:foo.example.com/24" + spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:828: mx ips: [1.1.1.1 1.2.3.5] + spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:411: "mx:foo.example.com/24" pass, matched mx + yml_test.go:260: success: pass, matched mx [mx-multi-ip1] + yml_test.go:251: test mx-multi-ip2 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx:foo.example.com/24" + spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:828: mx ips: [1.1.1.1 1.2.3.5] + spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:411: "mx:foo.example.com/24" pass, matched mx + yml_test.go:260: success: pass, matched mx [mx-multi-ip2] yml_test.go:251: test mx-cidr4-0 yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -2480,66 +2548,60 @@ spf.go:831: mx match: 1234::1, 1234::1, [, /0] spf.go:411: "mx//0" pass, matched mx yml_test.go:260: success: pass, matched mx [mx-cidr6-0-ip6] - yml_test.go:251: test mx-multi-ip1 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx:foo.example.com/24" - spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:828: mx ips: [1.1.1.1 1.2.3.5] - spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:411: "mx:foo.example.com/24" pass, matched mx - yml_test.go:260: success: pass, matched mx [mx-multi-ip1] - yml_test.go:251: test mx-nxdomain - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/0 -all" - spf.go:780: masks on "mx/0", "e1.example.com": "e1.example.com" [/0, ] - spf.go:828: mx ips: [] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-nxdomain] - yml_test.go:251: test mx-cidr4-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/0 -all" - spf.go:780: masks on "mx/0", "e2.example.com": "e2.example.com" [/0, ] - spf.go:828: mx ips: [1.1.1.1 1234::2] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr4-0-ip6] - yml_test.go:251: test mx-cidr6-0-ip4mapped - yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//0 -all" - spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:828: mx ips: [1234::1] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4mapped] - yml_test.go:251: test mx-implicit - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 + yml_test.go:251: test mx-empty + yml_test.go:253: checkhost 1.2.3.4 + spf.go:308: check "mail.example.com" 0 0 spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] - spf.go:514: void lookup: nxdomain + spf.go:780: masks on "mx", "mail.example.com": "mail.example.com" [, ] + spf.go:828: mx ips: [] spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [mx-implicit] + yml_test.go:260: success: neutral, [mx-empty] + yml_test.go:251: test mx-cidr6 + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//33 -all" + spf.go:780: masks on "mx//33", "e6.example.com": "e6.example.com" [, /33] + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr6] yml_test.go:162: suite: EXISTS mechanism syntax - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 exists:mail.example.com] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 exists:] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 exists] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 exists:mail.example.com/24] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 exists:mail6.example.com -all] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 exists:err.example.com -all] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain mail6.example.com yml_test.go:169: AAAA: [CAFE:BABE::4] yml_test.go:167: domain err.example.com yml_test.go:169: TIMEOUT - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 exists:] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 exists] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 exists:mail.example.com/24] + yml_test.go:251: test exists-empty-domain + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:" + spf.go:426: "exists:" permerror, invalid domain + yml_test.go:260: success: permerror, invalid domain [exists-empty-domain] + yml_test.go:251: test exists-implicit + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [exists-implicit] + yml_test.go:251: test exists-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:mail.example.com/24" + spf.go:874: macro contains / + spf.go:426: "exists:mail.example.com/24" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [exists-cidr] yml_test.go:251: test exists-ip4 yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com spf.go:308: check "e4.example.com" 0 0 @@ -2566,59 +2628,27 @@ spf.go:330: dns record "v=spf1 exists:err.example.com -all" spf.go:426: "exists:err.example.com" temperror, lookup : test timeout error yml_test.go:260: success: temperror, lookup : test timeout error [exists-dnserr] - yml_test.go:251: test exists-empty-domain - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:" - spf.go:426: "exists:" permerror, invalid domain - yml_test.go:260: success: permerror, invalid domain [exists-empty-domain] - yml_test.go:251: test exists-implicit - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [exists-implicit] - yml_test.go:251: test exists-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:mail.example.com/24" - spf.go:874: macro contains / - spf.go:426: "exists:mail.example.com/24" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [exists-cidr] yml_test.go:162: suite: IP4 mechanism syntax yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/32 -all] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/032 -all] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4//32] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1/0 -all] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/33 -all] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 ip4] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4//32] yml_test.go:167: domain e8.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4:8080] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/32 -all] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/032 -all] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3] - yml_test.go:251: test bare-ip4 - yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com - spf.go:308: check "e5.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [bare-ip4] - yml_test.go:251: test cidr4-0 - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1/0 -all" - spf.go:527: ip match: 0.0.0.0/0 contains 1.2.3.4 - spf.go:416: "ip4:1.1.1.1/0" pass, matched ip - yml_test.go:260: success: pass, matched ip [cidr4-0] yml_test.go:251: test bad-ip4-port yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com spf.go:308: check "e8.example.com" 0 0 @@ -2631,12 +2661,6 @@ spf.go:330: dns record "v=spf1 ip4:1.2.3" spf.go:416: "ip4:1.2.3" permerror, invalid ipX value yml_test.go:260: success: permerror, invalid ipX value [bad-ip4-short] - yml_test.go:251: test ip4-dual-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4//32" - spf.go:416: "ip4:1.2.3.4//32" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [ip4-dual-cidr] yml_test.go:251: test ip4-mapped-ip6 yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com spf.go:308: check "e7.example.com" 0 0 @@ -2644,6 +2668,13 @@ spf.go:536: ip match: 1.2.3.4 spf.go:416: "ip4:1.2.3.4" fail, matched ip yml_test.go:260: success: fail, matched ip [ip4-mapped-ip6] + yml_test.go:251: test cidr4-0 + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1/0 -all" + spf.go:527: ip match: 0.0.0.0/0 contains 1.2.3.4 + spf.go:416: "ip4:1.1.1.1/0" pass, matched ip + yml_test.go:260: success: pass, matched ip [cidr4-0] yml_test.go:251: test cidr4-32 yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -2651,19 +2682,25 @@ spf.go:527: ip match: 1.2.3.4/32 contains 1.2.3.4 spf.go:416: "ip4:1.2.3.4/32" pass, matched ip yml_test.go:260: success: pass, matched ip [cidr4-32] + yml_test.go:251: test bare-ip4 + yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com + spf.go:308: check "e5.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [bare-ip4] yml_test.go:251: test cidr4-33 yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com spf.go:308: check "e3.example.com" 0 0 spf.go:330: dns record "v=spf1 ip4:1.2.3.4/33 -all" spf.go:416: "ip4:1.2.3.4/33" permerror, invalid mask yml_test.go:260: success: permerror, invalid mask [cidr4-33] + yml_test.go:251: test ip4-dual-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4//32" + spf.go:416: "ip4:1.2.3.4//32" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [ip4-dual-cidr] yml_test.go:162: suite: IP6 mechanism syntax - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1//33] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 ip6:CAFE:BABE:8000::/33] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 ip6::CAFE::BABE] yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e1.example.com @@ -2672,6 +2709,12 @@ yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1/0] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1/129] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1//33] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 ip6:CAFE:BABE:8000::/33] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 ip6::CAFE::BABE] yml_test.go:251: test cidr6-33 yml_test.go:253: checkhost cafe:babe:8000:: foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 @@ -2679,6 +2722,30 @@ spf.go:527: ip match: cafe:babe:8000::/33 contains cafe:babe:8000:: spf.go:416: "ip6:CAFE:BABE:8000::/33" pass, matched ip yml_test.go:260: success: pass, matched ip [cidr6-33] + yml_test.go:251: test ip6-bad1 + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6::CAFE::BABE" + spf.go:416: "ip6::CAFE::BABE" permerror, invalid ipX value + yml_test.go:260: success: permerror, invalid ipX value [ip6-bad1] + yml_test.go:251: test cidr6-0-ip4 + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/0" + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [cidr6-0-ip4] + yml_test.go:251: test cidr6-bad + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:::1.1.1.1//33" + spf.go:416: "ip6:::1.1.1.1//33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [cidr6-bad] + yml_test.go:251: test cidr6-33-ip4 + yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com + spf.go:308: check "e5.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:CAFE:BABE:8000::/33" + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [cidr6-33-ip4] yml_test.go:251: test cidr6-ip4 yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -2698,101 +2765,102 @@ spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/129" spf.go:416: "ip6:::1.1.1.1/129" permerror, invalid mask yml_test.go:260: success: permerror, invalid mask [cidr6-129] - yml_test.go:251: test cidr6-bad - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:::1.1.1.1//33" - spf.go:416: "ip6:::1.1.1.1//33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [cidr6-bad] - yml_test.go:251: test cidr6-0-ip4 - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/0" - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [cidr6-0-ip4] - yml_test.go:251: test cidr6-33-ip4 - yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com - spf.go:308: check "e5.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:CAFE:BABE:8000::/33" - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [cidr6-33-ip4] - yml_test.go:251: test ip6-bad1 - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6::CAFE::BABE" - spf.go:416: "ip6::CAFE::BABE" permerror, invalid ipX value - yml_test.go:260: success: permerror, invalid ipX value [ip6-bad1] yml_test.go:162: suite: Semantics of exp and other modifiers - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 1up=foo] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 redirect=erehwon.example.com] - yml_test.go:167: domain e15.example.com - yml_test.go:169: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] - yml_test.go:167: domain e18.example.com - yml_test.go:169: SPF: [v=spf1 ?all redirect=] - yml_test.go:167: domain e21.example.com - yml_test.go:169: SPF: [v=spf1 exp=e21msg.example.com -all] - yml_test.go:167: domain nonascii.example.com - yml_test.go:169: SPF: [v=spf1 exp=badexp.example.com -all] - yml_test.go:167: domain tworecs.example.com - yml_test.go:169: SPF: [v=spf1 exp=twoexp.example.com -all] - yml_test.go:167: domain exp3.example.com - yml_test.go:169: TXT: [Correct!] - yml_test.go:167: domain e16.example.com - yml_test.go:169: SPF: [v=spf1 exp=-all] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=exp2.example.com] - yml_test.go:167: domain exp1.example.com - yml_test.go:169: TXT: [No-see-um] - yml_test.go:167: domain exp4.example.com - yml_test.go:169: TXT: [%{l} in implementation] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] - yml_test.go:167: domain e21msg.example.com - yml_test.go:169: TIMEOUT - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] - yml_test.go:167: domain e19.example.com - yml_test.go:169: SPF: [v=spf1 default=pass] - yml_test.go:167: domain e22.example.com - yml_test.go:169: SPF: [v=spf1 exp=mail.example.com -all] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain e13.example.com yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all] + yml_test.go:167: domain e14.example.com + yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] + yml_test.go:167: domain e15.example.com + yml_test.go:169: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] yml_test.go:167: domain e17.example.com yml_test.go:169: SPF: [v=spf1 redirect=-all ?all] - yml_test.go:167: domain e20.example.com - yml_test.go:169: SPF: [v=spf1 default=+] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 =all] yml_test.go:167: domain exp2.example.com yml_test.go:169: TXT: [See me.] yml_test.go:167: domain e11.example.com yml_test.go:169: SPF: [v=spf1 -all exp=e11msg.example.com] + yml_test.go:167: domain e21msg.example.com + yml_test.go:169: TIMEOUT + yml_test.go:167: domain tworecs.example.com + yml_test.go:169: SPF: [v=spf1 exp=twoexp.example.com -all] yml_test.go:167: domain e11msg.example.com yml_test.go:169: TXT: [Answer a fool according to his folly.] yml_test.go:169: TXT: [Do not answer a fool according to his folly.] - yml_test.go:167: domain e12.example.com - yml_test.go:169: SPF: [v=spf1 exp= -all] - yml_test.go:167: domain twoexp.example.com - yml_test.go:169: TXT: [one] - yml_test.go:169: TXT: [two] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=exp4.example.com] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=exp2.example.com] + yml_test.go:167: domain exp4.example.com + yml_test.go:169: TXT: [%{l} in implementation] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 -all foo=%abc] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 redirect=erehwon.example.com] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] yml_test.go:167: domain e13msg.example.com yml_test.go:169: TXT: [The %{x}-files.] - yml_test.go:167: domain e14.example.com - yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] + yml_test.go:167: domain e18.example.com + yml_test.go:169: SPF: [v=spf1 ?all redirect=] yml_test.go:167: domain badexp.example.com yml_test.go:169: TXT: [Explanation] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain exp1.example.com + yml_test.go:169: TXT: [No-see-um] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=exp4.example.com] + yml_test.go:167: domain nonascii.example.com + yml_test.go:169: SPF: [v=spf1 exp=badexp.example.com -all] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 =all] + yml_test.go:167: domain e12.example.com + yml_test.go:169: SPF: [v=spf1 exp= -all] + yml_test.go:167: domain e16.example.com + yml_test.go:169: SPF: [v=spf1 exp=-all] + yml_test.go:167: domain twoexp.example.com + yml_test.go:169: TXT: [one] + yml_test.go:169: TXT: [two] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] + yml_test.go:167: domain e19.example.com + yml_test.go:169: SPF: [v=spf1 default=pass] + yml_test.go:167: domain e20.example.com + yml_test.go:169: SPF: [v=spf1 default=+] + yml_test.go:167: domain e21.example.com + yml_test.go:169: SPF: [v=spf1 exp=e21msg.example.com -all] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] + yml_test.go:167: domain exp3.example.com + yml_test.go:169: TXT: [Correct!] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 1up=foo] + yml_test.go:167: domain e22.example.com + yml_test.go:169: SPF: [v=spf1 exp=mail.example.com -all] + yml_test.go:251: test explanation-syntax-error + yml_test.go:253: checkhost 1.2.3.4 foo@e13.example.com + spf.go:308: check "e13.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=e13msg.example.com -all" + spf.go:430: exp= ignored + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [explanation-syntax-error] + yml_test.go:251: test redirect-none + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 redirect=erehwon.example.com" + spf.go:308: check "erehwon.example.com" 1 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + spf.go:434: "redirect=erehwon.example.com": permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [redirect-none] + yml_test.go:251: test redirect-cancels-exp + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e2.example.com" + spf.go:430: exp= ignored + spf.go:308: check "e2.example.com" 1 0 + spf.go:330: dns record "v=spf1 -all" + spf.go:397: all: fail + spf.go:434: "redirect=e2.example.com": fail, matched all + yml_test.go:260: success: fail, matched all [redirect-cancels-exp] yml_test.go:251: test include-ignores-exp yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com spf.go:308: check "e7.example.com" 0 0 @@ -2806,19 +2874,19 @@ spf.go:434: "redirect=e4.example.com": fail, matched all spf.go:397: all: fail yml_test.go:260: success: fail, matched all [include-ignores-exp] - yml_test.go:251: test redirect-twice - yml_test.go:253: checkhost 1.2.3.4 foo@e15.example.com - spf.go:308: check "e15.example.com" 0 0 - spf.go:330: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" - spf.go:353: too many redirects - yml_test.go:260: success: permerror, invalid domain [redirect-twice] - yml_test.go:251: test explanation-syntax-error - yml_test.go:253: checkhost 1.2.3.4 foo@e13.example.com - spf.go:308: check "e13.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=e13msg.example.com -all" + yml_test.go:251: test empty-modifier-name + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 =all" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [empty-modifier-name] + yml_test.go:251: test exp-dns-error + yml_test.go:253: checkhost 1.2.3.4 foo@e21.example.com + spf.go:308: check "e21.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=e21msg.example.com -all" spf.go:430: exp= ignored spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [explanation-syntax-error] + yml_test.go:260: success: fail, matched all [exp-dns-error] yml_test.go:251: test non-ascii-exp yml_test.go:253: checkhost 1.2.3.4 foobar@nonascii.example.com spf.go:308: check "nonascii.example.com" 0 0 @@ -2826,62 +2894,40 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [non-ascii-exp] + yml_test.go:251: test redirect-twice + yml_test.go:253: checkhost 1.2.3.4 foo@e15.example.com + spf.go:308: check "e15.example.com" 0 0 + spf.go:330: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" + spf.go:353: too many redirects + yml_test.go:260: success: permerror, invalid domain [redirect-twice] + yml_test.go:251: test redirect-cancels-prior-exp + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" + spf.go:430: exp= ignored + spf.go:308: check "e4.example.com" 1 0 + spf.go:330: dns record "v=spf1 -all exp=exp2.example.com" + spf.go:397: all: fail + spf.go:434: "redirect=e4.example.com": fail, matched all + yml_test.go:260: success: fail, matched all [redirect-cancels-prior-exp] yml_test.go:251: test invalid-modifier yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 spf.go:330: dns record "v=spf1 1up=foo" spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [invalid-modifier] - yml_test.go:251: test dorky-sentinel - yml_test.go:253: checkhost 1.2.3.4 Macro Error@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=exp4.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [dorky-sentinel] yml_test.go:251: test exp-multiple-txt yml_test.go:253: checkhost 1.2.3.4 foo@e11.example.com spf.go:308: check "e11.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=e11msg.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exp-multiple-txt] - yml_test.go:251: test exp-dns-error - yml_test.go:253: checkhost 1.2.3.4 foo@e21.example.com - spf.go:308: check "e21.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=e21msg.example.com -all" - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [exp-dns-error] - yml_test.go:251: test two-exp-records - yml_test.go:253: checkhost 1.2.3.4 foobar@tworecs.example.com - spf.go:308: check "tworecs.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=twoexp.example.com -all" - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [two-exp-records] - yml_test.go:251: test redirect-none - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 redirect=erehwon.example.com" - spf.go:308: check "erehwon.example.com" 1 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - spf.go:434: "redirect=erehwon.example.com": permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [redirect-none] - yml_test.go:251: test redirect-cancels-prior-exp - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" - spf.go:430: exp= ignored - spf.go:308: check "e4.example.com" 1 0 - spf.go:330: dns record "v=spf1 -all exp=exp2.example.com" + yml_test.go:251: test dorky-sentinel + yml_test.go:253: checkhost 1.2.3.4 Macro Error@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=exp4.example.com" spf.go:397: all: fail - spf.go:434: "redirect=e4.example.com": fail, matched all - yml_test.go:260: success: fail, matched all [redirect-cancels-prior-exp] - yml_test.go:251: test empty-modifier-name - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 =all" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [empty-modifier-name] + yml_test.go:260: success: fail, matched all [dorky-sentinel] yml_test.go:251: test exp-no-txt yml_test.go:253: checkhost 1.2.3.4 foo@e22.example.com spf.go:308: check "e22.example.com" 0 0 @@ -2889,157 +2935,127 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exp-no-txt] - yml_test.go:251: test redirect-cancels-exp - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e2.example.com" + yml_test.go:251: test two-exp-records + yml_test.go:253: checkhost 1.2.3.4 foobar@tworecs.example.com + spf.go:308: check "tworecs.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=twoexp.example.com -all" spf.go:430: exp= ignored - spf.go:308: check "e2.example.com" 1 0 - spf.go:330: dns record "v=spf1 -all" spf.go:397: all: fail - spf.go:434: "redirect=e2.example.com": fail, matched all - yml_test.go:260: success: fail, matched all [redirect-cancels-exp] + yml_test.go:260: success: fail, matched all [two-exp-records] yml_test.go:162: suite: Macro expansion rules - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] - yml_test.go:167: domain mx.e7.example.com - yml_test.go:169: A: [192.168.218.42] - yml_test.go:167: domain msg.example.com - yml_test.go:169: TXT: [This is a test.] - yml_test.go:167: domain 41.218.168.192.in-addr.arpa - yml_test.go:169: PTR: [mx.example.com] - yml_test.go:167: domain somewhat.long.exp.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] - yml_test.go:167: 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:169: PTR: [mx.example.com] - yml_test.go:167: domain mx.e7.example.com.should.example.com - yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] - yml_test.go:167: domain msgbas2x.cos.example.com - yml_test.go:169: A: [192.168.218.40] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=%{ir}.example.com] + yml_test.go:167: domain example.com.d.spf.example.com + yml_test.go:169: SPF: [v=spf1 redirect=a.spf.example.com] + yml_test.go:167: domain exp.example.com + yml_test.go:169: SPF: [v=spf1 exp=msg.example.com. -all] yml_test.go:167: domain e1t.example.com yml_test.go:169: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=%{r}.example.com] + yml_test.go:167: domain macro%percent space%20url-space.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain somewhat.long.exp.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] + yml_test.go:167: domain o.spf.example.com + yml_test.go:169: SPF: [v=spf1 ip4:192.168.218.40] + yml_test.go:167: domain example.com + yml_test.go:169: A: [192.168.90.76] + yml_test.go:169: SPF: [v=spf1 redirect=%{d}.d.spf.example.com.] yml_test.go:167: domain 40.218.168.192.example.com yml_test.go:169: TXT: [Connections from %{c} not authorized.] - yml_test.go:167: 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:169: TXT: [Congratulations! That was tricky.] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 -all exp=e4msg.example.com] - yml_test.go:167: domain e6msg.example.com - yml_test.go:169: TXT: [connect from %{p}] - yml_test.go:167: domain a.spf.example.com - yml_test.go:169: SPF: [v=spf1 include:o.spf.example.com. ~all] - yml_test.go:167: domain exp.example.com - yml_test.go:169: SPF: [v=spf1 exp=msg.example.com. -all] yml_test.go:167: domain mx.example.com yml_test.go:169: A: [192.168.218.41] yml_test.go:169: A: [192.168.218.42] yml_test.go:169: AAAA: [CAFE:BABE::2] yml_test.go:169: AAAA: [CAFE:BABE::3] - yml_test.go:167: domain e12.example.com - yml_test.go:169: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] - yml_test.go:167: 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:167: domain 41.218.168.192.in-addr.arpa yml_test.go:169: PTR: [mx.example.com] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 a:%{H} -all] - yml_test.go:167: domain 1.2.3.4.gladstone.philip.user.example.com - yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain o.spf.example.com - yml_test.go:169: SPF: [v=spf1 ip4:192.168.218.40] - yml_test.go:167: domain e4msg.example.com - yml_test.go:169: TXT: [%{c} is queried as %{ir}.%{v}.arpa] - yml_test.go:167: domain e1a.example.com - yml_test.go:169: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=%{ir}.example.com] yml_test.go:167: domain 42.218.168.192.in-addr.arpa yml_test.go:169: PTR: [mx.example.com] yml_test.go:169: PTR: [mx.e7.example.com] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=msg8.%{D2}] - yml_test.go:167: domain _spfh.example.com - yml_test.go:169: SPF: [v=spf1 -a:%{h} +all] - yml_test.go:167: domain example.com - yml_test.go:169: A: [192.168.90.76] - yml_test.go:169: SPF: [v=spf1 redirect=%{d}.d.spf.example.com.] + yml_test.go:167: 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:169: PTR: [mx.example.com] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] yml_test.go:167: domain e1e.example.com yml_test.go:169: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 a:%{a}.example.com -all] + yml_test.go:167: domain e6msg.example.com + yml_test.go:169: TXT: [connect from %{p}] + yml_test.go:167: domain mx.e7.example.com + yml_test.go:169: A: [192.168.218.42] + yml_test.go:167: domain mx.example.com.ok.example.com + yml_test.go:169: A: [127.0.0.2] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] + yml_test.go:167: domain a.spf.example.com + yml_test.go:169: SPF: [v=spf1 include:o.spf.example.com. ~all] + yml_test.go:167: 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:169: TXT: [Congratulations! That was tricky.] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 -all exp=e6msg.example.com] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] - yml_test.go:167: domain example.com.d.spf.example.com - yml_test.go:169: SPF: [v=spf1 redirect=a.spf.example.com] - yml_test.go:167: domain macro%percent space%20url-space.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: 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:169: PTR: [mx.example.com] + yml_test.go:167: domain msgbas2x.cos.example.com + yml_test.go:169: A: [192.168.218.40] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=msg8.%{D2}] yml_test.go:167: domain msg8.example.com yml_test.go:169: TXT: [http://example.com/why.html?l=%{L}] - yml_test.go:167: domain bar.foo.user.example.com + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 a:%{H} -all] + yml_test.go:167: domain e12.example.com + yml_test.go:169: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] + yml_test.go:167: domain msg.example.com + yml_test.go:169: TXT: [This is a test.] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 a:%{a}.example.com -all] + yml_test.go:167: domain mx.e7.example.com.should.example.com yml_test.go:169: A: [127.0.0.2] + yml_test.go:167: domain _spfh.example.com + yml_test.go:169: SPF: [v=spf1 -a:%{h} +all] + yml_test.go:167: domain e1a.example.com + yml_test.go:169: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=%{r}.example.com] + yml_test.go:167: domain e4msg.example.com + yml_test.go:169: TXT: [%{c} is queried as %{ir}.%{v}.arpa] yml_test.go:167: domain 40.218.168.192.in-addr.arpa yml_test.go:169: PTR: [mx.example.com] - yml_test.go:167: domain mx.example.com.ok.example.com + yml_test.go:167: domain 1.2.3.4.gladstone.philip.user.example.com + yml_test.go:169: A: [127.0.0.2] + yml_test.go:167: domain bar.foo.user.example.com yml_test.go:169: A: [127.0.0.2] + yml_test.go:251: test invalid-hello-macro + yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:%{H} -all" + spf.go:747: masks on "a:%{H}", "e9.example.com": "%{H}" [, ] + spf.go:923: macro "H": ["H" "H" "" "" ""] + spf.go:1020: macro expanded "%{H}" to "JUMPIN%27+JUPITER" + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [invalid-hello-macro] + yml_test.go:251: test macro-multiple-delimiters + yml_test.go:253: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com + spf.go:308: check "e12.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" + spf.go:923: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] + spf.go:923: macro "d2": ["d2" "d" "2" "" ""] + spf.go:1020: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" + spf.go:640: exists match: 127.0.0.2 + spf.go:426: "exists:%{l2r+-}.user.%{d2}" pass, matched exists + yml_test.go:260: success: pass, matched exists [macro-multiple-delimiters] yml_test.go:251: test domain-name-truncation yml_test.go:253: checkhost 192.168.218.40 test@somewhat.long.exp.example.com spf.go:308: check "somewhat.long.exp.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [domain-name-truncation] - yml_test.go:251: test v-macro-ip4 - yml_test.go:253: checkhost 192.168.218.40 test@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [v-macro-ip4] - yml_test.go:251: test upper-macro - yml_test.go:253: checkhost 192.168.218.42 jack&jill=up@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=msg8.%{D2}" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [upper-macro] - yml_test.go:251: test trailing-dot-domain - yml_test.go:253: checkhost 192.168.218.40 test@example.com - spf.go:308: check "example.com" 0 0 - spf.go:330: dns record "v=spf1 redirect=%{d}.d.spf.example.com." - spf.go:923: macro "d": ["d" "d" "" "" ""] - spf.go:1020: macro expanded "%{d}.d.spf.example.com." to "example.com.d.spf.example.com." - spf.go:308: check "example.com.d.spf.example.com." 1 0 - spf.go:330: dns record "v=spf1 redirect=a.spf.example.com" - spf.go:308: check "a.spf.example.com" 2 0 - spf.go:330: dns record "v=spf1 include:o.spf.example.com. ~all" - spf.go:308: check "o.spf.example.com." 3 0 - spf.go:330: dns record "v=spf1 ip4:192.168.218.40" - spf.go:536: ip match: 192.168.218.40 - spf.go:416: "ip4:192.168.218.40" pass, matched ip - spf.go:401: "include:o.spf.example.com." pass, matched ip - spf.go:434: "redirect=a.spf.example.com": pass, matched ip - spf.go:434: "redirect=%{d}.d.spf.example.com.": pass, matched ip - yml_test.go:260: success: pass, matched ip [trailing-dot-domain] - yml_test.go:251: test macro-mania-in-domain - yml_test.go:253: checkhost 1.2.3.4 test@e1a.example.com - spf.go:308: check "e1a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all" - spf.go:747: masks on "a:macro%%percent%_%_space%-url-space.example.com", "e1a.example.com": "macro%%percent%_%_space%-url-space.example.com" [, ] - spf.go:1020: macro expanded "macro%%percent%_%_space%-url-space.example.com" to "macro%percent space%20url-space.example.com" - spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] - spf.go:406: "a:macro%%percent%_%_space%-url-space.example.com" pass, matched a - yml_test.go:260: success: pass, matched a [macro-mania-in-domain] - yml_test.go:251: test undef-macro - yml_test.go:253: checkhost cafe:babe::c0a8:da28 test@e5.example.com - spf.go:308: check "e5.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:%{a}.example.com -all" - spf.go:747: masks on "a:%{a}.example.com", "e5.example.com": "%{a}.example.com" [, ] - spf.go:923: macro "a": [] - spf.go:406: "a:%{a}.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [undef-macro] yml_test.go:251: test p-macro-ip4-novalid yml_test.go:253: checkhost 192.168.218.40 test@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -3064,49 +3080,30 @@ spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [p-macro-ip6-valid] - yml_test.go:251: test invalid-embedded-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1e.example.com - spf.go:308: check "e1e.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" - spf.go:426: "exists:foo%(ir).sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-embedded-macro-char] - yml_test.go:251: test v-macro-ip6 - yml_test.go:253: checkhost cafe:babe::1 test@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [v-macro-ip6] - yml_test.go:251: test invalid-hello-macro - yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:%{H} -all" - spf.go:747: masks on "a:%{H}", "e9.example.com": "%{H}" [, ] - spf.go:923: macro "H": ["H" "H" "" "" ""] - spf.go:1020: macro expanded "%{H}" to "JUMPIN%27+JUPITER" - spf.go:514: void lookup: nxdomain + yml_test.go:251: test upper-macro + yml_test.go:253: checkhost 192.168.218.42 jack&jill=up@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=msg8.%{D2}" spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [invalid-hello-macro] - yml_test.go:251: test macro-reverse-split-on-dash - yml_test.go:253: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com - spf.go:308: check "e11.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" - spf.go:923: macro "i": ["i" "i" "" "" ""] - spf.go:923: macro "l2r-": ["l2r-" "l" "2" "r" "-"] - spf.go:923: macro "d2": ["d2" "d" "2" "" ""] - spf.go:1020: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" - spf.go:640: exists match: 127.0.0.2 - spf.go:426: "exists:%{i}.%{l2r-}.user.%{d2}" pass, matched exists - yml_test.go:260: success: pass, matched exists [macro-reverse-split-on-dash] - yml_test.go:251: test macro-multiple-delimiters - yml_test.go:253: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com - spf.go:308: check "e12.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" - spf.go:923: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] - spf.go:923: macro "d2": ["d2" "d" "2" "" ""] - spf.go:1020: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" - spf.go:640: exists match: 127.0.0.2 - spf.go:426: "exists:%{l2r+-}.user.%{d2}" pass, matched exists - yml_test.go:260: success: pass, matched exists [macro-multiple-delimiters] + yml_test.go:260: success: fail, matched all [upper-macro] + yml_test.go:251: test trailing-dot-domain + yml_test.go:253: checkhost 192.168.218.40 test@example.com + spf.go:308: check "example.com" 0 0 + spf.go:330: dns record "v=spf1 redirect=%{d}.d.spf.example.com." + spf.go:923: macro "d": ["d" "d" "" "" ""] + spf.go:1020: macro expanded "%{d}.d.spf.example.com." to "example.com.d.spf.example.com." + spf.go:308: check "example.com.d.spf.example.com." 1 0 + spf.go:330: dns record "v=spf1 redirect=a.spf.example.com" + spf.go:308: check "a.spf.example.com" 2 0 + spf.go:330: dns record "v=spf1 include:o.spf.example.com. ~all" + spf.go:308: check "o.spf.example.com." 3 0 + spf.go:330: dns record "v=spf1 ip4:192.168.218.40" + spf.go:536: ip match: 192.168.218.40 + spf.go:416: "ip4:192.168.218.40" pass, matched ip + spf.go:401: "include:o.spf.example.com." pass, matched ip + spf.go:434: "redirect=a.spf.example.com": pass, matched ip + spf.go:434: "redirect=%{d}.d.spf.example.com.": pass, matched ip + yml_test.go:260: success: pass, matched ip [trailing-dot-domain] yml_test.go:251: test trailing-dot-exp yml_test.go:253: checkhost 192.168.218.40 test@exp.example.com spf.go:308: check "exp.example.com" 0 0 @@ -3114,18 +3111,41 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [trailing-dot-exp] + yml_test.go:251: test invalid-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" + spf.go:426: "exists:%(ir).sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-macro-char] yml_test.go:251: test exp-txt-macro-char yml_test.go:253: checkhost 192.168.218.40 test@e3.example.com spf.go:308: check "e3.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=%{ir}.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exp-txt-macro-char] - yml_test.go:251: test invalid-trailing-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1t.example.com - spf.go:308: check "e1t.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:foo%.sbl.example.com ?all" - spf.go:426: "exists:foo%.sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-trailing-macro-char] + yml_test.go:251: test undef-macro + yml_test.go:253: checkhost cafe:babe::c0a8:da28 test@e5.example.com + spf.go:308: check "e5.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:%{a}.example.com -all" + spf.go:747: masks on "a:%{a}.example.com", "e5.example.com": "%{a}.example.com" [, ] + spf.go:923: macro "a": [] + spf.go:406: "a:%{a}.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [undef-macro] + yml_test.go:251: test macro-mania-in-domain + yml_test.go:253: checkhost 1.2.3.4 test@e1a.example.com + spf.go:308: check "e1a.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all" + spf.go:747: masks on "a:macro%%percent%_%_space%-url-space.example.com", "e1a.example.com": "macro%%percent%_%_space%-url-space.example.com" [, ] + spf.go:1020: macro expanded "macro%%percent%_%_space%-url-space.example.com" to "macro%percent space%20url-space.example.com" + spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] + spf.go:406: "a:macro%%percent%_%_space%-url-space.example.com" pass, matched a + yml_test.go:260: success: pass, matched a [macro-mania-in-domain] + yml_test.go:251: test v-macro-ip4 + yml_test.go:253: checkhost 192.168.218.40 test@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [v-macro-ip4] yml_test.go:251: test hello-domain-literal yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com spf.go:308: check "e9.example.com" 0 0 @@ -3151,15 +3171,70 @@ spf.go:397: all: pass spf.go:401: "include:_spfh.%{d2}" fail, matched all yml_test.go:260: success: fail, matched all [require-valid-helo] - yml_test.go:251: test invalid-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" - spf.go:426: "exists:%(ir).sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-macro-char] + yml_test.go:251: test macro-reverse-split-on-dash + yml_test.go:253: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com + spf.go:308: check "e11.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:%{i}.%{l2r-}.user.%{d2}" + spf.go:923: macro "i": ["i" "i" "" "" ""] + spf.go:923: macro "l2r-": ["l2r-" "l" "2" "r" "-"] + spf.go:923: macro "d2": ["d2" "d" "2" "" ""] + spf.go:1020: macro expanded "%{i}.%{l2r-}.user.%{d2}" to "1.2.3.4.gladstone.philip.user.example.com" + spf.go:640: exists match: 127.0.0.2 + spf.go:426: "exists:%{i}.%{l2r-}.user.%{d2}" pass, matched exists + yml_test.go:260: success: pass, matched exists [macro-reverse-split-on-dash] + yml_test.go:251: test invalid-embedded-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1e.example.com + spf.go:308: check "e1e.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" + spf.go:426: "exists:foo%(ir).sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-embedded-macro-char] + yml_test.go:251: test invalid-trailing-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1t.example.com + spf.go:308: check "e1t.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:foo%.sbl.example.com ?all" + spf.go:426: "exists:foo%.sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-trailing-macro-char] + yml_test.go:251: test v-macro-ip6 + yml_test.go:253: checkhost cafe:babe::1 test@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [v-macro-ip6] yml_test.go:162: suite: Processing limits yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] + yml_test.go:169: A: [1.2.3.6] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] + yml_test.go:169: A: [1.2.3.20] + yml_test.go:167: domain inc.example.com + yml_test.go:169: SPF: [v=spf1 a a a a a a a a] + yml_test.go:169: A: [1.2.3.10] + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] + yml_test.go:169: A: [1.2.3.21] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 a -all] + yml_test.go:169: A: [1.2.3.1] + yml_test.go:169: A: [1.2.3.2] + yml_test.go:169: A: [1.2.3.3] + yml_test.go:169: A: [1.2.3.4] + yml_test.go:169: A: [1.2.3.5] + yml_test.go:169: A: [1.2.3.6] + yml_test.go:169: A: [1.2.3.7] + yml_test.go:169: A: [1.2.3.8] + yml_test.go:169: A: [1.2.3.9] + yml_test.go:169: A: [1.2.3.10] + yml_test.go:169: A: [1.2.3.11] + yml_test.go:169: A: [1.2.3.12] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 include:e3.example.com] + yml_test.go:169: A: [1.2.3.7] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 include:e2.example.com] yml_test.go:169: A: [1.2.3.8] @@ -3177,6 +3252,9 @@ yml_test.go:169: MX: {9 mail.example.com} yml_test.go:169: MX: {10 e4.example.com} yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 ptr] + yml_test.go:169: A: [1.2.3.5] yml_test.go:167: domain 5.3.2.1.in-addr.arpa yml_test.go:169: PTR: [e1.example.com.] yml_test.go:169: PTR: [e2.example.com.] @@ -3189,62 +3267,10 @@ yml_test.go:169: PTR: [e9.example.com.] yml_test.go:169: PTR: [e10.example.com.] yml_test.go:169: PTR: [e5.example.com.] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] - yml_test.go:169: A: [1.2.3.21] - yml_test.go:167: domain inc.example.com - yml_test.go:169: SPF: [v=spf1 a a a a a a a a] - yml_test.go:169: A: [1.2.3.10] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 a -all] - yml_test.go:169: A: [1.2.3.1] - yml_test.go:169: A: [1.2.3.2] - yml_test.go:169: A: [1.2.3.3] - yml_test.go:169: A: [1.2.3.4] - yml_test.go:169: A: [1.2.3.5] - yml_test.go:169: A: [1.2.3.6] - yml_test.go:169: A: [1.2.3.7] - yml_test.go:169: A: [1.2.3.8] - yml_test.go:169: A: [1.2.3.9] - yml_test.go:169: A: [1.2.3.10] - yml_test.go:169: A: [1.2.3.11] - yml_test.go:169: A: [1.2.3.12] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] - yml_test.go:169: A: [1.2.3.6] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 include:e3.example.com] - yml_test.go:169: A: [1.2.3.7] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 ptr] - yml_test.go:169: A: [1.2.3.5] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] yml_test.go:169: A: [1.2.3.8] yml_test.go:169: MX: {10 e6.example.com} - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] - yml_test.go:169: A: [1.2.3.20] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] - yml_test.go:169: A: [1.2.3.4] - yml_test.go:251: test ptr-limit - yml_test.go:253: checkhost 1.2.3.5 foo@e5.example.com - spf.go:308: check "e5.example.com" 0 0 - spf.go:330: dns record "v=spf1 ptr" - spf.go:579: ptr names trimmed 11 down to 10 - spf.go:591: ptr forward resolution "e1.example.com." -> [{"1.2.3.6" ""}] - spf.go:591: ptr forward resolution "e2.example.com." -> [{"1.2.3.7" ""}] - spf.go:591: ptr forward resolution "e3.example.com." -> [{"1.2.3.8" ""}] - spf.go:591: ptr forward resolution "e4.example.com." -> [{"1.2.3.5" ""}] - spf.go:591: ptr forward resolution "e6.example.com." -> [{"1.2.3.8" ""}] - spf.go:591: ptr forward resolution "e7.example.com." -> [{"1.2.3.20" ""}] - spf.go:591: ptr forward resolution "e8.example.com." -> [{"1.2.3.4" ""}] - spf.go:591: ptr forward resolution "e9.example.com." -> [{"1.2.3.21" ""}] - spf.go:591: ptr forward resolution "e10.example.com." -> [{"1.2.3.1" ""} {"1.2.3.2" ""} {"1.2.3.3" ""} {"1.2.3.4" ""} {"1.2.3.5" ""} {"1.2.3.6" ""} {"1.2.3.7" ""} {"1.2.3.8" ""} {"1.2.3.9" ""} {"1.2.3.10" ""} {"1.2.3.11" ""} {"1.2.3.12" ""}] - spf.go:600: ptr evaluating "e5.example.com" in ["e1.example.com." "e2.example.com." "e3.example.com." "e4.example.com." "e6.example.com." "e7.example.com." "e8.example.com." "e9.example.com." "e10.example.com."] - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [ptr-limit] yml_test.go:251: test false-a-limit yml_test.go:253: checkhost 1.2.3.12 foo@e10.example.com spf.go:308: check "e10.example.com" 0 0 @@ -3253,35 +3279,21 @@ spf.go:768: a match: 1.2.3.12, 1.2.3.12, [, ] spf.go:406: "a" pass, matched a yml_test.go:260: success: pass, matched a [false-a-limit] - yml_test.go:251: test mech-at-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all" - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + yml_test.go:251: test mech-over-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] spf.go:514: void lookup: nxdomain - spf.go:536: ip match: 1.2.3.4 - spf.go:416: "ip4:1.2.3.4" pass, matched ip - yml_test.go:260: success: pass, matched ip [mech-at-limit] - yml_test.go:251: test include-at-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all" - spf.go:747: masks on "a", "e8.example.com": "e8.example.com" [, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] - spf.go:406: "a" pass, matched a - yml_test.go:260: success: pass, matched a [include-at-limit] + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:378: void lookup limit reached + yml_test.go:260: success: permerror, void lookup limit reached [mech-over-limit] yml_test.go:251: test include-over-limit yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com spf.go:308: check "e9.example.com" 0 0 @@ -3301,13 +3313,45 @@ spf.go:747: masks on "a", "e9.example.com": "e9.example.com" [, ] spf.go:373: lookup limit reached yml_test.go:260: success: permerror, lookup limit reached [include-over-limit] - yml_test.go:251: test mx-limit - yml_test.go:253: checkhost 1.2.3.5 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] - spf.go:411: "mx" permerror, too many MX records - yml_test.go:260: success: permerror, too many MX records [mx-limit] + yml_test.go:251: test redirect-loop + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 1 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 2 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 3 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 4 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 5 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 6 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 7 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 8 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 9 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 10 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:308: check "e1.example.com" 11 0 + spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" + spf.go:373: lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached + yml_test.go:260: success: permerror, lookup limit reached [redirect-loop] yml_test.go:251: test include-loop yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -3347,100 +3391,94 @@ spf.go:401: "include:e2.example.com" permerror, lookup limit reached spf.go:401: "include:e3.example.com" permerror, lookup limit reached yml_test.go:260: success: permerror, lookup limit reached [include-loop] - yml_test.go:251: test mech-over-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + yml_test.go:251: test ptr-limit + yml_test.go:253: checkhost 1.2.3.5 foo@e5.example.com + spf.go:308: check "e5.example.com" 0 0 + spf.go:330: dns record "v=spf1 ptr" + spf.go:579: ptr names trimmed 11 down to 10 + spf.go:591: ptr forward resolution "e1.example.com." -> [{"1.2.3.6" ""}] + spf.go:591: ptr forward resolution "e2.example.com." -> [{"1.2.3.7" ""}] + spf.go:591: ptr forward resolution "e3.example.com." -> [{"1.2.3.8" ""}] + spf.go:591: ptr forward resolution "e4.example.com." -> [{"1.2.3.5" ""}] + spf.go:591: ptr forward resolution "e6.example.com." -> [{"1.2.3.8" ""}] + spf.go:591: ptr forward resolution "e7.example.com." -> [{"1.2.3.20" ""}] + spf.go:591: ptr forward resolution "e8.example.com." -> [{"1.2.3.4" ""}] + spf.go:591: ptr forward resolution "e9.example.com." -> [{"1.2.3.21" ""}] + spf.go:591: ptr forward resolution "e10.example.com." -> [{"1.2.3.1" ""} {"1.2.3.2" ""} {"1.2.3.3" ""} {"1.2.3.4" ""} {"1.2.3.5" ""} {"1.2.3.6" ""} {"1.2.3.7" ""} {"1.2.3.8" ""} {"1.2.3.9" ""} {"1.2.3.10" ""} {"1.2.3.11" ""} {"1.2.3.12" ""}] + spf.go:600: ptr evaluating "e5.example.com" in ["e1.example.com." "e2.example.com." "e3.example.com." "e4.example.com." "e6.example.com." "e7.example.com." "e8.example.com." "e9.example.com." "e10.example.com."] + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [ptr-limit] + yml_test.go:251: test mx-limit + yml_test.go:253: checkhost 1.2.3.5 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] + spf.go:411: "mx" permerror, too many MX records + yml_test.go:260: success: permerror, too many MX records [mx-limit] + yml_test.go:251: test mech-at-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all" + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] spf.go:514: void lookup: nxdomain - spf.go:378: void lookup limit reached - yml_test.go:260: success: permerror, void lookup limit reached [mech-over-limit] - yml_test.go:251: test redirect-loop - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 1 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 2 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 3 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 4 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 5 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 6 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 7 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 8 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 9 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 10 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:308: check "e1.example.com" 11 0 - spf.go:330: dns record "v=spf1 ip4:1.1.1.1 redirect=e1.example.com" - spf.go:373: lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached - yml_test.go:260: success: permerror, lookup limit reached [redirect-loop] ---- PASS: TestRFC4408 (0.05s) + spf.go:536: ip match: 1.2.3.4 + spf.go:416: "ip4:1.2.3.4" pass, matched ip + yml_test.go:260: success: pass, matched ip [mech-at-limit] + yml_test.go:251: test include-at-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all" + spf.go:747: masks on "a", "e8.example.com": "e8.example.com" [, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] + spf.go:406: "a" pass, matched a + yml_test.go:260: success: pass, matched a [include-at-limit] +--- PASS: TestRFC4408 (0.03s) === RUN TestRFC7208 yml_test.go:162: suite: Initial processing + yml_test.go:167: domain hosed.example.com + yml_test.go:169: SPF: [v=spf1 a:garbage.example.net -all] yml_test.go:167: domain hosed2.example.com yml_test.go:169: SPF: [v=spf1 €a:example.net -all] - yml_test.go:167: domain null.example.com - yml_test.go:169: SPF: [v=spf1 ip4: 192.0.2.5 -all] - yml_test.go:169: - yml_test.go:167: domain example.net - yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] - yml_test.go:167: domain a.example.net - yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] + yml_test.go:167: domain nothosed.example.com + yml_test.go:169: SPF: [v=spf1 a:example.net -all] + yml_test.go:169: SPF: [–] yml_test.go:167: domain ctrl.example.com yml_test.go:169: SPF: [v=spf1 a:ctrl.example.com ptr -all] yml_test.go:169: A: [192.0.2.3] - yml_test.go:167: domain trail.example.com - yml_test.go:169: SPF: [v=spf1 a -all ] - yml_test.go:167: domain exp.example.net - yml_test.go:169: TXT: [%{l}] + yml_test.go:167: domain a.example.net + yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] yml_test.go:167: domain a12345678901234567890123456789012345678901234567890123456789012.example.com yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain nothosed.example.com - yml_test.go:169: SPF: [v=spf1 a:example.net -all] - yml_test.go:169: SPF: [–] + yml_test.go:167: domain hosed3.example.com + yml_test.go:169: SPF: [v=spf1 a:example.net –all] yml_test.go:167: domain fine.example.com yml_test.go:169: SPF: [v=spf1 a -all] + yml_test.go:167: domain trail.example.com + yml_test.go:169: SPF: [v=spf1 a -all ] + yml_test.go:167: domain null.example.com + yml_test.go:169: SPF: [v=spf1 ip4: 192.0.2.5 -all] + yml_test.go:169: yml_test.go:167: domain badip.example.com yml_test.go:169: SPF: [v=spf1 ip4:192.0.2.5 include:spf.protection.outlook.com ~all] yml_test.go:167: domain example.com yml_test.go:169: TIMEOUT - yml_test.go:167: domain hosed.example.com - yml_test.go:169: SPF: [v=spf1 a:garbage.example.net -all] - yml_test.go:167: domain hosed3.example.com - yml_test.go:169: SPF: [v=spf1 a:example.net –all] - yml_test.go:251: test helo-not-fqdn - yml_test.go:253: checkhost 1.2.3.5 - spf.go:308: check "A2345678" 0 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [helo-not-fqdn] + yml_test.go:167: domain example.net + yml_test.go:169: SPF: [v=spf1 -all exp=exp.example.net] + yml_test.go:167: domain exp.example.net + yml_test.go:169: TXT: [%{l}] yml_test.go:251: test non-ascii-result yml_test.go:253: checkhost 1.2.3.4 foobar@hosed3.example.com spf.go:308: check "hosed3.example.com" 0 0 @@ -3449,19 +3487,24 @@ spf.go:514: void lookup: nxdomain spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [non-ascii-result] - yml_test.go:251: test null-text - yml_test.go:253: checkhost 192.0.2.5 silly@null.example.com - spf.go:308: check "null.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:192.0.2.5 -all" - spf.go:536: ip match: 192.0.2.5 - spf.go:416: "ip4:192.0.2.5" pass, matched ip - yml_test.go:260: success: pass, matched ip [null-text] - yml_test.go:251: test longlabel - yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com - spf.go:308: check "A12345678901234567890123456789012345678901234567890123456789012.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all" + yml_test.go:251: test two-spaces + yml_test.go:253: checkhost 1.2.3.4 actually@fine.example.com + spf.go:308: check "fine.example.com" 0 0 + spf.go:330: dns record "v=spf1 a -all" + spf.go:747: masks on "a", "fine.example.com": "fine.example.com" [, ] + spf.go:514: void lookup: nxdomain spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [longlabel] + yml_test.go:260: success: fail, matched all [two-spaces] + yml_test.go:251: test emptylabel + yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A...example.com + spf.go:308: check "A...example.com" 0 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + yml_test.go:260: success: none, no DNS record found [emptylabel] + yml_test.go:251: test helo-not-fqdn + yml_test.go:253: checkhost 1.2.3.5 + spf.go:308: check "A2345678" 0 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + yml_test.go:260: success: none, no DNS record found [helo-not-fqdn] yml_test.go:251: test nolocalpart yml_test.go:253: checkhost 1.2.3.4 @example.net spf.go:308: check "example.net" 0 0 @@ -3473,35 +3516,13 @@ spf.go:308: check "[1.2.3.5]" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) yml_test.go:260: success: none, no DNS record found [domain-literal] - yml_test.go:251: test badip4 - yml_test.go:253: checkhost 192.0.2.5 oops@badip.example.com - spf.go:308: check "badip.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:192.0.2.5\n include:spf.protection.outlook.com ~all" - spf.go:416: "ip4:192.0.2.5\n" permerror, invalid ipX value - yml_test.go:260: success: permerror, invalid ipX value [badip4] - yml_test.go:251: test emptylabel - yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A...example.com - spf.go:308: check "A...example.com" 0 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [emptylabel] - yml_test.go:251: test helo-domain-literal - yml_test.go:253: checkhost 1.2.3.5 - spf.go:308: check "[1.2.3.5]" 0 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [helo-domain-literal] - yml_test.go:251: test two-spaces - yml_test.go:253: checkhost 1.2.3.4 actually@fine.example.com - spf.go:308: check "fine.example.com" 0 0 - spf.go:330: dns record "v=spf1 a -all" - spf.go:747: masks on "a", "fine.example.com": "fine.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [two-spaces] - yml_test.go:251: test toolonglabel - yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com - spf.go:308: check "A123456789012345678901234567890123456789012345678901234567890123.example.com" 0 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - yml_test.go:260: success: none, no DNS record found [toolonglabel] + yml_test.go:251: test null-text + yml_test.go:253: checkhost 192.0.2.5 silly@null.example.com + spf.go:308: check "null.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:192.0.2.5 -all" + spf.go:536: ip match: 192.0.2.5 + spf.go:416: "ip4:192.0.2.5" pass, matched ip + yml_test.go:260: success: pass, matched ip [null-text] yml_test.go:251: test non-ascii-non-spf yml_test.go:253: checkhost 1.2.3.4 foobar@nothosed.example.com spf.go:308: check "nothosed.example.com" 0 0 @@ -3518,7 +3539,34 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [trailing-space] + yml_test.go:251: test badip4 + yml_test.go:253: checkhost 192.0.2.5 oops@badip.example.com + spf.go:308: check "badip.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:192.0.2.5\n include:spf.protection.outlook.com ~all" + spf.go:416: "ip4:192.0.2.5\n" permerror, invalid ipX value + yml_test.go:260: success: permerror, invalid ipX value [badip4] + yml_test.go:251: test toolonglabel + yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A123456789012345678901234567890123456789012345678901234567890123.example.com + spf.go:308: check "A123456789012345678901234567890123456789012345678901234567890123.example.com" 0 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + yml_test.go:260: success: none, no DNS record found [toolonglabel] + yml_test.go:251: test longlabel + yml_test.go:253: checkhost 1.2.3.5 lyme.eater@A12345678901234567890123456789012345678901234567890123456789012.example.com + spf.go:308: check "A12345678901234567890123456789012345678901234567890123456789012.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [longlabel] + yml_test.go:251: test helo-domain-literal + yml_test.go:253: checkhost 1.2.3.5 + spf.go:308: check "[1.2.3.5]" 0 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + yml_test.go:260: success: none, no DNS record found [helo-domain-literal] yml_test.go:162: suite: Record lookup + yml_test.go:167: domain both.example.net + yml_test.go:169: TXT: [v=spf1 -all] + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain txtonly.example.net + yml_test.go:169: TXT: [v=spf1 -all] yml_test.go:167: domain spfonly.example.net yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:169: TXT: [NONE] @@ -3535,11 +3583,6 @@ yml_test.go:169: TIMEOUT yml_test.go:167: domain alltimeout.example.net yml_test.go:169: TIMEOUT - yml_test.go:167: domain both.example.net - yml_test.go:169: TXT: [v=spf1 -all] - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain txtonly.example.net - yml_test.go:169: TXT: [v=spf1 -all] yml_test.go:251: test spfonly yml_test.go:253: checkhost 1.2.3.4 foo@spfonly.example.net spf.go:308: check "spfonly.example.net" 0 0 @@ -3573,22 +3616,6 @@ spf.go:397: all: fail yml_test.go:260: success: fail, matched all [txtonly] yml_test.go:162: suite: Selecting records - yml_test.go:167: domain example9.com - yml_test.go:169: SPF: [v=SpF1 ~all] - yml_test.go:167: domain example1.com - yml_test.go:169: SPF: [v=spf1] - yml_test.go:167: domain mail.example1.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain example7.com - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain example5.com - yml_test.go:169: SPF: [v=spf1 +all] - yml_test.go:169: TXT: [v=spf1 -all] - yml_test.go:169: TXT: [v=spf1 +all] - yml_test.go:167: domain example6.com - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:169: SPF: [V=sPf1 +all] yml_test.go:167: domain example8.com yml_test.go:169: SPF: [V=spf1 -all] yml_test.go:169: SPF: [v=spf1 -all] @@ -3597,17 +3624,55 @@ yml_test.go:169: SPF: [v=spf10] yml_test.go:169: SPF: [v=spf1 mx] yml_test.go:169: MX: {0 mail.example1.com} + yml_test.go:167: domain example1.com + yml_test.go:169: SPF: [v=spf1] yml_test.go:167: domain example2.com yml_test.go:169: SPF: [v=spf1 mx] + yml_test.go:167: domain mail.example1.com + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain example4.com yml_test.go:169: SPF: [v=spf1 +all] yml_test.go:169: TXT: [v=spf1 -all] + yml_test.go:167: domain example5.com + yml_test.go:169: SPF: [v=spf1 +all] + yml_test.go:169: TXT: [v=spf1 -all] + yml_test.go:169: TXT: [v=spf1 +all] + yml_test.go:167: domain example6.com + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:169: SPF: [V=sPf1 +all] + yml_test.go:167: domain example7.com + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:167: domain example9.com + yml_test.go:169: SPF: [v=SpF1 ~all] + yml_test.go:251: test nospace1 + yml_test.go:253: checkhost 1.2.3.4 foo@example2.com + spf.go:308: check "example2.com" 0 0 + spf.go:330: dns record "" + yml_test.go:260: success: none, no DNS record found [nospace1] + yml_test.go:251: test spfoverride + yml_test.go:253: checkhost 1.2.3.4 foo@example4.com + spf.go:308: check "example4.com" 0 0 + spf.go:330: dns record "v=spf1 -all" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [spfoverride] + yml_test.go:251: test multitxt2 + yml_test.go:253: checkhost 1.2.3.4 foo@example6.com + spf.go:308: check "example6.com" 0 0 + spf.go:322: multiple dns records + yml_test.go:260: success: permerror, multiple matching DNS records [multitxt2] yml_test.go:251: test multispf2 yml_test.go:253: checkhost 1.2.3.4 foo@example8.com spf.go:308: check "example8.com" 0 0 spf.go:330: dns record "v=spf1 +all" spf.go:397: all: pass yml_test.go:260: success: pass, matched all [multispf2] + yml_test.go:251: test case-insensitive + yml_test.go:253: checkhost 1.2.3.4 foo@example9.com + spf.go:308: check "example9.com" 0 0 + spf.go:330: dns record "v=SpF1 ~all" + spf.go:397: all: softfail + yml_test.go:260: success: softfail, matched all [case-insensitive] yml_test.go:251: test empty yml_test.go:253: checkhost 1.2.3.4 foo@example1.com spf.go:308: check "example1.com" 0 0 @@ -3623,52 +3688,32 @@ spf.go:831: mx match: 1.2.3.4, 1.2.3.4, [, ] spf.go:411: "mx" pass, matched mx yml_test.go:260: success: pass, matched mx [nospace2] + yml_test.go:251: test multitxt1 + yml_test.go:253: checkhost 1.2.3.4 foo@example5.com + spf.go:308: check "example5.com" 0 0 + spf.go:322: multiple dns records + yml_test.go:260: success: permerror, multiple matching DNS records [multitxt1] yml_test.go:251: test multispf1 yml_test.go:253: checkhost 1.2.3.4 foo@example7.com spf.go:308: check "example7.com" 0 0 spf.go:322: multiple dns records yml_test.go:260: success: permerror, multiple matching DNS records [multispf1] - yml_test.go:251: test multitxt2 - yml_test.go:253: checkhost 1.2.3.4 foo@example6.com - spf.go:308: check "example6.com" 0 0 - spf.go:322: multiple dns records - yml_test.go:260: success: permerror, multiple matching DNS records [multitxt2] yml_test.go:251: test nospf yml_test.go:253: checkhost 1.2.3.4 foo@mail.example1.com spf.go:308: check "mail.example1.com" 0 0 spf.go:314: dns domain not found: lookup : domain not found (for testing) yml_test.go:260: success: none, no DNS record found [nospf] - yml_test.go:251: test case-insensitive - yml_test.go:253: checkhost 1.2.3.4 foo@example9.com - spf.go:308: check "example9.com" 0 0 - spf.go:330: dns record "v=SpF1 ~all" - spf.go:397: all: softfail - yml_test.go:260: success: softfail, matched all [case-insensitive] - yml_test.go:251: test nospace1 - yml_test.go:253: checkhost 1.2.3.4 foo@example2.com - spf.go:308: check "example2.com" 0 0 - spf.go:330: dns record "" - yml_test.go:260: success: none, no DNS record found [nospace1] - yml_test.go:251: test spfoverride - yml_test.go:253: checkhost 1.2.3.4 foo@example4.com - spf.go:308: check "example4.com" 0 0 - spf.go:330: dns record "v=spf1 -all" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [spfoverride] - yml_test.go:251: test multitxt1 - yml_test.go:253: checkhost 1.2.3.4 foo@example5.com - spf.go:308: check "example5.com" 0 0 - spf.go:322: multiple dns records - yml_test.go:260: success: permerror, multiple matching DNS records [multitxt1] yml_test.go:162: suite: Record evaluation - yml_test.go:167: domain t3.example.com - yml_test.go:169: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] - yml_test.go:167: domain t4.example.com - yml_test.go:169: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:167: domain t11.example.com + yml_test.go:169: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] + yml_test.go:167: domain t1.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 -all moo] + yml_test.go:167: domain t5.example.com + yml_test.go:169: SPF: [v=spf1 redirect=t5.example.com ~all] yml_test.go:167: domain t6.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect=t2.example.com] - yml_test.go:167: domain t7.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4] + yml_test.go:167: domain t8.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect:t2.example.com] yml_test.go:167: domain t9.example.com yml_test.go:169: SPF: [v=spf1 a:foo-bar -all] yml_test.go:167: domain t10.example.com @@ -3677,36 +3722,32 @@ yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain t2.example.com yml_test.go:169: SPF: [v=spf1 moo.cow-far_out=man:dog/cat ip4:1.2.3.4 -all] - yml_test.go:167: domain t8.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 redirect:t2.example.com] - yml_test.go:167: domain t11.example.com - yml_test.go:169: SPF: [v=spf1 a:a123456789012345678901234567890123456789012345678901234567890123.example.com -all] + yml_test.go:167: domain t3.example.com + yml_test.go:169: SPF: [v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:167: domain t4.example.com + yml_test.go:169: SPF: [v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all] + yml_test.go:167: domain t7.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4] yml_test.go:167: domain t12.example.com yml_test.go:169: SPF: [v=spf1 a:%{H}.bar -all] - yml_test.go:167: domain t1.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4 -all moo] - yml_test.go:167: domain t5.example.com - yml_test.go:169: SPF: [v=spf1 redirect=t5.example.com ~all] yml_test.go:251: test modifier-charset-bad1 yml_test.go:253: checkhost 1.2.3.4 foo@t3.example.com spf.go:308: check "t3.example.com" 0 0 spf.go:330: dns record "v=spf1 moo.cow/far_out=man:dog/cat ip4:1.2.3.4 -all" spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [modifier-charset-bad1] - yml_test.go:251: test default-result - yml_test.go:253: checkhost 1.2.3.5 foo@t7.example.com - spf.go:308: check "t7.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4" - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [default-result] - yml_test.go:251: test invalid-domain-empty-label - yml_test.go:253: checkhost 1.2.3.4 foo@t10.example.com - spf.go:308: check "t10.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:mail.example...com -all" - spf.go:747: masks on "a:mail.example...com", "t10.example.com": "mail.example...com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [invalid-domain-empty-label] + yml_test.go:251: test modifier-charset-bad2 + yml_test.go:253: checkhost 1.2.3.4 foo@t4.example.com + spf.go:308: check "t4.example.com" 0 0 + spf.go:330: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [modifier-charset-bad2] + yml_test.go:251: test redirect-after-mechanisms1 + yml_test.go:253: checkhost 1.2.3.4 foo@t5.example.com + spf.go:308: check "t5.example.com" 0 0 + spf.go:330: dns record "v=spf1 redirect=t5.example.com ~all" + spf.go:397: all: softfail + yml_test.go:260: success: softfail, matched all [redirect-after-mechanisms1] yml_test.go:251: test invalid-domain-long yml_test.go:253: checkhost 1.2.3.4 foo@t11.example.com spf.go:308: check "t11.example.com" 0 0 @@ -3725,23 +3766,21 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [invalid-domain-long-via-macro] - yml_test.go:251: test modifier-charset-bad2 - yml_test.go:253: checkhost 1.2.3.4 foo@t4.example.com - spf.go:308: check "t4.example.com" 0 0 - spf.go:330: dns record "v=spf1 moo.cow:far_out=man:dog/cat ip4:1.2.3.4 -all" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [modifier-charset-bad2] - yml_test.go:251: test redirect-after-mechanisms1 - yml_test.go:253: checkhost 1.2.3.4 foo@t5.example.com - spf.go:308: check "t5.example.com" 0 0 - spf.go:330: dns record "v=spf1 redirect=t5.example.com ~all" - spf.go:397: all: softfail - yml_test.go:260: success: softfail, matched all [redirect-after-mechanisms1] + yml_test.go:251: test default-result + yml_test.go:253: checkhost 1.2.3.5 foo@t7.example.com + spf.go:308: check "t7.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4" + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [default-result] + yml_test.go:251: test invalid-domain-empty-label + yml_test.go:253: checkhost 1.2.3.4 foo@t10.example.com + spf.go:308: check "t10.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:mail.example...com -all" + spf.go:747: masks on "a:mail.example...com", "t10.example.com": "mail.example...com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [invalid-domain-empty-label] yml_test.go:162: suite: ALL mechanism syntax - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 ?all] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 all -all] yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e1.example.com @@ -3750,6 +3789,22 @@ yml_test.go:169: SPF: [v=spf1 -all:foobar] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 -all/8] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 ?all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 all -all] + yml_test.go:251: test all-dot + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all." + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [all-dot] + yml_test.go:251: test all-arg + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all:foobar" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [all-arg] yml_test.go:251: test all-cidr yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com spf.go:308: check "e3.example.com" 0 0 @@ -3768,52 +3823,47 @@ spf.go:330: dns record "v=spf1 all -all" spf.go:397: all: pass yml_test.go:260: success: pass, matched all [all-double] - yml_test.go:251: test all-dot - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all." - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [all-dot] - yml_test.go:251: test all-arg - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all:foobar" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [all-arg] yml_test.go:162: suite: PTR mechanism syntax + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 ptr -all] + yml_test.go:169: A: [1.2.3.4] + yml_test.go:169: AAAA: [CAFE:BABE::1] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 ptr/0 -all] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 ptr:example.com -all] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 ptr -all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 ptr:] + yml_test.go:167: domain 4.2.0.192.in-addr.arpa + yml_test.go:169: PTR: [loop4.example.com.] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:169: AAAA: [2001:db8::1] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 ptr:example.Com -all] yml_test.go:167: domain loop.example.com yml_test.go:169: SPF: [v=spf1 ptr] - yml_test.go:167: domain 4.2.0.192.in-addr.arpa - yml_test.go:169: PTR: [loop4.example.com.] - yml_test.go:167: domain loop4.example.com - yml_test.go:169: CNAME: CNAME.example.com. yml_test.go:167: domain cname.example.com yml_test.go:169: CNAMELOOP - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:169: AAAA: [2001:db8::1] yml_test.go:167: domain 4.3.2.1.in-addr.arpa yml_test.go:169: PTR: [e3.example.com] yml_test.go:169: PTR: [e4.example.com] yml_test.go:169: PTR: [mail.example.com] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 ptr:] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 ptr:example.com -all] - yml_test.go:167: 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:169: PTR: [mail.Example.com] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 ptr -all] - yml_test.go:169: A: [1.2.3.4] - yml_test.go:169: AAAA: [CAFE:BABE::1] yml_test.go:167: 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:169: PTR: [e3.example.com] + yml_test.go:167: 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:169: PTR: [mail.Example.com] + yml_test.go:167: domain loop4.example.com + yml_test.go:169: CNAME: CNAME.example.com. + yml_test.go:251: test ptr-cname-loop + yml_test.go:253: checkhost 192.0.2.4 postmaster@loop.example.com + spf.go:308: check "loop.example.com" 0 0 + spf.go:330: dns record "v=spf1 ptr" + spf.go:600: ptr evaluating "loop.example.com" in [] + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [ptr-cname-loop] yml_test.go:251: test ptr-cidr yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com spf.go:308: check "e1.example.com" 0 0 @@ -3873,126 +3923,91 @@ spf.go:604: ptr match: "mail.example.com." spf.go:421: "ptr:example.Com" pass, matched ptr yml_test.go:260: success: pass, matched ptr [ptr-case-change] - yml_test.go:251: test ptr-cname-loop - yml_test.go:253: checkhost 192.0.2.4 postmaster@loop.example.com - spf.go:308: check "loop.example.com" 0 0 - spf.go:330: dns record "v=spf1 ptr" - spf.go:600: ptr evaluating "loop.example.com" in [] - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [ptr-cname-loop] yml_test.go:162: suite: A mechanism syntax - yml_test.go:167: domain e8a.example.com - yml_test.go:169: A: [1.2.3.5] - yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:169: SPF: [v=spf1 a/24 -all] - yml_test.go:167: domain foo.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 a//33 -all] yml_test.go:167: domain e12.example.com yml_test.go:169: SPF: [v=spf1 a:example.-com] - yml_test.go:167: domain e2.example.com + yml_test.go:167: domain ipv6.example.com + yml_test.go:169: AAAA: [1234::1] yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: AAAA: [1234::2] - yml_test.go:169: SPF: [v=spf1 a/0 -all] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 a//129 -all] - yml_test.go:167: domain e8b.example.com - yml_test.go:169: A: [1.2.3.5] - yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:169: SPF: [v=spf1 a//64 -all] - yml_test.go:167: domain foo.example.xn--zckzah - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:169: SPF: [v=spf1 a -all] + yml_test.go:167: domain e5a.example.com + yml_test.go:169: SPF: [v=spf1 a:museum] yml_test.go:167: domain e2a.example.com yml_test.go:169: AAAA: [1234::1] yml_test.go:169: SPF: [v=spf1 a//0 -all] - yml_test.go:167: domain e6a.example.com - yml_test.go:169: SPF: [v=spf1 a/33 -all] - yml_test.go:167: domain e8.example.com - yml_test.go:169: A: [1.2.3.5] - yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] - yml_test.go:169: SPF: [v=spf1 a/24//64 -all] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 a:foo.example.com] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e2b.example.com yml_test.go:169: A: [1.1.1.1] yml_test.go:169: SPF: [v=spf1 a//0 -all] + yml_test.go:167: domain e8a.example.com + yml_test.go:169: A: [1.2.3.5] + yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:169: SPF: [v=spf1 a/24 -all] + yml_test.go:167: domain e8b.example.com + yml_test.go:169: A: [1.2.3.5] + yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:169: SPF: [v=spf1 a//64 -all] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 a/0 -all] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 a:abc.123] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 a//33 -all] yml_test.go:167: domain e8e.example.com yml_test.go:169: A: [1.2.3.5] yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] yml_test.go:169: SPF: [v=spf1 a/24/64 -all] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 a:example.com:8080] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 a:foo:bar/baz.example.com] + yml_test.go:167: domain foo.example.xn--zckzah + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 a:foo.example.com/24] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 a:111.222.33.44] + yml_test.go:167: domain e8.example.com + yml_test.go:169: A: [1.2.3.5] + yml_test.go:169: AAAA: [2001:db8:1234::dead:beef] + yml_test.go:169: SPF: [v=spf1 a/24//64 -all] + yml_test.go:167: domain foo.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: A: [1.2.3.5] + yml_test.go:167: domain foo:bar/baz.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e2.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: AAAA: [1234::2] + yml_test.go:169: SPF: [v=spf1 a/0 -all] yml_test.go:167: domain e5b.example.com yml_test.go:169: SPF: [v=spf1 a:museum.] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 a:foo.example.com/24] + yml_test.go:167: domain e6a.example.com + yml_test.go:169: SPF: [v=spf1 a/33 -all] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 a//129 -all] yml_test.go:167: domain e13.example.com yml_test.go:169: SPF: [v=spf1 a:] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 a/0 -all] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 a:foo.example.com] - yml_test.go:167: domain e5a.example.com - yml_test.go:169: SPF: [v=spf1 a:museum] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 a:foo:bar/baz.example.com] - yml_test.go:167: domain foo:bar/baz.example.com - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e14.example.com yml_test.go:169: SPF: [v=spf1 a:foo.example.xn--zckzah -all] - yml_test.go:167: domain ipv6.example.com - yml_test.go:169: AAAA: [1234::1] - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: SPF: [v=spf1 a -all] - yml_test.go:251: test a-bad-cidr4 - yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:308: check "e6a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/33 -all" - spf.go:747: masks on "a/33", "e6a.example.com": "" [, ] - spf.go:406: "a/33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [a-bad-cidr4] - yml_test.go:251: test a-dual-cidr-ip4-default - yml_test.go:253: checkhost 1.2.3.4 foo@e8b.example.com - spf.go:308: check "e8b.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//64 -all" - spf.go:747: masks on "a//64", "e8b.example.com": "e8b.example.com" [, /64] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-dual-cidr-ip4-default] - yml_test.go:251: test a-bad-cidr6 - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//129 -all" - spf.go:747: masks on "a//129", "e7.example.com": "" [, ] - spf.go:406: "a//129" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [a-bad-cidr6] - yml_test.go:251: test a-dual-cidr-ip4-err - yml_test.go:253: checkhost 1.2.3.4 foo@e8e.example.com - spf.go:308: check "e8e.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/24/64 -all" - spf.go:747: masks on "a/24/64", "e8e.example.com": "" [, ] - spf.go:406: "a/24/64" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [a-dual-cidr-ip4-err] - yml_test.go:251: test a-multi-ip2 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:foo.example.com/24" - spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:406: "a:foo.example.com/24" pass, matched a - yml_test.go:260: success: pass, matched a [a-multi-ip2] - yml_test.go:251: test a-cidr6-0-ip4mapped + yml_test.go:251: test a-cidr6-0-ip4 yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com spf.go:308: check "e2a.example.com" 0 0 spf.go:330: dns record "v=spf1 a//0 -all" spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4mapped] + yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4] + yml_test.go:251: test a-ip6-dualstack + yml_test.go:253: checkhost 1234::1 foo@ipv6.example.com + spf.go:308: check "ipv6.example.com" 0 0 + spf.go:330: dns record "v=spf1 a -all" + spf.go:747: masks on "a", "ipv6.example.com": "ipv6.example.com" [, ] + spf.go:768: a match: 1234::1, 1234::1, [, ] + spf.go:406: "a" pass, matched a + yml_test.go:260: success: pass, matched a [a-ip6-dualstack] yml_test.go:251: test a-cidr6 yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -4001,30 +4016,13 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-cidr6] - yml_test.go:251: test a-nxdomain - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/0 -all" - spf.go:747: masks on "a/0", "e1.example.com": "e1.example.com" [/0, ] - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-nxdomain] - yml_test.go:251: test a-cidr6-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//0 -all" - spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:768: a match: 1234::1, 1234::1, [, /0] - spf.go:406: "a//0" pass, matched a - yml_test.go:260: success: pass, matched a [a-cidr6-0-ip6] - yml_test.go:251: test a-multi-ip1 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:foo.example.com/24" - spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:406: "a:foo.example.com/24" pass, matched a - yml_test.go:260: success: pass, matched a [a-multi-ip1] + yml_test.go:251: test a-bad-cidr6 + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//129 -all" + spf.go:747: masks on "a//129", "e7.example.com": "" [, ] + spf.go:406: "a//129" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [a-bad-cidr6] yml_test.go:251: test a-cidr4-0 yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -4033,21 +4031,20 @@ spf.go:768: a match: 1.2.3.4, 1.1.1.1, [/0, ] spf.go:406: "a/0" pass, matched a yml_test.go:260: success: pass, matched a [a-cidr4-0] - yml_test.go:251: test a-cidr6-0-ip4 - yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 a//0 -all" - spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] + yml_test.go:251: test a-cidr4-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/0 -all" + spf.go:747: masks on "a/0", "e2.example.com": "e2.example.com" [/0, ] spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4] - yml_test.go:251: test a-ip6-dualstack - yml_test.go:253: checkhost 1234::1 foo@ipv6.example.com - spf.go:308: check "ipv6.example.com" 0 0 - spf.go:330: dns record "v=spf1 a -all" - spf.go:747: masks on "a", "ipv6.example.com": "ipv6.example.com" [, ] - spf.go:768: a match: 1234::1, 1234::1, [, ] - spf.go:406: "a" pass, matched a - yml_test.go:260: success: pass, matched a [a-ip6-dualstack] + yml_test.go:260: success: fail, matched all [a-cidr4-0-ip6] + yml_test.go:251: test a-dual-cidr-ip4-default + yml_test.go:253: checkhost 1.2.3.4 foo@e8b.example.com + spf.go:308: check "e8b.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//64 -all" + spf.go:747: masks on "a//64", "e8b.example.com": "e8b.example.com" [, /64] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [a-dual-cidr-ip4-default] yml_test.go:251: test a-dual-cidr-ip6-default yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8a.example.com spf.go:308: check "e8a.example.com" 0 0 @@ -4055,13 +4052,52 @@ spf.go:747: masks on "a/24", "e8a.example.com": "e8a.example.com" [/24, ] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-dual-cidr-ip6-default] - yml_test.go:251: test a-cidr4-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/0 -all" - spf.go:747: masks on "a/0", "e2.example.com": "e2.example.com" [/0, ] + yml_test.go:251: test a-dual-cidr-ip6-match + yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/24//64 -all" + spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] + spf.go:768: a match: 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, [/24, /64] + spf.go:406: "a/24//64" pass, matched a + yml_test.go:260: success: pass, matched a [a-dual-cidr-ip6-match] + yml_test.go:251: test a-cidr6-0-ip4mapped + yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//0 -all" + spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [a-cidr4-0-ip6] + yml_test.go:260: success: fail, matched all [a-cidr6-0-ip4mapped] + yml_test.go:251: test a-cidr6-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 a//0 -all" + spf.go:747: masks on "a//0", "e2a.example.com": "e2a.example.com" [, /0] + spf.go:768: a match: 1234::1, 1234::1, [, /0] + spf.go:406: "a//0" pass, matched a + yml_test.go:260: success: pass, matched a [a-cidr6-0-ip6] + yml_test.go:251: test a-dual-cidr-ip4-match + yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/24//64 -all" + spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] + spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, /64] + spf.go:406: "a/24//64" pass, matched a + yml_test.go:260: success: pass, matched a [a-dual-cidr-ip4-match] + yml_test.go:251: test a-dual-cidr-ip4-err + yml_test.go:253: checkhost 1.2.3.4 foo@e8e.example.com + spf.go:308: check "e8e.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/24/64 -all" + spf.go:747: masks on "a/24/64", "e8e.example.com": "" [, ] + spf.go:406: "a/24/64" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [a-dual-cidr-ip4-err] + yml_test.go:251: test a-multi-ip2 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:foo.example.com/24" + spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:406: "a:foo.example.com/24" pass, matched a + yml_test.go:260: success: pass, matched a [a-multi-ip2] yml_test.go:251: test a-cidr6-0-nxdomain yml_test.go:253: checkhost 1234::1 foo@e2b.example.com spf.go:308: check "e2b.example.com" 0 0 @@ -4069,6 +4105,29 @@ spf.go:747: masks on "a//0", "e2b.example.com": "e2b.example.com" [, /0] spf.go:397: all: fail yml_test.go:260: success: fail, matched all [a-cidr6-0-nxdomain] + yml_test.go:251: test a-bad-cidr4 + yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:308: check "e6a.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/33 -all" + spf.go:747: masks on "a/33", "e6a.example.com": "" [, ] + spf.go:406: "a/33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [a-bad-cidr4] + yml_test.go:251: test a-multi-ip1 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:foo.example.com/24" + spf.go:747: masks on "a:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:406: "a:foo.example.com/24" pass, matched a + yml_test.go:260: success: pass, matched a [a-multi-ip1] + yml_test.go:251: test a-nxdomain + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 a/0 -all" + spf.go:747: masks on "a/0", "e1.example.com": "e1.example.com" [/0, ] + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [a-nxdomain] yml_test.go:251: test a-dash-in-toplabel yml_test.go:253: checkhost 1.2.3.4 foo@e14.example.com spf.go:308: check "e14.example.com" 0 0 @@ -4077,53 +4136,37 @@ spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] spf.go:406: "a:foo.example.xn--zckzah" pass, matched a yml_test.go:260: success: pass, matched a [a-dash-in-toplabel] - yml_test.go:251: test a-dual-cidr-ip4-match - yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/24//64 -all" - spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] - spf.go:768: a match: 1.2.3.4, 1.2.3.5, [/24, /64] - spf.go:406: "a/24//64" pass, matched a - yml_test.go:260: success: pass, matched a [a-dual-cidr-ip4-match] - yml_test.go:251: test a-dual-cidr-ip6-match - yml_test.go:253: checkhost 2001:db8:1234::cafe:babe foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a/24//64 -all" - spf.go:747: masks on "a/24//64", "e8.example.com": "e8.example.com" [/24, /64] - spf.go:768: a match: 2001:db8:1234::cafe:babe, 2001:db8:1234::dead:beef, [/24, /64] - spf.go:406: "a/24//64" pass, matched a - yml_test.go:260: success: pass, matched a [a-dual-cidr-ip6-match] yml_test.go:162: suite: Include mechanism semantics and syntax - yml_test.go:167: domain erehwon.example.com - yml_test.go:169: TXT: [v=spfl am not an SPF record] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 include:e6.example.com -all] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain ip7.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.7 ?all] yml_test.go:167: domain e8.example.com yml_test.go:169: SPF: [v=spf1 include: -all] yml_test.go:167: domain ip8.example.com yml_test.go:169: TIMEOUT - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 include:ip7.example.com -all] yml_test.go:167: domain e2.example.com yml_test.go:169: SPF: [v=spf1 include:ip6.example.com all] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 include +all] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 include:erehwon.example.com -all] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 include:ip7.example.com -all] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 include:ip8.example.com -all] yml_test.go:167: domain ip5.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.5 -all] yml_test.go:167: domain ip6.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.6 ~all] - yml_test.go:167: domain ip7.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.7 ?all] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 include:ip5.example.com ~all] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 include:e6.example.com -all] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 include +all] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 include:ip5.example.com/24 -all] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain erehwon.example.com + yml_test.go:169: TXT: [v=spfl am not an SPF record] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 include:erehwon.example.com -all] yml_test.go:251: test include-neutral yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com spf.go:308: check "e3.example.com" 0 0 @@ -4133,15 +4176,22 @@ spf.go:397: all: neutral spf.go:397: all: fail yml_test.go:260: success: fail, matched all [include-neutral] - yml_test.go:251: test include-permerror - yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com - spf.go:308: check "e5.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:e6.example.com -all" - spf.go:308: check "e6.example.com" 1 0 - spf.go:330: dns record "v=spf1 include +all" - spf.go:437: unknown field, permerror - spf.go:401: "include:e6.example.com" permerror, unknown field - yml_test.go:260: success: permerror, unknown field [include-permerror] + yml_test.go:251: test include-temperror + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip8.example.com -all" + spf.go:308: check "ip8.example.com" 1 0 + spf.go:318: dns temp error: lookup : test timeout error + spf.go:401: "include:ip8.example.com" temperror, lookup : test timeout error + yml_test.go:260: success: temperror, lookup : test timeout error [include-temperror] + yml_test.go:251: test include-none + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:erehwon.example.com -all" + spf.go:308: check "erehwon.example.com" 1 0 + spf.go:330: dns record "" + spf.go:401: "include:erehwon.example.com" permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [include-none] yml_test.go:251: test include-empty-domain yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com spf.go:308: check "e8.example.com" 0 0 @@ -4150,6 +4200,13 @@ spf.go:314: dns domain not found: lookup : domain not found (for testing) spf.go:401: "include:" permerror, no DNS record found yml_test.go:260: success: permerror, no DNS record found [include-empty-domain] + yml_test.go:251: test include-cidr + yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:ip5.example.com/24 -all" + spf.go:874: macro contains / + spf.go:401: "include:ip5.example.com/24" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [include-cidr] yml_test.go:251: test include-fail yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com spf.go:308: check "e1.example.com" 0 0 @@ -4168,29 +4225,15 @@ spf.go:397: all: softfail spf.go:397: all: pass yml_test.go:260: success: pass, matched all [include-softfail] - yml_test.go:251: test include-cidr - yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip5.example.com/24 -all" - spf.go:874: macro contains / - spf.go:401: "include:ip5.example.com/24" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [include-cidr] - yml_test.go:251: test include-none - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:erehwon.example.com -all" - spf.go:308: check "erehwon.example.com" 1 0 - spf.go:330: dns record "" - spf.go:401: "include:erehwon.example.com" permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [include-none] - yml_test.go:251: test include-temperror - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 include:ip8.example.com -all" - spf.go:308: check "ip8.example.com" 1 0 - spf.go:318: dns temp error: lookup : test timeout error - spf.go:401: "include:ip8.example.com" temperror, lookup : test timeout error - yml_test.go:260: success: temperror, lookup : test timeout error [include-temperror] + yml_test.go:251: test include-permerror + yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com + spf.go:308: check "e5.example.com" 0 0 + spf.go:330: dns record "v=spf1 include:e6.example.com -all" + spf.go:308: check "e6.example.com" 1 0 + spf.go:330: dns record "v=spf1 include +all" + spf.go:437: unknown field, permerror + spf.go:401: "include:e6.example.com" permerror, unknown field + yml_test.go:260: success: permerror, unknown field [include-permerror] yml_test.go:251: test include-syntax-error yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -4198,73 +4241,57 @@ spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [include-syntax-error] yml_test.go:162: suite: MX mechanism syntax + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 mx:foo.example.com/24] + yml_test.go:167: domain foo.example.com + yml_test.go:169: MX: {0 foo1.example.com} + yml_test.go:167: domain foo1.example.com + yml_test.go:169: A: [1.1.1.1] + yml_test.go:169: A: [1.2.3.5] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 mx/0 -all] yml_test.go:169: MX: {0 e1.example.com} - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 mx] - yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e2a.example.com + yml_test.go:169: AAAA: [1234::1] + yml_test.go:169: MX: {0 e2a.example.com} + yml_test.go:169: SPF: [v=spf1 mx//0 -all] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 mx:abc.123] - yml_test.go:167: domain e6a.example.com - yml_test.go:169: SPF: [v=spf1 mx/33 -all] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 mx:foo.example.com/24] - yml_test.go:167: domain foo.example.com - yml_test.go:169: MX: {0 foo1.example.com} + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 mx:example.com:8080] + yml_test.go:167: domain foo:bar/baz.example.com + yml_test.go:169: MX: {0 foo:bar/baz.example.com} + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e12.example.com yml_test.go:169: SPF: [v=spf1 mx:example.-com] yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] yml_test.go:169: MX: {0 } yml_test.go:169: SPF: [v=spf1 mx] - yml_test.go:167: domain e13.example.com - yml_test.go:169: SPF: [v=spf1 mx: -all] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 mx:foo.example.com] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 mx//33 -all] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 mx:example.com:8080] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 mx:foo:bar/baz.example.com] - yml_test.go:167: domain foo:bar/baz.example.com - yml_test.go:169: MX: {0 foo:bar/baz.example.com} - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e2.example.com yml_test.go:169: A: [1.1.1.1] yml_test.go:169: AAAA: [1234::2] yml_test.go:169: MX: {0 e2.example.com} yml_test.go:169: SPF: [v=spf1 mx/0 -all] - yml_test.go:167: domain e2a.example.com - yml_test.go:169: AAAA: [1234::1] - yml_test.go:169: MX: {0 e2a.example.com} - yml_test.go:169: SPF: [v=spf1 mx//0 -all] yml_test.go:167: domain e2b.example.com yml_test.go:169: A: [1.1.1.1] yml_test.go:169: MX: {0 e2b.example.com} yml_test.go:169: SPF: [v=spf1 mx//0 -all] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 mx:foo.example.com] + yml_test.go:167: domain e6a.example.com + yml_test.go:169: SPF: [v=spf1 mx/33 -all] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 mx:foo:bar/baz.example.com] + yml_test.go:167: domain e13.example.com + yml_test.go:169: SPF: [v=spf1 mx: -all] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 mx] + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 mx//33 -all] yml_test.go:167: domain e7.example.com yml_test.go:169: SPF: [v=spf1 mx//129 -all] - yml_test.go:167: domain foo1.example.com - yml_test.go:169: A: [1.1.1.1] - yml_test.go:169: A: [1.2.3.5] - yml_test.go:251: test mx-bad-cidr4 - yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com - spf.go:308: check "e6a.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/33 -all" - spf.go:780: masks on "mx/33", "e6a.example.com": "" [, ] - spf.go:411: "mx/33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr4] - yml_test.go:251: test mx-multi-ip1 - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx:foo.example.com/24" - spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] - spf.go:828: mx ips: [1.1.1.1 1.2.3.5] - spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] - spf.go:411: "mx:foo.example.com/24" pass, matched mx - yml_test.go:260: success: pass, matched mx [mx-multi-ip1] yml_test.go:251: test mx-multi-ip2 yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com spf.go:308: check "e10.example.com" 0 0 @@ -4274,6 +4301,45 @@ spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] spf.go:411: "mx:foo.example.com/24" pass, matched mx yml_test.go:260: success: pass, matched mx [mx-multi-ip2] + yml_test.go:251: test mx-nxdomain + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/0 -all" + spf.go:780: masks on "mx/0", "e1.example.com": "e1.example.com" [/0, ] + spf.go:828: mx ips: [] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-nxdomain] + yml_test.go:251: test mx-cidr6-0-ip4 + yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//0 -all" + spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] + spf.go:828: mx ips: [1234::1] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4] + yml_test.go:251: test mx-cidr6-0-ip4mapped + yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com + spf.go:308: check "e2a.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//0 -all" + spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] + spf.go:828: mx ips: [1234::1] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4mapped] + yml_test.go:251: test mx-cidr6-0-nxdomain + yml_test.go:253: checkhost 1234::1 foo@e2b.example.com + spf.go:308: check "e2b.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//0 -all" + spf.go:780: masks on "mx//0", "e2b.example.com": "e2b.example.com" [, /0] + spf.go:828: mx ips: [1.1.1.1] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr6-0-nxdomain] + yml_test.go:251: test mx-bad-cidr6 + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx//129 -all" + spf.go:780: masks on "mx//129", "e7.example.com": "" [, ] + spf.go:411: "mx//129" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr6] yml_test.go:251: test mx-cidr6-0-ip6 yml_test.go:253: checkhost 1234::1 foo@e2a.example.com spf.go:308: check "e2a.example.com" 0 0 @@ -4283,6 +4349,30 @@ spf.go:831: mx match: 1234::1, 1234::1, [, /0] spf.go:411: "mx//0" pass, matched mx yml_test.go:260: success: pass, matched mx [mx-cidr6-0-ip6] + yml_test.go:251: test mx-cidr4-0-ip6 + yml_test.go:253: checkhost 1234::1 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/0 -all" + spf.go:780: masks on "mx/0", "e2.example.com": "e2.example.com" [/0, ] + spf.go:828: mx ips: [1.1.1.1 1234::2] + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [mx-cidr4-0-ip6] + yml_test.go:251: test mx-bad-cidr4 + yml_test.go:253: checkhost 1.2.3.4 foo@e6a.example.com + spf.go:308: check "e6a.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx/33 -all" + spf.go:780: masks on "mx/33", "e6a.example.com": "" [, ] + spf.go:411: "mx/33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr4] + yml_test.go:251: test mx-multi-ip1 + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx:foo.example.com/24" + spf.go:780: masks on "mx:foo.example.com/24", "e10.example.com": "foo.example.com" [/24, ] + spf.go:828: mx ips: [1.1.1.1 1.2.3.5] + spf.go:831: mx match: 1.2.3.4, 1.2.3.5, [/24, ] + spf.go:411: "mx:foo.example.com/24" pass, matched mx + yml_test.go:260: success: pass, matched mx [mx-multi-ip1] yml_test.go:251: test mx-cidr4-0 yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -4292,14 +4382,6 @@ spf.go:831: mx match: 1.2.3.4, 1.1.1.1, [/0, ] spf.go:411: "mx/0" pass, matched mx yml_test.go:260: success: pass, matched mx [mx-cidr4-0] - yml_test.go:251: test mx-implicit - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [mx-implicit] yml_test.go:251: test mx-empty yml_test.go:253: checkhost 1.2.3.4 spf.go:308: check "mail.example.com" 0 0 @@ -4308,6 +4390,14 @@ spf.go:828: mx ips: [] spf.go:444: fallback to neutral yml_test.go:260: success: neutral, [mx-empty] + yml_test.go:251: test mx-implicit + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [mx-implicit] yml_test.go:251: test mx-cidr6 yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -4316,72 +4406,43 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: fail yml_test.go:260: success: fail, matched all [mx-cidr6] - yml_test.go:251: test mx-nxdomain - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/0 -all" - spf.go:780: masks on "mx/0", "e1.example.com": "e1.example.com" [/0, ] - spf.go:828: mx ips: [] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-nxdomain] - yml_test.go:251: test mx-cidr4-0-ip6 - yml_test.go:253: checkhost 1234::1 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx/0 -all" - spf.go:780: masks on "mx/0", "e2.example.com": "e2.example.com" [/0, ] - spf.go:828: mx ips: [1.1.1.1 1234::2] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr4-0-ip6] - yml_test.go:251: test mx-cidr6-0-ip4mapped - yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//0 -all" - spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:828: mx ips: [1234::1] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4mapped] - yml_test.go:251: test mx-bad-cidr6 - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//129 -all" - spf.go:780: masks on "mx//129", "e7.example.com": "" [, ] - spf.go:411: "mx//129" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [mx-bad-cidr6] - yml_test.go:251: test mx-cidr6-0-ip4 - yml_test.go:253: checkhost 1.2.3.4 foo@e2a.example.com - spf.go:308: check "e2a.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//0 -all" - spf.go:780: masks on "mx//0", "e2a.example.com": "e2a.example.com" [, /0] - spf.go:828: mx ips: [1234::1] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr6-0-ip4] - yml_test.go:251: test mx-cidr6-0-nxdomain - yml_test.go:253: checkhost 1234::1 foo@e2b.example.com - spf.go:308: check "e2b.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx//0 -all" - spf.go:780: masks on "mx//0", "e2b.example.com": "e2b.example.com" [, /0] - spf.go:828: mx ips: [1.1.1.1] - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [mx-cidr6-0-nxdomain] yml_test.go:162: suite: EXISTS mechanism syntax + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 exists:mail6.example.com -all] yml_test.go:167: domain mail6.example.com yml_test.go:169: AAAA: [CAFE:BABE::4] - yml_test.go:167: domain err.example.com - yml_test.go:169: TIMEOUT yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 exists:] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e2.example.com yml_test.go:169: SPF: [v=spf1 exists] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 exists:mail.example.com/24] yml_test.go:167: domain e4.example.com yml_test.go:169: SPF: [v=spf1 exists:mail.example.com] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 exists:mail6.example.com -all] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain err.example.com + yml_test.go:169: TIMEOUT + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 exists:mail.example.com/24] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 exists:err.example.com -all] + yml_test.go:251: test exists-dnserr + yml_test.go:253: checkhost cafe:babe::3 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:err.example.com -all" + spf.go:426: "exists:err.example.com" temperror, lookup : test timeout error + yml_test.go:260: success: temperror, lookup : test timeout error [exists-dnserr] + yml_test.go:251: test exists-empty-domain + yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:" + spf.go:426: "exists:" permerror, invalid domain + yml_test.go:260: success: permerror, invalid domain [exists-empty-domain] + yml_test.go:251: test exists-implicit + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [exists-implicit] yml_test.go:251: test exists-cidr yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com spf.go:308: check "e3.example.com" 0 0 @@ -4409,57 +4470,40 @@ spf.go:330: dns record "v=spf1 exists:mail6.example.com -all" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exists-ip6only] - yml_test.go:251: test exists-dnserr - yml_test.go:253: checkhost cafe:babe::3 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:err.example.com -all" - spf.go:426: "exists:err.example.com" temperror, lookup : test timeout error - yml_test.go:260: success: temperror, lookup : test timeout error [exists-dnserr] - yml_test.go:251: test exists-empty-domain - yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:" - spf.go:426: "exists:" permerror, invalid domain - yml_test.go:260: success: permerror, invalid domain [exists-empty-domain] - yml_test.go:251: test exists-implicit - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [exists-implicit] yml_test.go:162: suite: IP4 mechanism syntax - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/32 -all] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/33 -all] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4//32] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 ip4] yml_test.go:167: domain e7.example.com yml_test.go:169: SPF: [v=spf1 -ip4:1.2.3.4 ip6:::FFFF:1.2.3.4] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1/0 -all] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/32 -all] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/032 -all] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4//32] yml_test.go:167: domain e8.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4:8080] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3] yml_test.go:167: domain mail.example.com yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1/0 -all] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4/032 -all] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 ip4] - yml_test.go:251: test cidr4-33 - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4/33 -all" - spf.go:416: "ip4:1.2.3.4/33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [cidr4-33] - yml_test.go:251: test bad-ip4-port - yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4:8080" - spf.go:416: "ip4:1.2.3.4:8080" permerror, invalid ipX value - yml_test.go:260: success: permerror, invalid ipX value [bad-ip4-port] + yml_test.go:251: test cidr4-32 + yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4/32 -all" + spf.go:527: ip match: 1.2.3.4/32 contains 1.2.3.4 + spf.go:416: "ip4:1.2.3.4/32" pass, matched ip + yml_test.go:260: success: pass, matched ip [cidr4-32] + yml_test.go:251: test bad-ip4-short + yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3" + spf.go:416: "ip4:1.2.3" permerror, invalid ipX value + yml_test.go:260: success: permerror, invalid ipX value [bad-ip4-short] yml_test.go:251: test ip4-dual-cidr yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -4480,26 +4524,31 @@ spf.go:527: ip match: 0.0.0.0/0 contains 1.2.3.4 spf.go:416: "ip4:1.1.1.1/0" pass, matched ip yml_test.go:260: success: pass, matched ip [cidr4-0] - yml_test.go:251: test cidr4-32 - yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3.4/32 -all" - spf.go:527: ip match: 1.2.3.4/32 contains 1.2.3.4 - spf.go:416: "ip4:1.2.3.4/32" pass, matched ip - yml_test.go:260: success: pass, matched ip [cidr4-32] + yml_test.go:251: test cidr4-33 + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4/33 -all" + spf.go:416: "ip4:1.2.3.4/33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [cidr4-33] yml_test.go:251: test bare-ip4 yml_test.go:253: checkhost 1.2.3.4 foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 spf.go:330: dns record "v=spf1 ip4" spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [bare-ip4] - yml_test.go:251: test bad-ip4-short - yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip4:1.2.3" - spf.go:416: "ip4:1.2.3" permerror, invalid ipX value - yml_test.go:260: success: permerror, invalid ipX value [bad-ip4-short] + yml_test.go:251: test bad-ip4-port + yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip4:1.2.3.4:8080" + spf.go:416: "ip4:1.2.3.4:8080" permerror, invalid ipX value + yml_test.go:260: success: permerror, invalid ipX value [bad-ip4-port] yml_test.go:162: suite: IP6 mechanism syntax + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 -all ip6] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1/0] yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1/129] yml_test.go:167: domain e4.example.com @@ -4508,25 +4557,12 @@ yml_test.go:169: SPF: [v=spf1 ip6:Cafe:Babe:8000::/33] yml_test.go:167: domain e6.example.com yml_test.go:169: SPF: [v=spf1 ip6::CAFE::BABE] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 -all ip6] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 ip6:::1.1.1.1/0] - yml_test.go:251: test cidr6-0 - yml_test.go:253: checkhost deaf:babe::cab:fee foo@e2.example.com - spf.go:308: check "e2.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/0" - spf.go:527: ip match: ::/0 contains deaf:babe::cab:fee - spf.go:416: "ip6:::1.1.1.1/0" pass, matched ip - yml_test.go:260: success: pass, matched ip [cidr6-0] - yml_test.go:251: test cidr6-bad - yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:::1.1.1.1//33" - spf.go:416: "ip6:::1.1.1.1//33" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [cidr6-bad] + yml_test.go:251: test cidr6-129 + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/129" + spf.go:416: "ip6:::1.1.1.1/129" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [cidr6-129] yml_test.go:251: test cidr6-33 yml_test.go:253: checkhost cafe:babe:8000:: foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 @@ -4540,6 +4576,19 @@ spf.go:330: dns record "v=spf1 ip6:Cafe:Babe:8000::/33" spf.go:444: fallback to neutral yml_test.go:260: success: neutral, [cidr6-33-ip4] + yml_test.go:251: test cidr6-0 + yml_test.go:253: checkhost deaf:babe::cab:fee foo@e2.example.com + spf.go:308: check "e2.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/0" + spf.go:527: ip match: ::/0 contains deaf:babe::cab:fee + spf.go:416: "ip6:::1.1.1.1/0" pass, matched ip + yml_test.go:260: success: pass, matched ip [cidr6-0] + yml_test.go:251: test cidr6-bad + yml_test.go:253: checkhost 1.2.3.4 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 ip6:::1.1.1.1//33" + spf.go:416: "ip6:::1.1.1.1//33" permerror, invalid mask + yml_test.go:260: success: permerror, invalid mask [cidr6-bad] yml_test.go:251: test ip6-bad1 yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com spf.go:308: check "e6.example.com" 0 0 @@ -4558,123 +4607,85 @@ spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/0" spf.go:444: fallback to neutral yml_test.go:260: success: neutral, [cidr6-ip4] - yml_test.go:251: test cidr6-129 - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 ip6:::1.1.1.1/129" - spf.go:416: "ip6:::1.1.1.1/129" permerror, invalid mask - yml_test.go:260: success: permerror, invalid mask [cidr6-129] yml_test.go:162: suite: Semantics of exp and other modifiers - yml_test.go:167: domain exp4.example.com - yml_test.go:169: TXT: [%{l} in implementation] + yml_test.go:167: domain e1.example.com + yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 =all] yml_test.go:167: domain e11msg.example.com yml_test.go:169: TXT: [Answer a fool according to his folly.] yml_test.go:169: TXT: [Do not answer a fool according to his folly.] - yml_test.go:167: domain e13.example.com - yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all] - yml_test.go:167: domain e14.example.com - yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] - yml_test.go:167: domain e21msg.example.com - yml_test.go:169: TIMEOUT - yml_test.go:167: domain testimplicit.example.com - yml_test.go:169: SPF: [v=spf1 a -all] - yml_test.go:169: A: [192.0.2.2] + yml_test.go:167: domain e16.example.com + yml_test.go:169: SPF: [v=spf1 exp=-all] + yml_test.go:167: domain e18.example.com + yml_test.go:169: SPF: [v=spf1 ?all redirect=] + yml_test.go:167: domain e21.example.com + yml_test.go:169: SPF: [v=spf1 exp=e21msg.example.com -all] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain exp1.example.com yml_test.go:169: TXT: [No-see-um] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] + yml_test.go:167: domain e19.example.com + yml_test.go:169: SPF: [v=spf1 default=pass] + yml_test.go:167: domain e24.example.com + yml_test.go:169: SPF: [v=spf1 redirect=testimplicit.example.com] + yml_test.go:169: A: [192.0.2.1] + yml_test.go:167: domain e13.example.com + yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all] + yml_test.go:167: domain e20.example.com + yml_test.go:169: SPF: [v=spf1 default=+] + yml_test.go:167: domain e23.example.com + yml_test.go:169: SPF: [v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain exp2.example.com yml_test.go:169: TXT: [See me.] - yml_test.go:167: domain twoexp.example.com - yml_test.go:169: TXT: [one] - yml_test.go:169: TXT: [two] - yml_test.go:167: domain e1.example.com - yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e2.example.com] - yml_test.go:167: domain e21.example.com - yml_test.go:169: SPF: [v=spf1 exp=e21msg.example.com -all] + yml_test.go:167: domain e15.example.com + yml_test.go:169: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] yml_test.go:167: domain e22.example.com yml_test.go:169: SPF: [v=spf1 exp=mail.example.com -all] + yml_test.go:167: domain nonascii.example.com + yml_test.go:169: SPF: [v=spf1 exp=badexp.example.com -all] yml_test.go:167: domain badexp.example.com yml_test.go:169: TXT: [Explanation] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=exp2.example.com] - yml_test.go:167: domain e19.example.com - yml_test.go:169: SPF: [v=spf1 default=pass] - yml_test.go:167: domain e13msg.example.com - yml_test.go:169: TXT: [The %{x}-files.] - yml_test.go:167: domain e15.example.com - yml_test.go:169: SPF: [v=spf1 redirect=e12.example.com -all redirect=e12.example.com] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=exp4.example.com] - yml_test.go:167: domain e12.example.com - yml_test.go:169: SPF: [v=spf1 exp= -all] + yml_test.go:167: domain twoexp.example.com + yml_test.go:169: TXT: [one] + yml_test.go:169: TXT: [two] + yml_test.go:167: domain exp3.example.com + yml_test.go:169: TXT: [Correct!] + yml_test.go:167: domain exp4.example.com + yml_test.go:169: TXT: [%{l} in implementation] yml_test.go:167: domain e9.example.com yml_test.go:169: SPF: [v=spf1 -all foo=%abc] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=e11msg.example.com] yml_test.go:167: domain e10.example.com yml_test.go:169: SPF: [v=spf1 redirect=erehwon.example.com] - yml_test.go:167: domain e16.example.com - yml_test.go:169: SPF: [v=spf1 exp=-all] + yml_test.go:167: domain e17.example.com + yml_test.go:169: SPF: [v=spf1 redirect=-all ?all] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=exp4.example.com] + yml_test.go:167: domain e12.example.com + yml_test.go:169: SPF: [v=spf1 exp= -all] + yml_test.go:167: domain e21msg.example.com + yml_test.go:169: TIMEOUT yml_test.go:167: domain tworecs.example.com yml_test.go:169: SPF: [v=spf1 exp=twoexp.example.com -all] - yml_test.go:167: domain e23.example.com - yml_test.go:169: SPF: [v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 exp=exp1.example.com redirect=e4.example.com] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 include:e3.example.com -all exp=exp3.example.com] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=e11msg.example.com] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=exp2.example.com] yml_test.go:167: domain e5.example.com yml_test.go:169: SPF: [v=spf1 1up=foo] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 =all] - yml_test.go:167: domain e17.example.com - yml_test.go:169: SPF: [v=spf1 redirect=-all ?all] - yml_test.go:167: domain nonascii.example.com - yml_test.go:169: SPF: [v=spf1 exp=badexp.example.com -all] - yml_test.go:167: domain e24.example.com - yml_test.go:169: SPF: [v=spf1 redirect=testimplicit.example.com] - yml_test.go:169: A: [192.0.2.1] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:167: domain exp3.example.com - yml_test.go:169: TXT: [Correct!] - yml_test.go:167: domain e18.example.com - yml_test.go:169: SPF: [v=spf1 ?all redirect=] - yml_test.go:167: domain e20.example.com - yml_test.go:169: SPF: [v=spf1 default=+] - yml_test.go:251: test redirect-none - yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 redirect=erehwon.example.com" - spf.go:308: check "erehwon.example.com" 1 0 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - spf.go:434: "redirect=erehwon.example.com": permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [redirect-none] - yml_test.go:251: test redirect-cancels-prior-exp - yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" - spf.go:430: exp= ignored - spf.go:308: check "e4.example.com" 1 0 - spf.go:330: dns record "v=spf1 -all exp=exp2.example.com" - spf.go:397: all: fail - spf.go:434: "redirect=e4.example.com": fail, matched all - yml_test.go:260: success: fail, matched all [redirect-cancels-prior-exp] - yml_test.go:251: test explanation-syntax-error - yml_test.go:253: checkhost 1.2.3.4 foo@e13.example.com - spf.go:308: check "e13.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=e13msg.example.com -all" - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [explanation-syntax-error] - yml_test.go:251: test two-exp-records - yml_test.go:253: checkhost 1.2.3.4 foobar@tworecs.example.com - spf.go:308: check "tworecs.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=twoexp.example.com -all" - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [two-exp-records] + yml_test.go:167: domain e13msg.example.com + yml_test.go:169: TXT: [The %{x}-files.] + yml_test.go:167: domain e14.example.com + yml_test.go:169: SPF: [v=spf1 exp=e13msg.example.com -all exp=e11msg.example.com] + yml_test.go:167: domain testimplicit.example.com + yml_test.go:169: SPF: [v=spf1 a -all] + yml_test.go:169: A: [192.0.2.2] yml_test.go:251: test redirect-implicit yml_test.go:253: checkhost 192.0.2.2 bar@e24.example.com spf.go:308: check "e24.example.com" 0 0 @@ -4699,6 +4710,13 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exp-dns-error] + yml_test.go:251: test explanation-syntax-error + yml_test.go:253: checkhost 1.2.3.4 foo@e13.example.com + spf.go:308: check "e13.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=e13msg.example.com -all" + spf.go:430: exp= ignored + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [explanation-syntax-error] yml_test.go:251: test non-ascii-exp yml_test.go:253: checkhost 1.2.3.4 foobar@nonascii.example.com spf.go:308: check "nonascii.example.com" 0 0 @@ -4706,6 +4724,16 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [non-ascii-exp] + yml_test.go:251: test redirect-cancels-prior-exp + yml_test.go:253: checkhost 1.2.3.4 foo@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=exp1.example.com redirect=e4.example.com" + spf.go:430: exp= ignored + spf.go:308: check "e4.example.com" 1 0 + spf.go:330: dns record "v=spf1 -all exp=exp2.example.com" + spf.go:397: all: fail + spf.go:434: "redirect=e4.example.com": fail, matched all + yml_test.go:260: success: fail, matched all [redirect-cancels-prior-exp] yml_test.go:251: test redirect-cancels-exp yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com spf.go:308: check "e1.example.com" 0 0 @@ -4735,23 +4763,6 @@ spf.go:330: dns record "v=spf1 1up=foo" spf.go:437: unknown field, permerror yml_test.go:260: success: permerror, unknown field [invalid-modifier] - yml_test.go:251: test empty-modifier-name - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 =all" - spf.go:437: unknown field, permerror - yml_test.go:260: success: permerror, unknown field [empty-modifier-name] - yml_test.go:251: test exp-void - yml_test.go:253: checkhost 1.2.3.4 foo@e23.example.com - spf.go:308: check "e23.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all" - spf.go:747: masks on "a:erehwon.example.com", "e23.example.com": "erehwon.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a:foobar.com", "e23.example.com": "foobar.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [exp-void] yml_test.go:251: test dorky-sentinel yml_test.go:253: checkhost 1.2.3.4 Macro Error@e8.example.com spf.go:308: check "e8.example.com" 0 0 @@ -4765,19 +4776,99 @@ spf.go:430: exp= ignored spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exp-no-txt] + yml_test.go:251: test redirect-none + yml_test.go:253: checkhost 1.2.3.4 foo@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 redirect=erehwon.example.com" + spf.go:308: check "erehwon.example.com" 1 0 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + spf.go:434: "redirect=erehwon.example.com": permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [redirect-none] + yml_test.go:251: test two-exp-records + yml_test.go:253: checkhost 1.2.3.4 foobar@tworecs.example.com + spf.go:308: check "tworecs.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=twoexp.example.com -all" + spf.go:430: exp= ignored + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [two-exp-records] yml_test.go:251: test redirect-twice yml_test.go:253: checkhost 1.2.3.4 foo@e15.example.com spf.go:308: check "e15.example.com" 0 0 spf.go:330: dns record "v=spf1 redirect=e12.example.com -all redirect=e12.example.com" spf.go:353: too many redirects yml_test.go:260: success: permerror, invalid domain [redirect-twice] + yml_test.go:251: test empty-modifier-name + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 =all" + spf.go:437: unknown field, permerror + yml_test.go:260: success: permerror, unknown field [empty-modifier-name] + yml_test.go:251: test exp-void + yml_test.go:253: checkhost 1.2.3.4 foo@e23.example.com + spf.go:308: check "e23.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:erehwon.example.com a:foobar.com exp=nxdomain.com -all" + spf.go:747: masks on "a:erehwon.example.com", "e23.example.com": "erehwon.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a:foobar.com", "e23.example.com": "foobar.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:430: exp= ignored + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [exp-void] yml_test.go:162: suite: Macro expansion rules + yml_test.go:167: domain 40.218.168.192.example.com + yml_test.go:169: TXT: [Connections from %{c} not authorized.] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 a:%{a}.example.com -all] + yml_test.go:167: domain 41.218.168.192.in-addr.arpa + yml_test.go:169: PTR: [mx.example.com] + yml_test.go:167: domain e8.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=msg8.%{D2}] + yml_test.go:167: domain msg8.example.com + yml_test.go:169: TXT: [http://example.com/why.html?l=%{L}] + yml_test.go:167: domain e10.example.com + yml_test.go:169: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] + yml_test.go:167: domain msg.example.com + yml_test.go:169: TXT: [This is a test.] + yml_test.go:167: domain e1a.example.com + yml_test.go:169: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] + yml_test.go:167: domain _spfh.example.com + yml_test.go:169: SPF: [v=spf1 -a:%{h} +all] + yml_test.go:167: 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:169: PTR: [mx.example.com] + yml_test.go:167: domain bar.foo.user.example.com + yml_test.go:169: A: [127.0.0.2] + yml_test.go:167: domain e1e.example.com + yml_test.go:169: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] + yml_test.go:167: domain macro%percent space%20url-space.example.com + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=%{r}.example.com] + yml_test.go:167: 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:169: PTR: [mx.example.com] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=e4msg.example.com] + yml_test.go:167: domain e6msg.example.com + yml_test.go:169: TXT: [connect from %{p}] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=%{ir}.example.com] + yml_test.go:167: domain o.spf.example.com + yml_test.go:169: SPF: [v=spf1 ip4:192.168.218.40] + yml_test.go:167: domain e1t.example.com + yml_test.go:169: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] yml_test.go:167: 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:169: TXT: [Congratulations! That was tricky.] - yml_test.go:167: domain 1.2.3.4.gladstone.philip.user.example.com + yml_test.go:167: domain mx.example.com.ok.example.com yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain e1a.example.com - yml_test.go:169: SPF: [v=spf1 a:macro%%percent%_%_space%-url-space.example.com -all] + yml_test.go:167: domain e7.example.com + yml_test.go:169: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] + yml_test.go:167: domain a.spf.example.com + yml_test.go:169: SPF: [v=spf1 include:o.spf.example.com. ~all] + yml_test.go:167: domain exp.example.com + yml_test.go:169: SPF: [v=spf1 exp=msg.example.com. -all] + yml_test.go:167: domain e4msg.example.com + yml_test.go:169: TXT: [%{c} is queried as %{ir}.%{v}.arpa] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 -all exp=e6msg.example.com] yml_test.go:167: domain mx.example.com yml_test.go:169: A: [192.168.218.41] yml_test.go:169: A: [192.168.218.42] @@ -4785,155 +4876,81 @@ yml_test.go:169: AAAA: [CAFE:BABE::3] yml_test.go:167: domain mx.e7.example.com yml_test.go:169: A: [192.168.218.42] - yml_test.go:167: domain e8.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=msg8.%{D2}] - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=%{ir}.example.com] - yml_test.go:167: domain e11.example.com - yml_test.go:169: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] - yml_test.go:167: 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:169: PTR: [mx.example.com] - yml_test.go:167: domain msgbas2x.cos.example.com - yml_test.go:169: A: [192.168.218.40] + yml_test.go:167: domain 1.2.3.4.gladstone.philip.user.example.com + yml_test.go:169: A: [127.0.0.2] + yml_test.go:167: domain example.com.d.spf.example.com + yml_test.go:169: SPF: [v=spf1 redirect=a.spf.example.com] yml_test.go:167: domain example.com yml_test.go:169: A: [192.168.90.76] yml_test.go:169: SPF: [v=spf1 redirect=%{d}.d.spf.example.com.] - yml_test.go:167: domain exp.example.com - yml_test.go:169: SPF: [v=spf1 exp=msg.example.com. -all] - yml_test.go:167: domain 40.218.168.192.example.com - yml_test.go:169: TXT: [Connections from %{c} not authorized.] yml_test.go:167: domain somewhat.long.exp.example.com yml_test.go:169: SPF: [v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com] - yml_test.go:167: domain e4msg.example.com - yml_test.go:169: TXT: [%{c} is queried as %{ir}.%{v}.arpa] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=e6msg.example.com] - yml_test.go:167: domain example.com.d.spf.example.com - yml_test.go:169: SPF: [v=spf1 redirect=a.spf.example.com] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 a:%{H} -all] yml_test.go:167: domain 40.218.168.192.in-addr.arpa yml_test.go:169: PTR: [mx.example.com] - yml_test.go:167: domain e1e.example.com - yml_test.go:169: SPF: [v=spf1 exists:foo%(ir).sbl.example.com ?all] - yml_test.go:167: domain e1t.example.com - yml_test.go:169: SPF: [v=spf1 exists:foo%.sbl.example.com ?all] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=e4msg.example.com] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 a:%{a}.example.com -all] - yml_test.go:167: domain 41.218.168.192.in-addr.arpa - yml_test.go:169: PTR: [mx.example.com] - yml_test.go:167: 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:169: PTR: [mx.example.com] - yml_test.go:167: domain e7.example.com - yml_test.go:169: SPF: [v=spf1 exists:%{p}.should.example.com ~exists:%{p}.ok.example.com] - yml_test.go:167: domain a.spf.example.com - yml_test.go:169: SPF: [v=spf1 include:o.spf.example.com. ~all] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 -all exp=%{r}.example.com] yml_test.go:167: domain 42.218.168.192.in-addr.arpa yml_test.go:169: PTR: [mx.example.com] yml_test.go:169: PTR: [mx.e7.example.com] yml_test.go:167: domain mx.e7.example.com.should.example.com yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain msg8.example.com - yml_test.go:169: TXT: [http://example.com/why.html?l=%{L}] - yml_test.go:167: domain _spfh.example.com - yml_test.go:169: SPF: [v=spf1 -a:%{h} +all] - yml_test.go:167: domain macro%percent space%20url-space.example.com - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain mx.example.com.ok.example.com - yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain o.spf.example.com - yml_test.go:169: SPF: [v=spf1 ip4:192.168.218.40] + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 a:%{H} -all] + yml_test.go:167: domain e11.example.com + yml_test.go:169: SPF: [v=spf1 exists:%{i}.%{l2r-}.user.%{d2}] + yml_test.go:167: domain msgbas2x.cos.example.com + yml_test.go:169: A: [192.168.218.40] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 -exists:%(ir).sbl.example.com ?all] - yml_test.go:167: domain e6msg.example.com - yml_test.go:169: TXT: [connect from %{p}] - yml_test.go:167: domain e10.example.com - yml_test.go:169: SPF: [v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all] yml_test.go:167: domain e12.example.com yml_test.go:169: SPF: [v=spf1 exists:%{l2r+-}.user.%{d2}] - yml_test.go:167: domain bar.foo.user.example.com - yml_test.go:169: A: [127.0.0.2] - yml_test.go:167: domain msg.example.com - yml_test.go:169: TXT: [This is a test.] - yml_test.go:251: test invalid-embedded-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1e.example.com - spf.go:308: check "e1e.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" - spf.go:426: "exists:foo%(ir).sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-embedded-macro-char] - yml_test.go:251: test invalid-trailing-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1t.example.com - spf.go:308: check "e1t.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:foo%.sbl.example.com ?all" - spf.go:426: "exists:foo%.sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-trailing-macro-char] - yml_test.go:251: test exp-txt-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e3.example.com - spf.go:308: check "e3.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=%{ir}.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [exp-txt-macro-char] - yml_test.go:251: test domain-name-truncation - yml_test.go:253: checkhost 192.168.218.40 test@somewhat.long.exp.example.com - spf.go:308: check "somewhat.long.exp.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [domain-name-truncation] - yml_test.go:251: test v-macro-ip4 - yml_test.go:253: checkhost 192.168.218.40 test@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [v-macro-ip4] yml_test.go:251: test v-macro-ip6 yml_test.go:253: checkhost cafe:babe::1 test@e4.example.com spf.go:308: check "e4.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [v-macro-ip6] - yml_test.go:251: test macro-multiple-delimiters - yml_test.go:253: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com - spf.go:308: check "e12.example.com" 0 0 - spf.go:330: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" - spf.go:923: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] - spf.go:923: macro "d2": ["d2" "d" "2" "" ""] - spf.go:1020: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" - spf.go:640: exists match: 127.0.0.2 - spf.go:426: "exists:%{l2r+-}.user.%{d2}" pass, matched exists - yml_test.go:260: success: pass, matched exists [macro-multiple-delimiters] - yml_test.go:251: test trailing-dot-exp - yml_test.go:253: checkhost 192.168.218.40 test@exp.example.com - spf.go:308: check "exp.example.com" 0 0 - spf.go:330: dns record "v=spf1 exp=msg.example.com. -all" - spf.go:430: exp= ignored - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [trailing-dot-exp] - yml_test.go:251: test invalid-macro-char - yml_test.go:253: checkhost 192.168.218.40 test@e1.example.com - spf.go:308: check "e1.example.com" 0 0 - spf.go:330: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" - spf.go:426: "exists:%(ir).sbl.example.com" permerror, invalid macro - yml_test.go:260: success: permerror, invalid macro [invalid-macro-char] yml_test.go:251: test p-macro-ip6-valid yml_test.go:253: checkhost cafe:babe::3 test@e6.example.com spf.go:308: check "e6.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:397: all: fail yml_test.go:260: success: fail, matched all [p-macro-ip6-valid] - yml_test.go:251: test hello-domain-literal + yml_test.go:251: test require-valid-helo + yml_test.go:253: checkhost 1.2.3.4 test@e10.example.com + spf.go:308: check "e10.example.com" 0 0 + spf.go:330: dns record "v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all" + spf.go:923: macro "d2": ["d2" "d" "2" "" ""] + spf.go:1020: macro expanded "_spfh.%{d2}" to "_spfh.example.com" + spf.go:308: check "_spfh.example.com" 1 0 + spf.go:330: dns record "v=spf1 -a:%{h} +all" + spf.go:747: masks on "a:%{h}", "_spfh.example.com": "%{h}" [, ] + spf.go:923: macro "h": ["h" "h" "" "" ""] + spf.go:1020: macro expanded "%{h}" to "OEMCOMPUTER" + spf.go:514: void lookup: nxdomain + spf.go:397: all: pass + spf.go:401: "include:_spfh.%{d2}" fail, matched all + yml_test.go:260: success: fail, matched all [require-valid-helo] + yml_test.go:251: test exp-txt-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e3.example.com + spf.go:308: check "e3.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=%{ir}.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [exp-txt-macro-char] + yml_test.go:251: test p-macro-ip6-novalid + yml_test.go:253: checkhost cafe:babe::1 test@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [p-macro-ip6-novalid] + yml_test.go:251: test invalid-hello-macro yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com spf.go:308: check "e9.example.com" 0 0 spf.go:330: dns record "v=spf1 a:%{H} -all" spf.go:747: masks on "a:%{H}", "e9.example.com": "%{H}" [, ] spf.go:923: macro "H": ["H" "H" "" "" ""] - spf.go:1020: macro expanded "%{H}" to "%5B192.168.218.40%5D" + spf.go:1020: macro expanded "%{H}" to "JUMPIN%27+JUPITER" spf.go:514: void lookup: nxdomain spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [hello-domain-literal] + yml_test.go:260: success: fail, matched all [invalid-hello-macro] yml_test.go:251: test macro-reverse-split-on-dash yml_test.go:253: checkhost 1.2.3.4 philip-gladstone-test@e11.example.com spf.go:308: check "e11.example.com" 0 0 @@ -4954,6 +4971,30 @@ spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] spf.go:406: "a:macro%%percent%_%_space%-url-space.example.com" pass, matched a yml_test.go:260: success: pass, matched a [macro-mania-in-domain] + yml_test.go:251: test p-macro-ip4-valid + yml_test.go:253: checkhost 192.168.218.41 test@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [p-macro-ip4-valid] + yml_test.go:251: test invalid-embedded-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1e.example.com + spf.go:308: check "e1e.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:foo%(ir).sbl.example.com ?all" + spf.go:426: "exists:foo%(ir).sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-embedded-macro-char] + yml_test.go:251: test invalid-trailing-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1t.example.com + spf.go:308: check "e1t.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:foo%.sbl.example.com ?all" + spf.go:426: "exists:foo%.sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-trailing-macro-char] + yml_test.go:251: test domain-name-truncation + yml_test.go:253: checkhost 192.168.218.40 test@somewhat.long.exp.example.com + spf.go:308: check "somewhat.long.exp.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=foobar.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.%{o}.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [domain-name-truncation] yml_test.go:251: test undef-macro yml_test.go:253: checkhost cafe:babe::c0a8:da28 test@e5.example.com spf.go:308: check "e5.example.com" 0 0 @@ -4962,49 +5003,6 @@ spf.go:923: macro "a": [] spf.go:406: "a:%{a}.example.com" permerror, invalid macro yml_test.go:260: success: permerror, invalid macro [undef-macro] - yml_test.go:251: test p-macro-ip4-novalid - yml_test.go:253: checkhost 192.168.218.40 test@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [p-macro-ip4-novalid] - yml_test.go:251: test p-macro-ip4-valid - yml_test.go:253: checkhost 192.168.218.41 test@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [p-macro-ip4-valid] - yml_test.go:251: test upper-macro - yml_test.go:253: checkhost 192.168.218.42 ~jack&jill=up-a_b3.c@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 -all exp=msg8.%{D2}" - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [upper-macro] - yml_test.go:251: test invalid-hello-macro - yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:%{H} -all" - spf.go:747: masks on "a:%{H}", "e9.example.com": "%{H}" [, ] - spf.go:923: macro "H": ["H" "H" "" "" ""] - spf.go:1020: macro expanded "%{H}" to "JUMPIN%27+JUPITER" - spf.go:514: void lookup: nxdomain - spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [invalid-hello-macro] - yml_test.go:251: test require-valid-helo - yml_test.go:253: checkhost 1.2.3.4 test@e10.example.com - spf.go:308: check "e10.example.com" 0 0 - spf.go:330: dns record "v=spf1 -include:_spfh.%{d2} ip4:1.2.3.0/24 -all" - spf.go:923: macro "d2": ["d2" "d" "2" "" ""] - spf.go:1020: macro expanded "_spfh.%{d2}" to "_spfh.example.com" - spf.go:308: check "_spfh.example.com" 1 0 - spf.go:330: dns record "v=spf1 -a:%{h} +all" - spf.go:747: masks on "a:%{h}", "_spfh.example.com": "%{h}" [, ] - spf.go:923: macro "h": ["h" "h" "" "" ""] - spf.go:1020: macro expanded "%{h}" to "OEMCOMPUTER" - spf.go:514: void lookup: nxdomain - spf.go:397: all: pass - spf.go:401: "include:_spfh.%{d2}" fail, matched all - yml_test.go:260: success: fail, matched all [require-valid-helo] yml_test.go:251: test trailing-dot-domain yml_test.go:253: checkhost 192.168.218.40 test@example.com spf.go:308: check "example.com" 0 0 @@ -5023,40 +5021,58 @@ spf.go:434: "redirect=a.spf.example.com": pass, matched ip spf.go:434: "redirect=%{d}.d.spf.example.com.": pass, matched ip yml_test.go:260: success: pass, matched ip [trailing-dot-domain] - yml_test.go:251: test p-macro-ip6-novalid - yml_test.go:253: checkhost cafe:babe::1 test@e6.example.com + yml_test.go:251: test invalid-macro-char + yml_test.go:253: checkhost 192.168.218.40 test@e1.example.com + spf.go:308: check "e1.example.com" 0 0 + spf.go:330: dns record "v=spf1 -exists:%(ir).sbl.example.com ?all" + spf.go:426: "exists:%(ir).sbl.example.com" permerror, invalid macro + yml_test.go:260: success: permerror, invalid macro [invalid-macro-char] + yml_test.go:251: test p-macro-ip4-novalid + yml_test.go:253: checkhost 192.168.218.40 test@e6.example.com spf.go:308: check "e6.example.com" 0 0 spf.go:330: dns record "v=spf1 -all exp=e6msg.example.com" spf.go:397: all: fail - yml_test.go:260: success: fail, matched all [p-macro-ip6-novalid] + yml_test.go:260: success: fail, matched all [p-macro-ip4-novalid] + yml_test.go:251: test upper-macro + yml_test.go:253: checkhost 192.168.218.42 ~jack&jill=up-a_b3.c@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=msg8.%{D2}" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [upper-macro] + yml_test.go:251: test hello-domain-literal + yml_test.go:253: checkhost 192.168.218.40 test@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:%{H} -all" + spf.go:747: masks on "a:%{H}", "e9.example.com": "%{H}" [, ] + spf.go:923: macro "H": ["H" "H" "" "" ""] + spf.go:1020: macro expanded "%{H}" to "%5B192.168.218.40%5D" + spf.go:514: void lookup: nxdomain + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [hello-domain-literal] + yml_test.go:251: test macro-multiple-delimiters + yml_test.go:253: checkhost 1.2.3.4 foo-bar+zip+quux@e12.example.com + spf.go:308: check "e12.example.com" 0 0 + spf.go:330: dns record "v=spf1 exists:%{l2r+-}.user.%{d2}" + spf.go:923: macro "l2r+-": ["l2r+-" "l" "2" "r" "+-"] + spf.go:923: macro "d2": ["d2" "d" "2" "" ""] + spf.go:1020: macro expanded "%{l2r+-}.user.%{d2}" to "bar.foo.user.example.com" + spf.go:640: exists match: 127.0.0.2 + spf.go:426: "exists:%{l2r+-}.user.%{d2}" pass, matched exists + yml_test.go:260: success: pass, matched exists [macro-multiple-delimiters] + yml_test.go:251: test trailing-dot-exp + yml_test.go:253: checkhost 192.168.218.40 test@exp.example.com + spf.go:308: check "exp.example.com" 0 0 + spf.go:330: dns record "v=spf1 exp=msg.example.com. -all" + spf.go:430: exp= ignored + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [trailing-dot-exp] + yml_test.go:251: test v-macro-ip4 + yml_test.go:253: checkhost 192.168.218.40 test@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 -all exp=e4msg.example.com" + spf.go:397: all: fail + yml_test.go:260: success: fail, matched all [v-macro-ip4] yml_test.go:162: suite: Processing limits - yml_test.go:167: domain e3.example.com - yml_test.go:169: SPF: [v=spf1 include:e2.example.com] - yml_test.go:169: A: [1.2.3.8] - yml_test.go:167: domain e4.example.com - yml_test.go:169: SPF: [v=spf1 mx] - yml_test.go:169: MX: {0 mail.example.com} - yml_test.go:169: MX: {1 mail.example.com} - yml_test.go:169: MX: {2 mail.example.com} - yml_test.go:169: MX: {3 mail.example.com} - yml_test.go:169: MX: {4 mail.example.com} - yml_test.go:169: MX: {5 mail.example.com} - yml_test.go:169: MX: {6 mail.example.com} - yml_test.go:169: MX: {7 mail.example.com} - yml_test.go:169: MX: {8 mail.example.com} - yml_test.go:169: MX: {9 mail.example.com} - yml_test.go:169: MX: {10 e4.example.com} - yml_test.go:169: A: [1.2.3.5] - yml_test.go:167: domain e6.example.com - yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] - yml_test.go:169: A: [1.2.3.8] - yml_test.go:169: MX: {10 e6.example.com} - yml_test.go:167: domain e11.example.com - yml_test.go:169: TXT: [v=spf1 a:err.example.com a:err1.example.com a:err2.example.com ?all] - yml_test.go:167: domain e12.example.com - yml_test.go:169: TXT: [v=spf1 a:err.example.com a:err1.example.com ?all] - yml_test.go:167: domain mail.example.com - yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain 5.3.2.1.in-addr.arpa yml_test.go:169: PTR: [e1.example.com.] yml_test.go:169: PTR: [e2.example.com.] @@ -5069,6 +5085,13 @@ yml_test.go:169: PTR: [e9.example.com.] yml_test.go:169: PTR: [e10.example.com.] yml_test.go:169: PTR: [e5.example.com.] + yml_test.go:167: domain e6.example.com + yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all] + yml_test.go:169: A: [1.2.3.8] + yml_test.go:169: MX: {10 e6.example.com} + yml_test.go:167: domain e2.example.com + yml_test.go:169: SPF: [v=spf1 include:e3.example.com] + yml_test.go:169: A: [1.2.3.7] yml_test.go:167: domain e10.example.com yml_test.go:169: SPF: [v=spf1 a -all] yml_test.go:169: A: [1.2.3.1] @@ -5083,27 +5106,103 @@ yml_test.go:169: A: [1.2.3.10] yml_test.go:169: A: [1.2.3.11] yml_test.go:169: A: [1.2.3.12] - yml_test.go:167: domain e9.example.com - yml_test.go:169: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] - yml_test.go:169: A: [1.2.3.21] - yml_test.go:167: domain e2.example.com - yml_test.go:169: SPF: [v=spf1 include:e3.example.com] - yml_test.go:169: A: [1.2.3.7] - yml_test.go:167: domain e5.example.com - yml_test.go:169: SPF: [v=spf1 ptr] - yml_test.go:169: A: [1.2.3.5] - yml_test.go:167: domain inc.example.com - yml_test.go:169: SPF: [v=spf1 a a a a a a a a] - yml_test.go:169: A: [1.2.3.10] + yml_test.go:167: domain mail.example.com + yml_test.go:169: A: [1.2.3.4] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 ip4:1.1.1.1 redirect=e1.example.com] yml_test.go:169: A: [1.2.3.6] + yml_test.go:167: domain e4.example.com + yml_test.go:169: SPF: [v=spf1 mx] + yml_test.go:169: MX: {0 mail.example.com} + yml_test.go:169: MX: {1 mail.example.com} + yml_test.go:169: MX: {2 mail.example.com} + yml_test.go:169: MX: {3 mail.example.com} + yml_test.go:169: MX: {4 mail.example.com} + yml_test.go:169: MX: {5 mail.example.com} + yml_test.go:169: MX: {6 mail.example.com} + yml_test.go:169: MX: {7 mail.example.com} + yml_test.go:169: MX: {8 mail.example.com} + yml_test.go:169: MX: {9 mail.example.com} + yml_test.go:169: MX: {10 e4.example.com} + yml_test.go:169: A: [1.2.3.5] yml_test.go:167: domain e7.example.com yml_test.go:169: SPF: [v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all] yml_test.go:169: A: [1.2.3.20] + yml_test.go:167: domain e9.example.com + yml_test.go:169: SPF: [v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all] + yml_test.go:169: A: [1.2.3.21] + yml_test.go:167: domain e12.example.com + yml_test.go:169: TXT: [v=spf1 a:err.example.com a:err1.example.com ?all] + yml_test.go:167: domain e3.example.com + yml_test.go:169: SPF: [v=spf1 include:e2.example.com] + yml_test.go:169: A: [1.2.3.8] + yml_test.go:167: domain e5.example.com + yml_test.go:169: SPF: [v=spf1 ptr] + yml_test.go:169: A: [1.2.3.5] yml_test.go:167: domain e8.example.com yml_test.go:169: SPF: [v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all] yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain inc.example.com + yml_test.go:169: SPF: [v=spf1 a a a a a a a a] + yml_test.go:169: A: [1.2.3.10] + yml_test.go:167: domain e11.example.com + yml_test.go:169: TXT: [v=spf1 a:err.example.com a:err1.example.com a:err2.example.com ?all] + yml_test.go:251: test mech-at-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com + spf.go:308: check "e6.example.com" 0 0 + spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all" + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] + spf.go:828: mx ips: [1.2.3.8] + spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:536: ip match: 1.2.3.4 + spf.go:416: "ip4:1.2.3.4" pass, matched ip + yml_test.go:260: success: pass, matched ip [mech-at-limit] + yml_test.go:251: test mech-over-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com + spf.go:308: check "e7.example.com" 0 0 + spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] + spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:378: void lookup limit reached + yml_test.go:260: success: permerror, void lookup limit reached [mech-over-limit] + yml_test.go:251: test include-at-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com + spf.go:308: check "e8.example.com" 0 0 + spf.go:330: dns record "v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all" + spf.go:747: masks on "a", "e8.example.com": "e8.example.com" [, ] + spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] + spf.go:406: "a" pass, matched a + yml_test.go:260: success: pass, matched a [include-at-limit] + yml_test.go:251: test void-over-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e11.example.com + spf.go:308: check "e11.example.com" 0 0 + spf.go:330: dns record "v=spf1 a:err.example.com a:err1.example.com a:err2.example.com ?all" + spf.go:747: masks on "a:err.example.com", "e11.example.com": "err.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a:err1.example.com", "e11.example.com": "err1.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:747: masks on "a:err2.example.com", "e11.example.com": "err2.example.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:378: void lookup limit reached + yml_test.go:260: success: permerror, void lookup limit reached [void-over-limit] yml_test.go:251: test redirect-loop yml_test.go:253: checkhost 1.2.3.4 foo@e1.example.com spf.go:308: check "e1.example.com" 0 0 @@ -5143,60 +5242,6 @@ spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached spf.go:434: "redirect=e1.example.com": permerror, lookup limit reached yml_test.go:260: success: permerror, lookup limit reached [redirect-loop] - yml_test.go:251: test mech-over-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e7.example.com - spf.go:308: check "e7.example.com" 0 0 - spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr a ip4:1.2.3.4 -all" - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a", "e7.example.com": "e7.example.com" [, ] - spf.go:780: masks on "mx", "e7.example.com": "e7.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:378: void lookup limit reached - yml_test.go:260: success: permerror, void lookup limit reached [mech-over-limit] - yml_test.go:251: test include-at-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e8.example.com - spf.go:308: check "e8.example.com" 0 0 - spf.go:330: dns record "v=spf1 a include:inc.example.com ip4:1.2.3.4 mx -all" - spf.go:747: masks on "a", "e8.example.com": "e8.example.com" [, ] - spf.go:768: a match: 1.2.3.4, 1.2.3.4, [, ] - spf.go:406: "a" pass, matched a - yml_test.go:260: success: pass, matched a [include-at-limit] - yml_test.go:251: test include-over-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com - spf.go:308: check "e9.example.com" 0 0 - spf.go:330: dns record "v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all" - spf.go:747: masks on "a", "e9.example.com": "e9.example.com" [, ] - spf.go:308: check "inc.example.com" 2 0 - spf.go:330: dns record "v=spf1 a a a a a a a a" - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] - spf.go:444: fallback to neutral - spf.go:747: masks on "a", "e9.example.com": "e9.example.com" [, ] - spf.go:373: lookup limit reached - yml_test.go:260: success: permerror, lookup limit reached [include-over-limit] - yml_test.go:251: test void-over-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e11.example.com - spf.go:308: check "e11.example.com" 0 0 - spf.go:330: dns record "v=spf1 a:err.example.com a:err1.example.com a:err2.example.com ?all" - spf.go:747: masks on "a:err.example.com", "e11.example.com": "err.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a:err1.example.com", "e11.example.com": "err1.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:747: masks on "a:err2.example.com", "e11.example.com": "err2.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:378: void lookup limit reached - yml_test.go:260: success: permerror, void lookup limit reached [void-over-limit] yml_test.go:251: test include-loop yml_test.go:253: checkhost 1.2.3.4 foo@e2.example.com spf.go:308: check "e2.example.com" 0 0 @@ -5236,13 +5281,6 @@ spf.go:401: "include:e2.example.com" permerror, lookup limit reached spf.go:401: "include:e3.example.com" permerror, lookup limit reached yml_test.go:260: success: permerror, lookup limit reached [include-loop] - yml_test.go:251: test mx-limit - yml_test.go:253: checkhost 1.2.3.5 foo@e4.example.com - spf.go:308: check "e4.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] - spf.go:411: "mx" permerror, too many MX records - yml_test.go:260: success: permerror, too many MX records [mx-limit] yml_test.go:251: test ptr-limit yml_test.go:253: checkhost 1.2.3.5 foo@e5.example.com spf.go:308: check "e5.example.com" 0 0 @@ -5268,27 +5306,32 @@ spf.go:768: a match: 1.2.3.12, 1.2.3.12, [, ] spf.go:406: "a" pass, matched a yml_test.go:260: success: pass, matched a [false-a-limit] - yml_test.go:251: test mech-at-limit - yml_test.go:253: checkhost 1.2.3.4 foo@e6.example.com - spf.go:308: check "e6.example.com" 0 0 - spf.go:330: dns record "v=spf1 a mx a mx a mx a mx a ptr ip4:1.2.3.4 -all" - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:780: masks on "mx", "e6.example.com": "e6.example.com" [, ] - spf.go:828: mx ips: [1.2.3.8] - spf.go:747: masks on "a", "e6.example.com": "e6.example.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:536: ip match: 1.2.3.4 - spf.go:416: "ip4:1.2.3.4" pass, matched ip - yml_test.go:260: success: pass, matched ip [mech-at-limit] + yml_test.go:251: test mx-limit + yml_test.go:253: checkhost 1.2.3.5 foo@e4.example.com + spf.go:308: check "e4.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "e4.example.com": "e4.example.com" [, ] + spf.go:411: "mx" permerror, too many MX records + yml_test.go:260: success: permerror, too many MX records [mx-limit] + yml_test.go:251: test include-over-limit + yml_test.go:253: checkhost 1.2.3.4 foo@e9.example.com + spf.go:308: check "e9.example.com" 0 0 + spf.go:330: dns record "v=spf1 a include:inc.example.com a ip4:1.2.3.4 -all" + spf.go:747: masks on "a", "e9.example.com": "e9.example.com" [, ] + spf.go:308: check "inc.example.com" 2 0 + spf.go:330: dns record "v=spf1 a a a a a a a a" + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:747: masks on "a", "inc.example.com": "inc.example.com" [, ] + spf.go:444: fallback to neutral + spf.go:747: masks on "a", "e9.example.com": "e9.example.com" [, ] + spf.go:373: lookup limit reached + yml_test.go:260: success: permerror, lookup limit reached [include-over-limit] yml_test.go:251: test void-at-limit yml_test.go:253: checkhost 1.2.3.4 foo@e12.example.com spf.go:308: check "e12.example.com" 0 0 @@ -5300,40 +5343,40 @@ spf.go:397: all: neutral yml_test.go:260: success: neutral, matched all [void-at-limit] yml_test.go:162: suite: Test cases from implementation bugs + yml_test.go:167: domain relay.pair.com + yml_test.go:169: TXT: [v=spf1 ip4:209.68.5.9/32 ip4:209.68.5.15/32 a -all] + yml_test.go:169: A: [192.0.2.131] yml_test.go:167: domain example.org yml_test.go:169: SPF: [v=spf1 mx redirect=_spf.example.com] yml_test.go:169: MX: {10 smtp.example.org} yml_test.go:169: MX: {10 smtp1.example.com} - yml_test.go:167: domain smtp1.example.com - yml_test.go:169: A: [192.0.2.26] - yml_test.go:169: AAAA: [2001:db8:ff0:200::2] - yml_test.go:167: domain _spf.example.com - yml_test.go:169: SPF: [v=spf1 ptr:fe.example.org ptr:sgp.example.com exp=_expspf.example.org -all] - yml_test.go:167: domain _expspf.example.org - yml_test.go:169: 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:167: domain webmail.pair.com - yml_test.go:169: TXT: [v=spf1 ip4:66.39.3.0/24 ip4:209.68.6.94/32] - yml_test.go:167: domain relay.pair.com - yml_test.go:169: TXT: [v=spf1 ip4:209.68.5.9/32 ip4:209.68.5.15/32 a -all] - yml_test.go:169: A: [192.0.2.131] yml_test.go:167: domain smtp.example.org yml_test.go:169: A: [198.51.100.2] yml_test.go:169: AAAA: [2001:db8:ff0:100::3] + yml_test.go:167: domain smtp1.example.com + yml_test.go:169: A: [192.0.2.26] + yml_test.go:169: AAAA: [2001:db8:ff0:200::2] yml_test.go:167: 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:169: PTR: [smtp6-v.fe.example.org] yml_test.go:167: domain smtp6-v.fe.example.org yml_test.go:169: AAAA: [2001:db8:ff0:100::2] + yml_test.go:167: domain _spf.example.com + yml_test.go:169: SPF: [v=spf1 ptr:fe.example.org ptr:sgp.example.com exp=_expspf.example.org -all] + yml_test.go:167: domain b.example.org + yml_test.go:169: CNAME: a.example.org + yml_test.go:167: domain _expspf.example.org + yml_test.go:169: 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:167: domain a.example.org yml_test.go:169: TXT: [Another TXT record.] yml_test.go:169: TXT: [v=spf1 ip4:192.0.2.225 ?include:webmail.pair.com ?include:relay.pair.com -all] yml_test.go:169: TXT: [More TXT records.] yml_test.go:169: TXT: [A third TXT record.] yml_test.go:169: AAAA: [2001:db8:ff0:300::4] - yml_test.go:167: domain b.example.org - yml_test.go:169: CNAME: a.example.org yml_test.go:167: domain mail.example.org yml_test.go:169: SPF: [v=spf1 include:a.example.org include:b.example.org -all] yml_test.go:169: A: [192.0.2.28] + yml_test.go:167: domain webmail.pair.com + yml_test.go:169: TXT: [v=spf1 ip4:66.39.3.0/24 ip4:209.68.6.94/32] yml_test.go:251: test bytes-bug yml_test.go:253: checkhost 2001:db8:ff0:100::2 test@example.org spf.go:308: check "example.org" 0 0 @@ -5374,13 +5417,13 @@ spf.go:397: all: fail spf.go:397: all: fail yml_test.go:260: success: fail, matched all [cname-aliasing] ---- PASS: TestRFC7208 (0.07s) +--- PASS: TestRFC7208 (0.03s) === RUN TestPySPF yml_test.go:162: suite: - yml_test.go:167: domain lyme.eater.example.co.uk.1.2.3.5.spf.example.net - yml_test.go:169: A: [127.0.0.1] yml_test.go:167: domain example.co.uk yml_test.go:169: SPF: [v=spf1 mx/26 exists:%{l}.%{d}.%{i}.spf.example.net -all] + yml_test.go:167: domain lyme.eater.example.co.uk.1.2.3.5.spf.example.net + yml_test.go:169: A: [127.0.0.1] yml_test.go:251: test exists-pass yml_test.go:253: checkhost 1.2.3.5 lyme.eater@example.co.uk spf.go:308: check "example.co.uk" 0 0 @@ -5408,6 +5451,9 @@ spf.go:397: all: fail yml_test.go:260: success: fail, matched all [exists-fail] yml_test.go:162: suite: + yml_test.go:167: domain examplef.com + yml_test.go:169: SPF: [v=spf1 -all] + yml_test.go:169: SPF: [v=spf1 +all] yml_test.go:167: domain examplea.com yml_test.go:169: SPF: [v=spf1 a mx include:b.com] yml_test.go:167: domain exampleb.com @@ -5418,21 +5464,6 @@ yml_test.go:169: SPF: [v=spf1 a:examplea.com:8080] yml_test.go:167: domain examplee.com yml_test.go:169: SPF: [v=spf1 ip4:1.2.3.4:8080] - yml_test.go:167: domain examplef.com - yml_test.go:169: SPF: [v=spf1 -all] - yml_test.go:169: SPF: [v=spf1 +all] - yml_test.go:251: test incloop - yml_test.go:253: checkhost 66.150.186.79 chuckvsr@examplea.com - spf.go:308: check "examplea.com" 0 0 - spf.go:330: dns record "v=spf1 a mx include:b.com" - spf.go:747: masks on "a", "examplea.com": "examplea.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:780: masks on "mx", "examplea.com": "examplea.com" [, ] - spf.go:514: void lookup: nxdomain - spf.go:308: check "b.com" 3 2 - spf.go:314: dns domain not found: lookup : domain not found (for testing) - spf.go:401: "include:b.com" permerror, no DNS record found - yml_test.go:260: success: permerror, no DNS record found [incloop] yml_test.go:251: test badall yml_test.go:253: checkhost 66.150.186.79 chuckvsr@examplec.com spf.go:308: check "examplec.com" 0 0 @@ -5450,6 +5481,18 @@ spf.go:330: dns record "v=spf1 ip4:1.2.3.4:8080" spf.go:416: "ip4:1.2.3.4:8080" permerror, invalid ipX value yml_test.go:260: success: permerror, invalid ipX value [badip] + yml_test.go:251: test incloop + yml_test.go:253: checkhost 66.150.186.79 chuckvsr@examplea.com + spf.go:308: check "examplea.com" 0 0 + spf.go:330: dns record "v=spf1 a mx include:b.com" + spf.go:747: masks on "a", "examplea.com": "examplea.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:780: masks on "mx", "examplea.com": "examplea.com" [, ] + spf.go:514: void lookup: nxdomain + spf.go:308: check "b.com" 3 2 + spf.go:314: dns domain not found: lookup : domain not found (for testing) + spf.go:401: "include:b.com" permerror, no DNS record found + yml_test.go:260: success: permerror, no DNS record found [incloop] yml_test.go:162: suite: yml_test.go:167: domain example3.com yml_test.go:169: SPF: [v=spf1 mx] @@ -5482,15 +5525,6 @@ spf.go:411: "mx" pass, matched mx yml_test.go:260: success: pass, matched mx [nospace2] yml_test.go:162: suite: - yml_test.go:167: domain e2.example.com - yml_test.go:169: CNAME: c1.example.com. - yml_test.go:167: domain c1.example.com - yml_test.go:169: CNAME: c2.example.com. - yml_test.go:167: domain c2.example.com - yml_test.go:169: SPF: [v=spf1 a a:c1.example.com -all] - yml_test.go:169: A: [1.2.3.4] - yml_test.go:167: domain mx1.example.com - yml_test.go:169: yml_test.go:167: domain e3.example.com yml_test.go:169: SPF: [v=spf1 a:mx1.example.com mx:mx1.example.com ~all] yml_test.go:167: domain mail.example.com @@ -5500,6 +5534,23 @@ yml_test.go:169: SPF: [v=spf1 -all] yml_test.go:167: domain e1.example.com yml_test.go:169: SPF: [v=spf1 default=-] + yml_test.go:167: domain e2.example.com + yml_test.go:169: CNAME: c1.example.com. + yml_test.go:167: domain c1.example.com + yml_test.go:169: CNAME: c2.example.com. + yml_test.go:167: domain c2.example.com + yml_test.go:169: SPF: [v=spf1 a a:c1.example.com -all] + yml_test.go:169: A: [1.2.3.4] + yml_test.go:167: domain mx1.example.com + yml_test.go:169: + yml_test.go:251: test emptyMX + yml_test.go:253: checkhost 1.2.3.4 + spf.go:308: check "mail.example.com" 0 0 + spf.go:330: dns record "v=spf1 mx" + spf.go:780: masks on "mx", "mail.example.com": "mail.example.com" [, ] + spf.go:828: mx ips: [] + spf.go:444: fallback to neutral + yml_test.go:260: success: neutral, [emptyMX] yml_test.go:251: test localhost yml_test.go:253: checkhost 127.0.0.1 root@example.com spf.go:308: check "example.com" 0 0 @@ -5524,17 +5575,9 @@ spf.go:514: void lookup: nxdomain spf.go:397: all: softfail yml_test.go:260: success: softfail, matched all [null-cname] - yml_test.go:251: test emptyMX - yml_test.go:253: checkhost 1.2.3.4 - spf.go:308: check "mail.example.com" 0 0 - spf.go:330: dns record "v=spf1 mx" - spf.go:780: masks on "mx", "mail.example.com": "mail.example.com" [, ] - spf.go:828: mx ips: [] - spf.go:444: fallback to neutral - yml_test.go:260: success: neutral, [emptyMX] --- PASS: TestPySPF (0.00s) PASS -ok blitiri.com.ar/go/spf 0.167s +ok blitiri.com.ar/go/spf 0.075s ? blitiri.com.ar/go/spf/internal/dnstest [no test files] create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=golang @@ -5563,12 +5606,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/115519/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/115519/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/28910 and its subdirectories -I: Current time: Fri Apr 28 19:21:48 -12 2023 -I: pbuilder-time-stamp: 1682752908 +I: removing directory /srv/workspace/pbuilder/115519 and its subdirectories +I: Current time: Sat Jun 1 03:45:28 +14 2024 +I: pbuilder-time-stamp: 1717163128