diff --git a/pkg/js/helpers.js b/pkg/js/helpers.js index 6afc41e0a..5c4be4b8f 100644 --- a/pkg/js/helpers.js +++ b/pkg/js/helpers.js @@ -919,13 +919,9 @@ function CAA_BUILDER(value) { return r; } -// Split a DKIM string if it is >254 bytes. +// This is a no-op. Long TXT records are handled natively now. function DKIM(arr) { - chunkSize = 255; - var R = []; - for (var i = 0, len = arr.length; i < len; i += chunkSize) - R.push(arr.slice(i, i + chunkSize)); - return R; + return arr; } // Function wrapper for glob() for recursively loading files. diff --git a/pkg/js/parse_tests/018-dkim.json b/pkg/js/parse_tests/018-dkim.json index 0a84a6648..c7bd2aff8 100644 --- a/pkg/js/parse_tests/018-dkim.json +++ b/pkg/js/parse_tests/018-dkim.json @@ -12,8 +12,7 @@ "name": "dkimtest2", "target": "this string is 255 bytes long.hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKZogtjOlHoeY8iZ5o5brlPOsj/a2Q9Bopu1kHxlxrdw7tZVL9FzUMngiIYGrl8dbP7Rvk7TLMoxHxVkRZPBtIpsKIab/gOUoPLQVYbrAmzyguHYBwAApi3H/pvjUsK8+XF0dKY17AR96lokAPqvfBaUb+DSx8zNw2hrYWYVqvCtnxHUGEUhT1bTlEZBptH3jthis is the remainder. it is 156 bytes long.mOhl2JmbsFKy+RoMTwbkk0/meRvcEFWLHkr4MSgbnie6OpQvM4Y51+kO6DUVr3rwjrdVO9wpFt+n/hdQ92TNif17RMJtE5AGaQ6BN3yJQIDAQAB;", "txtstrings": [ - "this string is 255 bytes long.hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKZogtjOlHoeY8iZ5o5brlPOsj/a2Q9Bopu1kHxlxrdw7tZVL9FzUMngiIYGrl8dbP7Rvk7TLMoxHxVkRZPBtIpsKIab/gOUoPLQVYbrAmzyguHYBwAApi3H/pvjUsK8+XF0dKY17AR96lokAPqvfBaUb+DSx8zNw2hrYWYVqvCtnxHUGEUhT1bTlEZBptH3j", - "this is the remainder. it is 156 bytes long.mOhl2JmbsFKy+RoMTwbkk0/meRvcEFWLHkr4MSgbnie6OpQvM4Y51+kO6DUVr3rwjrdVO9wpFt+n/hdQ92TNif17RMJtE5AGaQ6BN3yJQIDAQAB;" + "this string is 255 bytes long.hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKZogtjOlHoeY8iZ5o5brlPOsj/a2Q9Bopu1kHxlxrdw7tZVL9FzUMngiIYGrl8dbP7Rvk7TLMoxHxVkRZPBtIpsKIab/gOUoPLQVYbrAmzyguHYBwAApi3H/pvjUsK8+XF0dKY17AR96lokAPqvfBaUb+DSx8zNw2hrYWYVqvCtnxHUGEUhT1bTlEZBptH3jthis is the remainder. it is 156 bytes long.mOhl2JmbsFKy+RoMTwbkk0/meRvcEFWLHkr4MSgbnie6OpQvM4Y51+kO6DUVr3rwjrdVO9wpFt+n/hdQ92TNif17RMJtE5AGaQ6BN3yJQIDAQAB;" ] } ] diff --git a/pkg/js/parse_tests/018-dkim/foo.com.zone b/pkg/js/parse_tests/018-dkim/foo.com.zone index f8df5c84f..fb1f90101 100644 --- a/pkg/js/parse_tests/018-dkim/foo.com.zone +++ b/pkg/js/parse_tests/018-dkim/foo.com.zone @@ -1,2 +1,2 @@ $TTL 300 -dkimtest2 IN TXT "this string is 255 bytes long.hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKZogtjOlHoeY8iZ5o5brlPOsj/a2Q9Bopu1kHxlxrdw7tZVL9FzUMngiIYGrl8dbP7Rvk7TLMoxHxVkRZPBtIpsKIab/gOUoPLQVYbrAmzyguHYBwAApi3H/pvjUsK8+XF0dKY17AR96lokAPqvfBaUb+DSx8zNw2hrYWYVqvCtnxHUGEUhT1bTlEZBptH3j" "this is the remainder. it is 156 bytes long.mOhl2JmbsFKy+RoMTwbkk0/meRvcEFWLHkr4MSgbnie6OpQvM4Y51+kO6DUVr3rwjrdVO9wpFt+n/hdQ92TNif17RMJtE5AGaQ6BN3yJQIDAQAB;" +dkimtest2 IN TXT "this string is 255 bytes long.hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnKZogtjOlHoeY8iZ5o5brlPOsj/a2Q9Bopu1kHxlxrdw7tZVL9FzUMngiIYGrl8dbP7Rvk7TLMoxHxVkRZPBtIpsKIab/gOUoPLQVYbrAmzyguHYBwAApi3H/pvjUsK8+XF0dKY17AR96lokAPqvfBaUb+DSx8zNw2hrYWYVqvCtnxHUGEUhT1bTlEZBptH3jthis is the remainder. it is 156 bytes long.mOhl2JmbsFKy+RoMTwbkk0/meRvcEFWLHkr4MSgbnie6OpQvM4Y51+kO6DUVr3rwjrdVO9wpFt+n/hdQ92TNif17RMJtE5AGaQ6BN3yJQIDAQAB;" diff --git a/pkg/js/static.go b/pkg/js/static.go index 89daf8986..d948dd234 100644 --- a/pkg/js/static.go +++ b/pkg/js/static.go @@ -212,131 +212,130 @@ var _escData = map[string]*_escFile{ "/helpers.js": { name: "helpers.js", local: "pkg/js/helpers.js", - size: 27896, + size: 27773, modtime: 0, compressed: ` -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 -AA== +H4sIAAAAAAAC/+x9WXcbudHou35FWefGTdo0tXjs5FDD3HC0THSi7ZDUxImuLgOxQRJ2s9EB0KI5Y/m3 +fwdrA71Qss4sL58fZthAoVAoFGoBClCUcwxcMDIV0cHW1s4OnM5gTXPAMREgFoTDjCS4o8qWORfA8hT+ +M6cwxylmSOD/gKCAl3c4VuAShWwBJAWxwMBpzqYYpjTGXR8/YhgWGN2TZA0xvsvnc5LOdYcStqMab7+J +8f02zBI0hxVJEtmeYRQXhEFMGJ6KZA0k5UJW0RnkXOPCQHOR5QLoTLYMqO7Cv2geJQlwQZIEUizppzWj +u8MzyrBsL8me0uVSMQbDdIHSOebdra17xGBK0xn04ZctAACG54QLhhjvwc1tR5XFKZ9kjN6TGAfFdIlI +WimYpGiJTenDge4ixjOUJ2LA5hz6cHN7sLU1y9OpIDQFkhJBUEJ+xq22ISKgqImqDZTVUvdwoImskPKg +JneIRc5SDigFxBhay9kwOGC1INMFrDDDhhLMcAycwkyOLWdyzlieCrJU3L5cpeCGN6OSw8sMCXJHEiLW +Ugw4TTlQBmQGnC4xxGgNPMNTghLIGJ1iruRgRfMkhjvZ639zwnDcLdg2x+KQpjMyzxmOjzShjoFMDUbx +sevPihqsQ3GBV0PL2Jas74BYZ7gDSyyQRUVm0JKlbW865Df0+xCdDy6uB2eR5uyD+q+cbobncvpA4uxB +gbnn4e+p/9pZUZQWs9zNcr5oMTxvH/jjkZgqQzhK+ZURgUcHQWe6174knt59xFMRwcuXEJFsMqXpPWac +0JRHUgX47eU/+d0N4aAvp3eJxESIVk19u8yYmGfPYUwg5po3Mc8e402KV1ouDFsce0tSUgzRI8uV8fxO +S1APoqhTXZG94mcn4FUPfnnw4aeUxdXle1WsXh/crNLx+KwHu52AQI7ZfWW1k3lKGY593VOuEojNsQgV +gs8us+6OEJvz1rJjFr/llbQNlAFG0wUsaUxmBLOOlCsigHBA3W7XwRmMPZiiJJEAKyIWBp8FUjqmZzuV +7MkZJ/c4WVsILZ5SGtgcq25SQRVnYySQE+tJl/AT02Nr2Q4ktmXGYMQQcMKxazSQFJRayCG2pKB+VCvA +r5L/QhbdfLx1XDpwcA91fV2qsZQ6m3TxZ4HT2FDZlUPrwDKk1lM6C0ZXEP1zMLw4vfixZ3p2k6GVUp7y +PMsoEzjuQQSvA/KtBigVR3BkBbxUYwjTS0sPThuLI72kihXVg0OGkcCA4OhiZBB24ZpjZXAzxNASC8w4 +IG7XAqA0luRzT6sfNa1VpT30iPsbVrYm000jgT7sHgCB7327101wOheLAyCvX/sTEkyvB39DyhP9UO1m +X3eD2Dxf4lQ0diLhl9AvAG/I7UE9CcvaXqVMVQxbl6Qx/nw5Uwxpw4t+H97stSvSI2vhNURyycZ4miBp +x5eUyVlCKdB0igNj5vVj9a5PUJUMBaNosH7F0eT4w/j4Qk9suwfXWVyWE0CJdA3XgOIYx1pbHLXaHekh +OPUr5YhhOvNkJcBcJyeTORa6C7MADWWWjRawD2meJBvYtUIcUioKnq2xUOKriJJeJkxRKiHuMORqhLGW +/qNW2/ih3YCzZmnRu4/dYoh91aMs4IK1djv6UwvSG6+FVwxvYK9O6vd+Q3GUNLSbxOTGwJD4FvpegwOp +0xMsIg70HrMVI0LrBq3nu0Zc6qesB2MZNpBllmBFpWppNSAS0wVJ57I5SuaUEbFYQs5xDHfrQkraXThE +aUyU+Kk2mKtYBqWAP6Op0IUSC515+CNuHBXtryqZkBZPMifDvoTqZhJB0LIL4wWGhMqQw3QiEWjvI/Bp +6wdfqwHzJDkoFZ/hVKm7RhUYrOYN8iBDtAs5zH44s+T2ZltStO1JiI5uuHTOR/lsRj5DH7a72/DaYQlh +ZzRPC0hf3N8EaAx9nmHVAagKHwkvTZqcGxWyasRmdq1PYpe7mjrp+roBfvkSEtTvh4MpOwAeDW4ekZ5a +Zkq0Is0ZTHPGcCo1gp11nx7nlRtS7HL+azGZ5c4LtaFnutT0oAFYOdwk7gHpyLXWK8+p9bRDB8ZzZXxf +WTdzuv34ZHB9Nh6Bcc4lMzgWKnTU5rPQKzJER1mWrNWPJIFZLnJmFxnvSnzH0rtUTqOgBfKVjPKnCUYM +ULqGjOF7QnMO9yjJMZcd+g6EaeVCwWq827Q8HtWVvguhDJ2vNNuhhzQen7Xu2z0YYb3lMB6fqU613dMe +kEe2BveiNek1joSMrFv3gdd4D32165POx/QoZ0j5vfeBOjZzZZG3mN+edYVIoA/3B3VBQA1mT/1YrdmH ++6763dr5/63/F79ut274chGv0vXt/23/nx3PwroWTSb23roj0ngiOackhtj0bsgJDGeeEgF9iHhU6eVm +/9bvwEAWlUE0Cn3plXJ8mgrXfs/OohxsrhYO78FeB5Y9eL/bgUUP3r7f3bUrJr+J4khauby7gFew/50r +XpniGF7Bn11p6pW+3XXFa7/4/TtDAbzqQ34jx3AbxLn3bvG5EDEQNLvwrMAVhsxfJX7b30jq4mDpdIuI +tlH4lugTPhwMThI0b6nFXQrUC4FWyyeQar2gpgipHccvfa0d/G52duBwMJgcDk/Hp4eDMxmxEEGmKJHF +aqNSbdX5MEp6Cpr24Pvv4c9tvdnqb7ts280JqY63O7DblhApP6R5qrThLiwxSjnENI2EdE2kwbJbaUqr +eZF9128sl4XFbpDI5ihJ/OmsbAGZ5jX7Pxax2gLK0xjPSIrjyGemA4E3e98yw95uxo0kQ4q1wVWaiIEm +k2QdM3PnJoqVNrut5mEAfVP3Q04SObJoEBneDwaDp2AYDOqQDAYFnrPTwUgj0rsjG5BJ0Bpsstih+/f1 +8HjiITW7Wo/iLtrV9FBURh3Db+mO9+DG8f4mkt1FHSjWr7cBdBNJMqKOVq5I4MHPOcODhCA+Xmc4hFSk +1mEy/xMMpXxG2bJXXo4dRVbHbUjULE/tgCk4b1PBA9DdWxD9dRD4cN5uimmD5GgmSA6nXXaZqiCGGbeu +j3XmkVHZdKlHoiyD3rd0SHw3yjhOna2Htr/TX8//UNXJMb7w1bCqDHmpVyFKOK5ZnTfRIOqAFvMORIcX +g/Pj6NbtD5jO9AaB2/t/9zYUWyOwWnybxNa1qgqtq/q1RHb47u1vLrD895JY9u7tZnl1AM+XVofi22TV +CMO/Ly+OWz/TFE9I3C4EuFLVZJ/9cZV5sGn4/shNH2rw5vdjQy+N2rTq2R81ww4dkDpp+5WXZ6uQ3XAT +duAdLugCtYLDMr2ay4VVuPMP5ZLxh3G56Go8LBeNrk4qRcOfykUXg7Bpg3ZR9W3P97KWdt5RcM2a5bDO +cKthFqcR48ujy5ZIyLLdg1MBfGHPClEKmDG9WaP6sdHFrnS69vb/0n2eQkLz5krVzx+nhKYICTQvlND8 +ETXl+8aaQNv9Rb68w6yGymAVVD1uXna5C32iZPZpTpYCrZl5JfXW77ZG6hNeS1Eqtvw6EJM55tpo6Z8a +7VHVQm0fjbafa5p0x6ZeMyyodwQ1g2jqjI3bCBOS8TvKVMz1OC2Q/qoBK7ZcDaQrqAEuBm6hi5JG8BD0 +G0ywJ4VX4+HTZPBqPKxKoNR3BpFSfhoVZTFmnYzhGWY4neKOWgkdGcaRqTodw5+zRztUCKtdGiX7TBlV +pDXLVkFzM4waTHMPZpTNAHr4mxTqH+u5pSgTTPHJgqmPeriCYRa4KKlvobWiAVYf9XCGjxbSfNbDapZa +UP31vOUwGv6kZThjRC7WdWeFyXwhOhll4lGRHQ1/qgqschSeKa6WimZp1ORtkGjKNtT+0bLG2b0dYiE/ ++rsOVg/WQuqvWpyUOSj5+5myMPr7yZWWhsKWKiv6iJumGtYIgix+tig8wXrOSDrHLGMk3TDlf7BLxvli +ln2DaVTw3sCc5iiKvsmps5OrfaWcoznuAMcJngrKOu7MVDtLU8wEmZEpElhN7PhsVOOAy9JnT6uioHm2 +LGXNED7F37jQQeWeemNROaMcEGxr+G139vN77hwkHCmuWCj1UQtmuVMYCf1dC+wzyjbwy56hJIpcVcPT +S6azpz6XdgC8yPhzG758gSLR6rOOBNU+6fX4cnR1djrWaSgZw1OdMHEqdKy2AgQpfUOzrt4fdfAyqn/Q +gj3+MH6aQzf+MK6RZRkOP3dryspYiRu/j36RClvojB1sjmQ4zBhdqoKcYwb3mN0hQZbdyh6MmRtvopu2 +oMRnYZH34cZrcHtQC14nQ5LWS5PrIXAKd2tF449U5Yk/aRsrIKN2i+0RIrofKUlb29vtJ1NT1qDnH0qe +0mMCd/6hKm/nH35D3+iP9m6Wn+vc4wb35kkuycUTT2UuavaeL0ZFqHZ+PDoe/nQchH7efmYJwN/kKycD +wIs+1CTURQUKoGmyBjSd4kxwoCl2RkWdw6pUl+gbjtP8E0GVbeCnTcNDu3SkVhAyaco98Gg1KZjdOl5M +fotj4V8g5RMhkh7cdwU1yNrlDdgim9yJ7ESguwR7achjdcpxk9CVOppfkPmiB/sdSPHqB8RxD97edkBX +f2er36nq06sevL+9tYhUPvH2HnyFffgKb+HrAXwHX+EdfAX4Cu+3XSZAQlL8WPJIid5N6VVERnAl+CDr +TgIpcqEPJOuqn+GZgioqa+4wsVmD1OUQWdST7hJlGq5TSCGpa+Ln2efL/ZiKFmlXE44e2lrdRp2oVFur +431iLFpN9uaMJI9HcsYdl+RHhU+y8FFOKaAGXpkuHLfk9x/KL0OQxzFF/tN4JpVWH24cVVk3oat2B7wC +uWTabj2ZleOJp1oO5oYKXZkRwFeI2nULX0MboAOI3IHA6Y8Xl0O9MeypZL+0WPOFk9hR6Q8aaiJ1lt+X +VxwmIVcqyh16VQ1nWiXtHFy4CNKeA61ssI8Hwx+Px62KAaqr7gAbe/eNnkiHud1hLEWGhMAs7QUnuT2N +OLQcisjzq8vheDIeDi5GJ5fDc618E6XNtXpyiejK6pbhqza4DFF2fm6iSheR1NqRSZxVv4VIQp/n1/Rm +or9Fj7gmNtWx7OxggQz5hfpWh5SF8dKuTXmE7WqHKhNPQ4ukumd9PfzxuOWJiy5wEhB3/4Fxdp1+Sukq +lQToM0fjD1xOKu1dWSMKwXKHQYZdRxej0fGhIgazpXScY5t3iRjuyYrtbYAjqk7YFN+1W82xECSdQ8vL +SVNZUds03QaA41SyxOvDJKvJiFBfFFKws5nETvhjwG6IBczk8sKOM+6iXNBJnHKOp9BXNMhR1rY6OWlu +Nps1tbNtpjTlVNp/OtdHvdvuwo5H/qNxL8BVgqWel9ouGBNQViJX55fbvD+iMm2X6BOGlJqVMFVSyLs6 +i36Judp2UHm1MeEoy7B0S1JANimXYdV7V/pARom+erUFr+BvBdlb8GonuI7p3POWXoVcICaC9FEaN7pR +Ctjl4Tam4KrrQjb3Nki79XSlBPKJHqrVpi9I3WkVpcaibiXBL9qBfdD1HmwdDM0E76qub292b2FgPXyp +VXx4y5d+2GTvFi4zWY4Sm2xA2aZ2Ts+AveNW5FEHqdU2oxheWVaNpQg05mYh7uU7wyBdF0pTC8Yd9nDJ +DgmOzU0Wc4fbENT1jt+XuUDmWsec3OPUJ6uRNXIwVnZqhlnQJajCrHGG4hfaH72rKbFb2ZG/lRNnlglv +/fKgITqedDnrVBORF3G2tENFGPg8Y2T8Gg2pGb5A99gbrLsTpVlfbilx24kClJpbNGpNeZftTHZn3WZJ +c1Tve8ja8m7cMKozoNab9Ns90cF9Ul5VycP15iOQppo5aZyNuqDOATepo+AWFY2hXzRREV0FsHpjlcbt +pghiSWOb6lwTO9TfMN2AbmcH9N1sUUitWlRmh622kUqvp7GniF6+9HZ1g6rGns1gPCTBxfEAx0Ethofa +UneD1vPN1BQ386ueQLOZczwcXg57YN2h4GptVIOyWR51dGcEoOzClzcE1D2E2NxQ+eUh3AgoNIJ5OMKf +mcou1feFubE3qEpDljhdszOisitcm8oQVdBbxLoCLx8JdyXIze5tXaxbRW6CXyhHv3o6lD1+XWkVWa1p +HoXglWvLVuH7bKhFVFjQVh2OkE01CNpduEyTNWxsvIkA9aQGz7WKj8qb2pKhfsbiVrCSk0QqfNfN1iZF +VuZGrSIzknEkbQZRVtWTjGCDykLr9Lqmy6OekBY4i3tue3WSJG1inha+kXohJK8xgS4ZM8B+s3dbk5L5 +ZNGqiFi0ASjsePd2Iz63FWxGpjY7EUkqs75Jr6gbuU5X3JQJkDGodwjcLDNOpdTLTI2wPOV2nJ9G2Hw/ +rkTVxt2N4jkVNRn9min1Hg+p1FUf4XCtRNILriSFIA8lw111U2vciYNqE2fUHHgxe2HTsnf3d5TGCfbu +LutL8e6qMa9eJI29e+QvXza6VVLwX/QhOjyZDI+PTofHh+PoifDj4/OrolHdApv9N5ZK48ajpWNOMm7N +QVx3u73V1Jl/Ed77Oqhd+IEbq/Zzmi3Tt2GvOskbwT1HTI3/RT9o/fJlhZcqm/A3IvZ1H6JuBK8fobmk +YcJXP7r2dMi8QlTjgZp1q+u8lR1sfz6yZYDiWEfbrdheNQmvn8g43tsEJjNTozZLVGDSAcR5vsRAMomO +Yc67zsklortVE8vUhDGVuCUIWfx3naaBFqrTPnVvCGl0bjd26wl6yJ6fBs//hBrNMLv+ZZ4YT0mM4Q5x +HIMMpyWpFv6NC7PtGz1cK5givAak31gIEmNU08vad3kkbPA2j4K16eSnJ3D+ocCsp0zNox3nlhds8Non +ecK47FFPZqmDsXqXZMOjQcXjQQxP64PWja/6PDvaUoNvjLOeEGUtm+KrjdFVNbLyo6rSo0TfCNYYc1V2 +SSsek9s1PW983yjq1Ht45pWj+tqoNfpEsoyk8xftqALRfspTCFX9GL5ExvDUbqGTDIrn0JyXY/J1FkJk +vZ0dLtD0E73HbJbQVXdKlzto5y97u+/+/N3uzt7+3vv3uxLTPUG2wUd0j/iUkUx00R3NhWqTkDuG2Hrn +LiGZkbvuQiy9o6arVkyD7dhYvc8iujxLiGhFXRuF7exAxrAQBLM3+ngpuMCk/r2Ob3Zv2/AK9t+9b8Nr +kAV7t+1SyX6l5O1tu/RImz3FzJd+xkGaL9UNZXdBueaKVRSVn0Xy8hQkvpo2ab6svEmn9T78SdJZszP9 +VuqcvyrV8+ZNcE1a0gjnSCy6s4RSpojeUaMtxEhibzn0kg3GPNfsW8furlRC83iWqMdpEoI45j2dioQF +sicrXFFJ0pjckzhHSZHSoW7SnEyuhpcf/jW5PDlRWXNTh3KSMfp53YOIzmYRPKi8qCtZpM4C7hIcl1Fc +NGJIQwQ4rWt/cn121oRhlidJgOP1EJFknqcFLn329MY+9uOzQJ0/GdrN8QedzbQ5TAVxr4uEp1C9kDzz +YkgjpyamXcGxml7TaqdN3Vw82ktqO7lOidQdKBmNzupH5jq5vjj96Xg4GpyNRmd1Q8ktKs6TcCRhJ+mT ++7h4rAs9DCXP16Px5XkHroaXP50eHQ9hdHV8eHpyegjD48PL4RGM/3V1PPK0wsTexCxWwhDr92J/5fuY +qoG7vxh1orbSO+ZutBm4DXpqrqZ5YVRzgp9+STfqbBpXePcLc0FStU3wpFa/78m4eRj4NUQdqcr0aXlB +cXiObVgYBI+1fAzDy/9lZhMzr4dnVf5dD8+k+Tb1b3f3akHe7u5ZqJNh7VVLVWxhLkZ7k+vh2ck/j+qy +LG2dzbYcXZ1Mfrg+PZPrW6BPmBfHUkpPZ4gJ3lNn1eqnfWVtdHViI4OWoHCH4SOVFl9HJBFEbWUDEnSH +E9386GKkP90DNxkjS8TWHq4utAqN+rdIpR4wtOrBPxeYYWjpJ40Vlrb2yql+Ci5PUaLfN7Zum0enNTyK +IhW9SXoEWWJFiozgZDiE55ipxwuVUvJJ0Y8IKo+mYx67Lt7iUUQqb8zgxcssQULjRnFMzMmxfT9Tc2uq +Ht6M/fFOeDb7U6wHPUuQEDjtwQASwoX/rLNubwCMqZWO6AKjeK8HgyVVD3DD9l0+m2EGjNLltj5sVomp +Kq5cYJgRxoXa+XdPh2czmC7Um0OSUZ/FOfo8Ij9jPa4l+kyW+RI4+RkXsev4w9gx7CedYiKJgf137/RB +J8NcJTiksMwTQbKkyH/3xr7/7l3U9kyJJ5Y1pkOrfy2PX76A91mcqOzXpP36wu7OIZCABCMuYB+weaew +4qKaHo3g+edArthXG5WGDK1kZFh8vOj3IYqqqGRdH6IJQyuezRw6bfv0WZLKpl1gJxeeXGnrqPdPMn0q +ZaGlB+YdMcu1g4UVBeVtyZl0B/+yO0WC3Z027DUZgVHbIS5WXrjUtoqX94ysymWjXlD8b465Sgq0j74D +8nr39jTQqoTUslWTZPAWnDUFxWnFbvBQrGvQL8HXpHPu7OhDIhTHjhbJDkOjfUI5jYR6umCZibWR6+Co +b9OMKyZnpcPDsKEQSe3BvY5hxx/GRQcdM2EdYFlHv0znULSffIz/COL2o6G2N+02OpaTrp6JnxE56TpE +0BpTTmt5Vm2zcOoUuJs4CxOsjxCFUochDlcc4FElDYgKHRhiKsodqqLooMSKHzdLebgyy9woSUBlgpTu +KaaoceorU/4opiIvONgm8V9l2+Q4bLT8h4PBBotPaIxnuumUpkK/F0qSYq+4RU06VgE+mZp34XrwA6UJ +Rqk6hMRprP7MAVaXbo32IQzHOxa+K0VVGni3RRXcrPSeKGF4lnMcV7rnPMc9ODPq+HBg//KC3ghI6Er/ +pQsF56PmpZf+oKWdAn0NxYiJNbTanVI4ViSJezAwmIv+pnLMqhMJMUUsruvNZV92N/fnGWNvqhuN8dNN +Y0nANcVOhetPqStTmuKoHRbDTXQQ3R7UoZBjLqFRRfWodJVF5/A56u2wHHUvSo3b8OVLAR0Cl3a1XZW1 +S/0+7G4AMyPZVO1j0hkaNd6Ov0Kr3o6cc5wKtpZFmnLKCgF7rutRnhq5NsvvSnlVbtlWH5VS6ulwMAjV +U6SaRR3wkHSC5x99G9Xw4NTTUberfyOgVoDbDScfHUg8f8OXAn0mkuBUn4U8kUKJoKBQft2Q23b7YKtp +SXwDYZ5gPZ84JTudMlqfyLIhGdu3oV0S9RlN556p1O99L9ThegwywL7HyRpSuvIf0/zH6XkLsfJfCUHM +9eNyVFcMZRlmiiHzhN612uqn98csIKFI2Y0ZSbAOGwe88JRdpy2Swo+0Lakn5vlomgpGE0DpeoXWHfVk +smxnsu9VFKvtgs4T5SglYv1musDTTyaWu6AC9yxhhJsLiqmKUJkMJPM0plN1vIdjWOBEjcWl9Y6oyj4n +yrlfS5roKgVG+Keun3ir1MHE9OI2bUzex/4t9GH7I98+MOeUUyzXuKKEpNMkjzF0P3LLHvdKuPyEvqJd +Z1600jxJOgVm/81772RQ42k4GjS0thRQQ+64qjPzPMLC7fAatsv+Ds9OJZFEOp/cs21npxP3+rRNM7bd +uyXzCcuBQ7m+9EirNK43n/D6Vm1GbrtTkO2ycvMAHU71XdE1/qHLyfH48O/lP5Y0w2K6aGB2d6pee74a +XJweqgOc/wkAAP//kV6oFn1sAAA= `, }, } diff --git a/pkg/normalize/validate.go b/pkg/normalize/validate.go index b504e0c9e..e8650faf7 100644 --- a/pkg/normalize/validate.go +++ b/pkg/normalize/validate.go @@ -176,17 +176,6 @@ func checkTargets(rec *models.RecordConfig, domain string) (errs []error) { return } -// TODO: Write a test. -func checkTxtStrings(rc *models.RecordConfig) error { - for i := range rc.TxtStrings { - l := len([]byte(rc.TxtStrings[i])) - if l > 255 { - return fmt.Errorf("length of TxtStrings[%d] is %d, which is >255", i, l) - } - } - return nil -} - func transformCNAME(target, oldDomain, newDomain string) string { // Canonicalize. If it isn't a FQDN, add the newDomain. result := dnsutil.AddOrigin(target, oldDomain) @@ -327,11 +316,6 @@ func ValidateAndNormalizeConfig(config *models.DNSConfig) (errs []error) { if errs2 := checkTargets(rec, domain.Name); errs2 != nil { errs = append(errs, errs2...) } - if rec.HasFormatIdenticalToTXT() { // i.e. if it is a TXT or SPF record. - if err := checkTxtStrings(rec); err != nil { - errs = append(errs, err) - } - } // Canonicalize Targets. if rec.Type == "CNAME" || rec.Type == "MX" || rec.Type == "NAPTR" || rec.Type == "NS" || rec.Type == "SRV" {