plugin/wordfilter: all global variables must be set in create_config

This commit is contained in:
Daniel Brahneborg 2025-04-07 08:35:36 +02:00
parent 0b65cf3531
commit 3fc545b7b0

View file

@ -3,10 +3,9 @@ use POSIX qw(strftime);
my $filename; my $filename;
my @words; my @words;
my $read_date = 0; my $read_date;
my $debug;
my $debug = 1; my $logfile;
my $logfile = "/tmp/wordfilter.log";
sub dolog { sub dolog {
my ($str) = @_; my ($str) = @_;
@ -37,15 +36,18 @@ sub refresh_words {
sub create_config { sub create_config {
my ($name, $configdata) = @_; my ($name, $configdata) = @_;
$filename = $configdata; $filename = $configdata;
$read_date = 0;
$debug = 1;
$logfile = "/tmp/wordfilter.log";
} }
sub check { sub check {
my ($msg) = @_; my ($id, $msg) = @_;
refresh_words; refresh_words;
foreach my $word (@words) { foreach my $word (@words) {
next unless ($msg =~ /\b${word}\b/); next unless ($msg =~ /\b${word}\b/);
dolog("reject message " . $q->{'ID'} . " containing `" . $word . "' in message: `" . $msg . "'\n"); dolog("reject message " . $id . " containing `" . $word . "' in message: `" . $msg . "'\n");
return 8; return 8;
} }
return 0; return 0;
@ -53,8 +55,8 @@ sub check {
sub before_receive { sub before_receive {
my ($request, $response) = @_; my ($request, $response) = @_;
my $q = ${$request}{'qe'}; my $q = ${$request}{qe};
my $msg = lc($q->{'MESSAGE'}); my $msg = lc($q->{MESSAGE});
return check($msg); return check($q->{ID}, $msg);
} }