]> source.dussan.org Git - rspamd.git/commitdiff
[Test] RBL: content URLs 3504/head
authorAndrew Lewis <nerf@judo.za.org>
Fri, 2 Oct 2020 11:44:22 +0000 (13:44 +0200)
committerAndrew Lewis <nerf@judo.za.org>
Fri, 2 Oct 2020 11:44:22 +0000 (13:44 +0200)
test/functional/cases/300_rbl.robot
test/functional/configs/plugins.conf
test/functional/configs/rbl.conf
test/functional/messages/content_url.eml [new file with mode: 0644]

index 74b55f4b20cc0696268944bb5c9d441f523cc32a..64fa8aff31dd8feb2822e26093b9598cb5c374c0 100644 (file)
@@ -50,6 +50,14 @@ EMAILBL Compose Map 3
   Scan File  ${TESTDIR}/messages/url16.eml
   Expect Symbol With Exact Options  RSPAMD_EMAILBL  41.black.sanchez.com:email
 
+CONTENT URLS
+  Scan File  ${TESTDIR}/messages/content_url.eml
+  Expect Symbol With Exact Options  URIBL_NOCONTENT  example.org:url
+  Expect Symbol With Option  URIBL_WITHCONTENT  example.com:url
+  Expect Symbol With Option  URIBL_WITHCONTENT  example.org:url
+  Expect Symbol With Option  URIBL_WITHCONTENT  8.8.8.8:url
+  Expect Symbol With Exact Options  URIBL_CONTENTONLY  example.com:url
+
 
 *** Keywords ***
 Rbl Setup
index b1885eeb670e35356a69e9ee1d0b24143f3ee318..35a2ce3470411011143804dc899c285af5d51681 100644 (file)
@@ -710,6 +710,21 @@ options = {
           type = a;
           replies = ["127.0.0.2"];
         },
+        {
+          name = "example.com.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "example.org.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
+        {
+          name = "8.8.8.8.test9.uribl";
+          type = a;
+          replies = ["127.0.0.2"];
+        },
         # TODO: add IPv6 tests
         ];
   }
index 2318f5b81ee06d152db4df9a2d055940aea9928b..2f8cea637901b1f4abdd22956851c7da202f4b8c 100644 (file)
@@ -41,5 +41,22 @@ rbl {
         RSPAMD_EMAILBL = "127.0.0.2";
       }
     }
+    URIBL_NOCONTENT {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      urls = true;
+    }
+    URIBL_WITHCONTENT {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      urls = true;
+      content_urls = true;
+    }
+    URIBL_CONTENTONLY {
+      rbl = "test9.uribl";
+      ignore_defaults = true;
+      content_urls = true;
+      no_ip = true;
+    }
   }
-}
\ No newline at end of file
+}
diff --git a/test/functional/messages/content_url.eml b/test/functional/messages/content_url.eml
new file mode 100644 (file)
index 0000000..c559d2f
--- /dev/null
@@ -0,0 +1,202 @@
+Subject: lo\r
+Content-Type: multipart/mixed; boundary="=_BFgoT7oi_t2JDLtlkNV7Zzc"\r
+MIME-Version: 1.0\r
+\r
+This message is in MIME format.\r
+\r
+--=_BFgoT7oi_t2JDLtlkNV7Zzc\r
+Content-Type: text/plain; charset=utf-8; format=flowed; DelSp=Yes\r
+Content-Disposition: inline\r
+\r
+\r
+lo http://www.example.org bye\r
+\r
+--=_BFgoT7oi_t2JDLtlkNV7Zzc\r
+Content-Type: application/pdf; name=spam3.pdf\r
+Content-Disposition: attachment; size=10322; filename=spam3.pdf\r
+Content-Transfer-Encoding: base64\r
+\r
+JVBERi0xLjUKJcOkw7zDtsOfCjIgMCBvYmoKPDwvTGVuZ3RoIDMgMCBSL0ZpbHRlci9GbGF0ZURl\r
+Y29kZT4+CnN0cmVhbQp4nI2RTUsDMRCG7/kVcxY2zpvNJ4RAq13BW3XBQ/HkF4gV7KV/39lsrV1w\r
+qYTMMExmeN43rEF79UVMrNlEcslpExxFCx09aPeiHi7oc3whZ/emlr1yXkcKodUpJuqf6bIDwVD/\r
+usmMYjKb0oTMbXnsb9WqV+ufee0YyR+2yLyZ22LZDXtq8BxK4zLHoaghleYkept5wcuCzFd8PaTV\r
+ONbVsdpYgIdkpHXChEoFmpA8bRXrQPsJ8d2NYmogbm2FEfK8Fh90/yvuIAvJajunqx0BOwEEKr85\r
+Z5NBEpz/+FRND0eXhgAj0o/3L+3T9WfFe0h7VruJmNEu0tHCwsl/9O8jxJq+AQdrhoQKZW5kc3Ry\r
+ZWFtCmVuZG9iagoKMyAwIG9iagoyNjQKZW5kb2JqCgo3IDAgb2JqCjw8L0xlbmd0aCA4IDAgUi9G\r
+aWx0ZXIvRmxhdGVEZWNvZGUvTGVuZ3RoMSAxMjYxNj4+CnN0cmVhbQp4nOV6a3hb1bXgXufoadmW\r
+ji3JUhRJR1GcxPFDtuU8DEl8ktiy85ZfwUpILNmSLYNtKZLiNEAaU8KjDikGcml4fIOnk8vQXmaQ\r
+SaApl1vcDtDpcLnkzg20lHKbuYR27pSUlKZMhxJ51t46suU0pd/MN//myOectddrr73W2mvvLTmV\r
+OBghhWSc8ETqHwnFu9evrSeE/D0hUNI/lhLX7zLdjPBFQrj/OhAfHHniu7deJURxlhD12cHhwwPf\r
+/eUHKUIKo4QYz0UjofBU2UMeQlwi6lgdRUQgc1iN7R5sL42OpL7ya6ViI7bvwnbHcKw/ROon67B9\r
+Hts1I6GvxFcqtnOELMEmEUdDI5ElTao2bKM+3Vg8lkyFydJZQqpPUXo8EYlvf6LvdWyfI4SfRBzg\r
+h16FCKpom+MVSpVaoy3QFRYV6w1CSanRRP4/upQniIm0KdcTPYmz54KLf45YyeOEzH5MW/PPzPbZ\r
+z/9fWqHJvk6RZ8hZcoK8R/bJBB/xkyFyEDH51w/IPyKWXn6yh3yHTPwZtc+Rc0jP8gXJQ3QkN7z8\r
+5JvkDPnRgl78ZITciba8SN6DOvJjTJUY+RQ05G7yOmr9FHE7bqSKK8bHAAMH8rDvkye542Qrdwkb\r
+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\r
+INkJvaQbNpL1IOFbQtomfG/GNn3XwHoyjnzrEb8B2+sQfzMWTyc+m/DehfdDeCvwznLUIocH3x65\r
+XY3tKpR4G5/AboptQix9b8V2G75b5bcP8S34bpHbW7CNbxIENW7Em9jzVVBIZ+DiNXj7GojX4Ogf\r
+wf9HGP908lPut1cqnM9fefUKt+uT3k+e/4Sv/QT0n4CGXDZc9l8OXo5fnrqsKtB/DIXk1yB8eHGt\r
+8xfrP+j+5/U/7yYf4Mg+qP3A/8H4B+kPlB8A3/1z3uw0zIgztTPxmfGZ8zMXZ67MaMa/P/l97u9e\r
+8Tj1rzhf4Zxndp05eoYPPgv6Z53Pcv4ng09yk0+B/innU56n+Ccer3E+3upwfvOx5c6Lj115jKNf\r
+/DxWJPhegV2wnaxHH+48w886n99ogh04LD0+nXh78N6Fdwzvh/DGcw+yO/H2wHZpLd/7V6B7xPZI\r
+5SN3PnL8EWX8vvH7Ju/jx++dvJd7fuzVMS7pr3DGRiudo60rnVavpVvt5btV2A39umlLX/kKX7BX\r
+cvYi0949tc49rRXOUm9JtxIHrEBGPe/km/hdfIx/iH+VV2s6/A5nO94X/Vf8nOTXFvr0u5y7PLv4\r
+c7MXpcg2F2rbGt86vpXf4qtwtrWudepbna2e1rdbf9H6SauqtxWexj/f875Xfbzkq/D4JJ/D5Vvc\r
+Zus2e03dAui7DV59NwcYaC/p9uhn9Zxe36s/qqdfexFu3AxKOAeT012dlZXbzqlnO7alNf69aXgg\r
+Xd5Jn1L7nrTqgTTp3rO3ZxrgG4F7T5wgm+zb0vWdPemgPbAtHUZAosA4Agb7tJlsCiSTqUp2QWUl\r
+wgfxSSoPViJyfzKLJXN0UpmEJNaoJBOCSsqQbQM+KykNEVQOUHp/ktAHJVZmhah0UlbHhLMPBlj2\r
+/28b/Cp6CmVuZHN0cmVhbQplbmRvYmoKCjggMCBvYmoKNzU0NgplbmRvYmoKCjkgMCBvYmoKPDwv\r
+VHlwZS9Gb250RGVzY3JpcHRvci9Gb250TmFtZS9CQUFBQUErTGliZXJhdGlvblNlcmlmCi9GbGFn\r
+cyA0Ci9Gb250QkJveFstNTQzIC0zMDMgMTI3NyA5ODFdL0l0YWxpY0FuZ2xlIDAKL0FzY2VudCA4\r
+OTEKL0Rlc2NlbnQgLTIxNgovQ2FwSGVpZ2h0IDk4MQovU3RlbVYgODAKL0ZvbnRGaWxlMiA3IDAg\r
+Ugo+PgplbmRvYmoKCjEwIDAgb2JqCjw8L0xlbmd0aCAzMTgvRmlsdGVyL0ZsYXRlRGVjb2RlPj4K\r
+c3RyZWFtCnicXZLLboMwEEX3fIWX6SLilYREQkgJCRKLPlTSDyD2kFoqxjJkwd/XM0NbqQusM+O5\r
+o6trwrI+10ZP4ZsbZAOT6LRRDsbh4SSIG9y1CeJEKC2npaJT9q0NQq9t5nGCvjbdkOdB+O7vxsnN\r
+YnVUww2egvDVKXDa3MXqo2x83Tys/YIezCSioCiEgs7veW7tS9tDSKp1rfy1nua1l/wNXGcLIqE6\r
+ZityUDDaVoJrzR2CPIoKkVdVEYBR/+6SRXLr5Gfr/GjsR6NoUxaeE+JdhZwSJxHyhvt75C1xtkHe\r
+MdNMRpwekfespT0HnsmQj9y/IJ945xa55Bnaf+Z+jHxhPiNXzOgzjphTZPafEbP/FPfE7H93Ql78\r
+J8iL/wOFs6SAMeE7/sQv5MM5Hz09NmWOaWsDv/+DHSyq6PsGy4GcewplbmRzdHJlYW0KZW5kb2Jq\r
+CgoxMSAwIG9iago8PC9UeXBlL0ZvbnQvU3VidHlwZS9UcnVlVHlwZS9CYXNlRm9udC9CQUFBQUEr\r
+TGliZXJhdGlvblNlcmlmCi9GaXJzdENoYXIgMAovTGFzdENoYXIgMjEKL1dpZHRoc1s3NzcgNjEw\r
+IDUwMCAyNTAgNTAwIDI3NyA1MDAgMjc3IDI3NyA3MjIgMjUwIDQ0MyA1MDAgNDQzIDc3NyAyNzcK\r
+NDQzIDM4OSA1MDAgNTAwIDUwMCA1MDAgXQovRm9udERlc2NyaXB0b3IgOSAwIFIKL1RvVW5pY29k\r
+ZSAxMCAwIFIKPj4KZW5kb2JqCgoxMiAwIG9iago8PC9GMSAxMSAwIFIKPj4KZW5kb2JqCgoxMyAw\r
+IG9iago8PC9Gb250IDEyIDAgUgovUHJvY1NldFsvUERGL1RleHRdCj4+CmVuZG9iagoKMSAwIG9i\r
+ago8PC9UeXBlL1BhZ2UvUGFyZW50IDYgMCBSL1Jlc291cmNlcyAxMyAwIFIvTWVkaWFCb3hbMCAw\r
+IDU5NS4zMDM5MzcwMDc4NzQgODQxLjg4OTc2Mzc3OTUyOF0vQW5ub3RzWwo0IDAgUiA1IDAgUiBd\r
+Ci9Hcm91cDw8L1MvVHJhbnNwYXJlbmN5L0NTL0RldmljZVJHQi9JIHRydWU+Pi9Db250ZW50cyAy\r
+IDAgUj4+CmVuZG9iagoKNiAwIG9iago8PC9UeXBlL1BhZ2VzCi9SZXNvdXJjZXMgMTMgMCBSCi9N\r
+ZWRpYUJveFsgMCAwIDU5NSA4NDEgXQovS2lkc1sgMSAwIFIgXQovQ291bnQgMT4+CmVuZG9iagoK\r
+NCAwIG9iago8PC9UeXBlL0Fubm90L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbNzMu\r
+MDQzIDc3MS4zODkgMTk0LjMwNyA3ODUuMTg5XS9BPDwvVHlwZS9BY3Rpb24vUy9VUkkvVVJJKGh0\r
+dHA6Ly93d3cuZXhhbXBsZS5jb20vKT4+Cj4+CmVuZG9iagoKNSAwIG9iago8PC9UeXBlL0Fubm90\r
+L1N1YnR5cGUvTGluay9Cb3JkZXJbMCAwIDBdL1JlY3RbMjE5LjU5MyA3NzEuMzg5IDI4MS4zMDcg\r
+Nzg1LjE4OV0vQTw8L1R5cGUvQWN0aW9uL1MvVVJJL1VSSShodHRwOi8vOC44LjguOC8pPj4KPj4K\r
+ZW5kb2JqCgoxNCAwIG9iago8PC9UeXBlL0NhdGFsb2cvUGFnZXMgNiAwIFIKL09wZW5BY3Rpb25b\r
+MSAwIFIgL1hZWiBudWxsIG51bGwgMF0KL0xhbmcoZW4tWkEpCj4+CmVuZG9iagoKMTUgMCBvYmoK\r
+PDwvQ3JlYXRvcjxGRUZGMDA1NzAwNzIwMDY5MDA3NDAwNjUwMDcyPgovUHJvZHVjZXI8RkVGRjAw\r
+NEMwMDY5MDA2MjAwNzIwMDY1MDA0RjAwNjYwMDY2MDA2OTAwNjMwMDY1MDAyMDAwMzYwMDJFMDAz\r
+MT4KL0NyZWF0aW9uRGF0ZShEOjIwMjAxMDAyMTI1MjU0KzAyJzAwJyk+PgplbmRvYmoKCnhyZWYK\r
+MCAxNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDg5NDMgMDAwMDAgbiAKMDAwMDAwMDAxOSAw\r
+MDAwMCBuIAowMDAwMDAwMzU0IDAwMDAwIG4gCjAwMDAwMDkyMzQgMDAwMDAgbiAKMDAwMDAwOTM4\r
+NCAwMDAwMCBuIAowMDAwMDA5MTM1IDAwMDAwIG4gCjAwMDAwMDAzNzQgMDAwMDAgbiAKMDAwMDAw\r
+ODAwNSAwMDAwMCBuIAowMDAwMDA4MDI2IDAwMDAwIG4gCjAwMDAwMDgyMjEgMDAwMDAgbiAKMDAw\r
+MDAwODYwOSAwMDAwMCBuIAowMDAwMDA4ODU1IDAwMDAwIG4gCjAwMDAwMDg4ODggMDAwMDAgbiAK\r
+MDAwMDAwOTUyNyAwMDAwMCBuIAowMDAwMDA5NjI0IDAwMDAwIG4gCnRyYWlsZXIKPDwvU2l6ZSAx\r
+Ni9Sb290IDE0IDAgUgovSW5mbyAxNSAwIFIKL0lEIFsgPDY4MUNCQ0JEMzlFNEVCM0RBNUE2RjQw\r
+NkM0OEE3NkQzPgo8NjgxQ0JDQkQzOUU0RUIzREE1QTZGNDA2QzQ4QTc2RDM+IF0KL0RvY0NoZWNr\r
+c3VtIC9DMjBCNTdGMTc5QTgxMTNDMjAwNEVFNDk0MTM2ODMwRAo+PgpzdGFydHhyZWYKOTc5OQol\r
+JUVPRgo=\r
+--=_BFgoT7oi_t2JDLtlkNV7Zzc--\r
+\r