]> git.pld-linux.org Git - packages/exim-surbl.git/blame - public_resolvers.patch
Release 5. Don't treat blacklisted queries as listed entries.
[packages/exim-surbl.git] / public_resolvers.patch
CommitLineData
228a95e4 1diff -urN exim_surbl-2.3.org/exim_surbl.pl exim_surbl-2.3/exim_surbl.pl
5fb1dd36
AM
2--- exim_surbl-2.3.org/exim_surbl.pl 2021-04-29 14:34:34.375671999 +0200
3+++ exim_surbl-2.3/exim_surbl.pl 2021-04-29 14:34:22.831973042 +0200
4@@ -21,6 +21,27 @@
b59ee9ff
AM
5 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
6
5fb1dd36 7 use Config::IniFiles;
b59ee9ff 8+use Net::DNS::Resolver;
5fb1dd36 9+use Socket;
b59ee9ff 10+
5fb1dd36
AM
11+sub getips
12+{
13+ my @params = @_;
14+ my @addresses;
15+ my $res = Net::DNS::Resolver->new(
16+ nameservers => ['8.8.8.8', '8.8.4.4', '1.1.1.1', '1.0.0.1'],
17+ );
18+ my $reply = $res->search($params[0], 'A');
19+ if ($reply) {
20+ foreach my $rr ($reply->answer) {
21+ next unless $rr->type eq "A";
22+ #print $rr->address, "\n";
23+ push @addresses, inet_aton($rr->address);
24+
25+ }
26+ }
27+ return @addresses;
28+}
29
b59ee9ff
AM
30 sub surblspamcheck
31 {
5fb1dd36 32@@ -93,7 +114,7 @@
228a95e4
AM
33 # the return message for the SURBL lookup.
34 my @params = @_;
35 my $surbldomain = ".multi.surbl.org";
36- @dnsbladdr=gethostbyname($params[0].$surbldomain);
5fb1dd36
AM
37+ @dnsbladdr=getips($params[0].$surbldomain);
38 # If gethostbyname() returned anything, build a return message.
39 $return_string = "";
40 if (scalar(@dnsbladdr) != 0) {
41@@ -127,12 +148,12 @@
42 # the return message for the URIBL check.
43 my @params = @_;
44 my $uribldomain = ".black.uribl.com";
45- @dnsbladdr=gethostbyname($params[0].$uribldomain);
46+ @dnsbladdr=getips($params[0].$uribldomain);
47 # If gethostbyname() returned anything, build a return message.
48 $return_string = "";
49 if (scalar(@dnsbladdr) != 0) {
50 $return_string = "Blacklisted URL in message. (".$params[0].") in";
51- @ipaddr = unpack('C4',($dnsbladdr[4])[0]);
52+ @ipaddr = unpack('C4',($dnsbladdr[0])[0]);
53 if ($ipaddr[3] & 8) {
54 $return_string .= " [red]";
55 }
56@@ -152,7 +173,7 @@
57 # the return message for the Spamhaus DBL check.
58 my @params = @_;
59 my $dbldomain = ".dbl.spamhaus.org";
60- @dnsbladdr=gethostbyname($params[0].$dbldomain);
61+ @dnsbladdr=getips($params[0].$dbldomain);
228a95e4
AM
62 # If gethostbyname() returned anything, build a return message.
63 $return_string = "";
64 if (scalar(@dnsbladdr) != 0) {
5fb1dd36
AM
65diff -urN exim_surbl-2.3.org/public_resolvers.patch exim_surbl-2.3/public_resolvers.patch
66--- exim_surbl-2.3.org/public_resolvers.patch 1970-01-01 01:00:00.000000000 +0100
67+++ exim_surbl-2.3/public_resolvers.patch 2021-04-29 14:20:15.018469445 +0200
68@@ -0,0 +1,64 @@
69+diff -urN exim_surbl-2.3.org/exim_surbl.pl exim_surbl-2.3/exim_surbl.pl
70+--- exim_surbl-2.3.org/exim_surbl.pl 2012-03-07 04:16:45.000000000 +0100
71++++ exim_surbl-2.3/exim_surbl.pl 2021-04-29 14:20:06.491533142 +0200
72+@@ -19,6 +19,27 @@
73+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
74+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
75+ # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
76++use Net::DNS::Resolver;
77++use Socket;
78++
79++sub getips
80++{
81++ my @params = @_;
82++ my @addresses;
83++ my $res = Net::DNS::Resolver->new(
84++ nameservers => ['8.8.8.8', '8.8.4.4', '1.1.1.1', '1.0.0.1'],
85++ );
86++ my $reply = $res->search($params[0], 'A');
87++ if ($reply) {
88++ foreach my $rr ($reply->answer) {
89++ next unless $rr->type eq "A";
90++ #print $rr->address, "\n";
91++ push @addresses, inet_aton($rr->address);
92++ return $rr->address;
93++ }
94++ }
95++ return @addresses;
96++}
97+
98+ sub surblspamcheck
99+ {
100+@@ -91,7 +112,7 @@
101+ # the return message for the SURBL lookup.
102+ my @params = @_;
103+ my $surbldomain = ".multi.surbl.org";
104+- @dnsbladdr=gethostbyname($params[0].$surbldomain);
105++ @dnsbladdr=getips($params[0].$surbldomain);
106+ # If gethostbyname() returned anything, build a return message.
107+ $return_string = "";
108+ if (scalar(@dnsbladdr) != 0) {
109+@@ -125,12 +146,12 @@
110+ # the return message for the URIBL check.
111+ my @params = @_;
112+ my $uribldomain = ".black.uribl.com";
113+- @dnsbladdr=gethostbyname($params[0].$uribldomain);
114++ @dnsbladdr=getips($params[0].$uribldomain);
115+ # If gethostbyname() returned anything, build a return message.
116+ $return_string = "";
117+ if (scalar(@dnsbladdr) != 0) {
118+ $return_string = "Blacklisted URL in message. (".$params[0].") in";
119+- @ipaddr = unpack('C4',($dnsbladdr[4])[0]);
120++ @ipaddr = unpack('C4',($dnsbladdr[0])[0]);
121+ if ($ipaddr[3] & 8) {
122+ $return_string .= " [red]";
123+ }
124+@@ -150,7 +171,7 @@
125+ # the return message for the Spamhaus DBL check.
126+ my @params = @_;
127+ my $dbldomain = ".dbl.spamhaus.org";
128+- @dnsbladdr=gethostbyname($params[0].$dbldomain);
129++ @dnsbladdr=getips($params[0].$dbldomain);
130+ # If gethostbyname() returned anything, build a return message.
131+ $return_string = "";
132+ if (scalar(@dnsbladdr) != 0) {
This page took 0.119417 seconds and 4 git commands to generate.