]>
Commit | Line | Data |
---|---|---|
228a95e4 | 1 | diff -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 |
65 | diff -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) { |