/[smeserver]/rpms/qpsmtpd/sme8/0017-added-p0f-support-to-greylist-plugin.patch
ViewVC logotype

Annotation of /rpms/qpsmtpd/sme8/0017-added-p0f-support-to-greylist-plugin.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (hide annotations) (download)
Sun Nov 14 20:50:20 2010 UTC (14 years ago) by slords
Branch: MAIN
CVS Tags: qpsmtpd-0_84-3_el5_sme, qpsmtpd-0_84-6_el5_sme, qpsmtpd-0_84-2_el5_sme, qpsmtpd-0_84-5_el5_sme, qpsmtpd-0_84-8_el5_sme, qpsmtpd-0_84-9_el5_sme, qpsmtpd-0_84-4_el5_sme, qpsmtpd-0_84-7_el5_sme, HEAD
* Sun Nov 14 2010 <slords@mail.com> 0.84-2.sme
- Sync with upstream git repo.
- Fix require_resolvable_fromhost doesn't work [SME: 6369]
- Fix TLS security defaults [SME: 6366]
- Fix fatal errors when mail has no headers [SME: 6345]

1 slords 1.1 From b81d464c872867f8df65847f522db6a0df4a96bf Mon Sep 17 00:00:00 2001
2     From: Matt Simerson <matt@tnpi.net>
3     Date: Tue, 11 May 2010 01:31:52 -0400
4     Subject: added p0f support to greylist plugin
5    
6     - these changes are in the previous TCPLOCAL patch. Documented here.
7     added p0f config option
8     added POD docs to explain usage
9     modified $dbdir selection logic. The previous logic failed when QPHOME was
10     not selected (as is the case when tests are being run).
11     Added '.' as the dir of last resort for $dbdir selection (others $EMPTY/dir
12     dumped greylisting database in / )
13    
14     - These changes are included in this patch -
15     Added t/plugin_tests/greylisting, with greylist logic testing (tests are
16     disabled by default, as greylisting is disabled in config.sample/plugins)
17     Added example entry in config.sample/plugins
18    
19     Signed-off-by: Robert <rspier@pobox.com>
20     ---
21     config.sample/plugins | 1 +
22     t/plugin_tests/greylisting | 111 ++++++++++++++++++++++++++++++++++++++++++++
23     2 files changed, 112 insertions(+), 0 deletions(-)
24     create mode 100644 t/plugin_tests/greylisting
25    
26     diff --git a/config.sample/plugins b/config.sample/plugins
27     index 0b51124..6a01ba0 100644
28     --- a/config.sample/plugins
29     +++ b/config.sample/plugins
30     @@ -34,6 +34,7 @@ check_badrcptto
31     check_spamhelo
32    
33     # sender_permitted_from
34     +# greylisting p0f genre,windows
35    
36     auth/auth_flat_file
37     auth/authdeny
38     diff --git a/t/plugin_tests/greylisting b/t/plugin_tests/greylisting
39     new file mode 100644
40     index 0000000..38ed08b
41     --- /dev/null
42     +++ b/t/plugin_tests/greylisting
43     @@ -0,0 +1,111 @@
44     +use Qpsmtpd::Address;
45     +
46     +my $test_email = 'user@example.com';
47     +my $address = Qpsmtpd::Address->new( "<$test_email>" );
48     +
49     +my @greydbs = qw( denysoft_greylist.dbm denysoft_greylist.dbm.lock );
50     +foreach ( @greydbs ) {
51     + unlink $_ if -f $_;
52     +};
53     +
54     +sub register_tests {
55     + my $self = shift;
56     + $self->register_test("test_greylist_p0f_genre_miss", 1);
57     + $self->register_test("test_greylist_p0f_genre_hit", 1);
58     + $self->register_test("test_greylist_p0f_distance_hit", 1);
59     + $self->register_test("test_greylist_p0f_distance_miss", 1);
60     + $self->register_test("test_greylist_p0f_link_hit", 1);
61     + $self->register_test("test_greylist_p0f_link_miss", 1);
62     + $self->register_test("test_greylist_p0f_uptime_hit", 1);
63     + $self->register_test("test_greylist_p0f_uptime_miss", 1);
64     +}
65     +
66     +sub test_greylist_p0f_genre_miss {
67     + my $self = shift;
68     +
69     + $self->{_greylist_config}{'p0f'} = 'genre,Linux';
70     + $self->connection->notes('p0f'=> { genre => 'windows', link => 'dsl' } );
71     + my $r = $self->rcpt_handler( $self->qp->transaction );
72     +
73     + ok( $r == 909, 'p0f genre miss');
74     +}
75     +
76     +sub test_greylist_p0f_genre_hit {
77     + my $self = shift;
78     +
79     + $self->{_greylist_config}{'p0f'} = 'genre,Windows';
80     + $self->connection->notes('p0f'=> { genre => 'windows', link => 'dsl' } );
81     + $self->qp->transaction->sender( $address );
82     + my $r = $self->rcpt_handler( $self->qp->transaction );
83     +
84     + ok( $r eq 'This mail is temporarily denied', 'p0f genre hit');
85     +}
86     +
87     +sub test_greylist_p0f_distance_hit {
88     + my $self = shift;
89     +
90     + $self->{_greylist_config}{'p0f'} = 'distance,8';
91     + $self->connection->notes('p0f'=> { distance=>9 } );
92     + $self->qp->transaction->sender( $address );
93     + my $r = $self->rcpt_handler( $self->qp->transaction );
94     +
95     + ok( $r eq 'This mail is temporarily denied', 'p0f distance hit');
96     +}
97     +
98     +sub test_greylist_p0f_distance_miss {
99     + my $self = shift;
100     +
101     + $self->{_greylist_config}{'p0f'} = 'distance,8';
102     + $self->connection->notes('p0f'=> { distance=>7 } );
103     + $self->qp->transaction->sender( $address );
104     + my $r = $self->rcpt_handler( $self->qp->transaction );
105     +
106     + ok( $r == 909, 'p0f distance miss');
107     +}
108     +
109     +sub test_greylist_p0f_link_hit {
110     + my $self = shift;
111     +
112     + $self->{_greylist_config}{'p0f'} = 'link,dsl';
113     + $self->connection->notes('p0f'=> { link=>'DSL' } );
114     + $self->qp->transaction->sender( $address );
115     + my $r = $self->rcpt_handler( $self->qp->transaction );
116     +
117     + ok( $r eq 'This mail is temporarily denied', 'p0f link hit');
118     +}
119     +
120     +sub test_greylist_p0f_link_miss {
121     + my $self = shift;
122     +
123     + $self->{_greylist_config}{'p0f'} = 'link,dsl';
124     + $self->connection->notes('p0f'=> { link=>'Ethernet' } );
125     + $self->qp->transaction->sender( $address );
126     + my $r = $self->rcpt_handler( $self->qp->transaction );
127     +
128     + ok( $r == 909, 'p0f link miss');
129     +}
130     +
131     +sub test_greylist_p0f_uptime_hit {
132     + my $self = shift;
133     +
134     + $self->{_greylist_config}{'p0f'} = 'uptime,100';
135     + $self->connection->notes('p0f'=> { uptime=> 99 } );
136     + $self->qp->transaction->sender( $address );
137     + my $r = $self->rcpt_handler( $self->qp->transaction );
138     +
139     + ok( $r eq 'This mail is temporarily denied', 'p0f uptime hit');
140     +}
141     +
142     +sub test_greylist_p0f_uptime_miss {
143     + my $self = shift;
144     +
145     + $self->{_greylist_config}{'p0f'} = 'uptime,100';
146     + $self->connection->notes('p0f'=> { uptime=>500 } );
147     + $self->qp->transaction->sender( $address );
148     + my $r = $self->rcpt_handler( $self->qp->transaction );
149     +
150     + ok( $r == 909, 'p0f uptime miss');
151     +}
152     +
153     +
154     +
155     --
156     1.7.2.2
157    

admin@koozali.org
ViewVC Help
Powered by ViewVC 1.2.1 RSS 2.0 feed