4
if (-e 't/test_dir') { # if we are running "t/rule_tests.t", kluge around ...
8
if (-e 'test_dir') { # running from test directory, not ..
9
unshift(@INC, '../blib/lib');
10
unshift(@INC, '../lib');
15
if (-e 'test_dir') { # running from test directory, not ..
19
use lib '.'; use lib 't';
20
use SATest; sa_t_init("trust_path");
23
# TODO: 3.1.x does not support redefining the ruleset, which this
24
# test requires; therefore disable it.
26
#use Test; BEGIN { plan tests => 24 };
27
use Test; BEGIN { plan tests => 0 }; exit;
34
# ---------------------------------------------------------------------------
38
trusted_networks 1.1/16
39
Received: from sender.net (1.1.1.2) by receiver.net
40
with SMTP; 10 Nov 2005 00:00:00 -0000
44
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
49
# ---------------------------------------------------------------------------
53
trusted_networks 1.1/16
54
internal_networks 1.1/16
55
Received: from sender.net (1.1.1.2) by receiver.net
56
with SMTP; 10 Nov 2005 00:00:00 -0000
60
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
65
# ---------------------------------------------------------------------------
67
# with an unset trusted_networks, internal_networks is documented to
71
internal_networks 1.1/16
72
Received: from sender.net (1.1.1.2) by receiver.net
73
with SMTP; 10 Nov 2005 00:00:00 -0000
77
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
82
# ---------------------------------------------------------------------------
86
trusted_networks 1.1/16 1.2/16
87
internal_networks 1.2/16
88
Received: from sender.net (1.1.1.2) by receiver.net
89
with SMTP; 10 Nov 2005 00:00:00 -0000
93
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=0 id= auth= ]
98
# ---------------------------------------------------------------------------
100
# this should be a lint error; internal_networks is not a subset of trusted.
101
# note: "intl=1" in expected, because the error means that the internal_networks
102
# line is ignored and the default setting is intl==trusted.
105
trusted_networks 1.1/16
106
internal_networks 1.2.8/24
107
Received: from sender.net (1.1.1.2) by receiver.net
108
with SMTP; 10 Nov 2005 00:00:00 -0000
113
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
118
# ---------------------------------------------------------------------------
120
# this should be a lint error; internal_networks is not a subset of trusted.
123
trusted_networks 1.1.1/24
124
internal_networks 1.1/16
125
Received: from sender.net (1.1.1.2) by receiver.net
126
with SMTP; 10 Nov 2005 00:00:00 -0000
131
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
136
# ---------------------------------------------------------------------------
138
# this should be a lint error; internal_networks is not a subset of trusted.
139
# note: "intl=1" in expected, because the error means that the internal_networks
140
# line is ignored and the default setting is intl==trusted.
143
trusted_networks !1.1.1.1 1.1/16
144
internal_networks 1.1.1.1
145
Received: from sender.net (1.1.1.2) by receiver.net
146
with SMTP; 10 Nov 2005 00:00:00 -0000
151
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
156
# ---------------------------------------------------------------------------
158
# internal_networks are valid, even if the !4.3.2.1 is pointless
161
trusted_networks 1.1/16
162
internal_networks !4.3.2.1 1.1/16
163
Received: from sender.net (1.1.1.2) by receiver.net
164
with SMTP; 10 Nov 2005 00:00:00 -0000
168
Trusted: [ ip=1.1.1.2 rdns=sender.net helo=sender.net by=receiver.net ident= envfrom= intl=1 id= auth= ]
173
# ---------------------------------------------------------------------------
179
my $hdrs = shift @data;
180
my $expected = shift @data;
181
last unless defined $expected;
183
my $test_failure = 0;
185
my $conf = "add_header all Untrusted _RELAYSUNTRUSTED_\n".
186
"add_header all Trusted _RELAYSTRUSTED_\n".
187
"clear_trusted_networks\n".
188
"clear_internal_networks\n";
190
$hdrs =~ s/^\s*(trusted_networks\s+[^\n]*)//gs;
191
if ($1) { $conf .= $1."\n"; }
192
$hdrs =~ s/^\s*(internal_networks\s+[^\n]*)//gs;
193
if ($1) { $conf .= $1."\n"; }
197
my $sa = create_saobj({ userprefs_filename => "log/tst.cf" });
200
$sa->{lint_callback} = sub {
202
print "lint warning: $opts{msg}\n";
205
if ($expected =~ s/^\s*Lint-Error\s*//) {
206
print "[lint warning expected here...]\n";
207
ok ($sa->lint_rules() != 0) or $test_failure=1;
209
ok ($sa->lint_rules() == 0) or $test_failure=1;
212
my $msg = $hdrs."\n\n[no body]\n";
214
my $status = $sa->check_message_text ($msg);
215
my $result = $status->rewrite_mail();
217
# warn "JMD $result";
218
$result =~ s/\n[ \t]+/ /gs;
219
$result =~ /(?:\n|^)X-Spam-Trusted: ([^\n]*)\n/s;
221
$result =~ /(?:\n|^)X-Spam-Untrusted: ([^\n]*)\n/s;
224
my $relays = "Trusted: $relays_t Untrusted: $relays_u";
225
$relays =~ s/\s+/ /gs; $expected =~ s/\s+/ /gs;
226
$relays =~ s/^ //gs; $expected =~ s/^ //gs;
227
$relays =~ s/ $//gs; $expected =~ s/ $//gs;
229
ok ($relays eq $expected) or $test_failure = 1;
232
print "conf: ", ('-' x 67), "\n", $conf;
233
print "hdr sample: ", ('-' x 67), $hdrs, ('-' x 78), "\n\n";
234
print "expected: $expected\n";
235
print "got : $relays\n\n";
237
die "dying on first test failure";