=head1 NAME
p0fOS - add message header (p0fIP2OS) indicating the operating system of the most recent untrusted relay.
=head1 SYNOPSIS
loadplugin Mail::SpamAssassin::Plugin::p0fOS /usr/local/etc/mail/spamassassin/plugins/p0fOS.pm
header OS_LINUX p0fIP2OS =~ /Linux/i
describe OS_LINUX Relay runs on Linux
score OS_LINUX -0.1
header OS_WINDOWS p0fIP2OS =~ /Windows/i
describe OS_WINDOWS Relay runs on Windows
score OS_WINDOWS 0.5
=head1 REQUIREMENT
This plugin requires uses the p0f stuff from http://whatever.frukt.org.
=cut
package Mail::SpamAssassin::Plugin::p0fOS;
use strict;
use base 'Mail::SpamAssassin::Plugin';
use p0fIP2OS;
sub dbg {
my $msg = shift;
Mail::SpamAssassin::Plugin::dbg(sprintf("p0f: $msg",@_));
}
sub extract_metadata {
my ($self,$pars) = @_;
my @relays = @{$pars->{msg}->{metadata}->{relays_untrusted}};
while (@relays) {
my $relay = shift @relays;
next unless ($relay->{ip});
dbg("IP $relay->{ip}");
my ($os,$ver) = ip2osver($relay->{ip});
$os = 'Unknown' unless ($os);
$os .= " $ver" if ($ver);
dbg("OS $os");
$pars->{msg}->put_metadata('p0fIP2OS',$os);
last;
}
return 1;
}
1;
(2008-01-11)