Disable auto-reconnect, and handle db/dbh centrally-ish

This commit is contained in:
2025-07-01 20:11:57 +02:00
parent 999bc6c8c8
commit 7b7083adca
6 changed files with 51 additions and 41 deletions

View File

@@ -18,8 +18,8 @@ sub new {
sub recent_hostile {
my $self = shift;
$self->{'dbh'} = $self->{'config'}->get_dbh unless($self->{'dbh'});
my $sth = $self->{'dbh'}->prepare("
my $dbh = $self->{'config'}->db_connect();
my $sth = $dbh->prepare("
SELECT COUNT(1)
FROM reject
WHERE time > DATE_SUB(NOW(), INTERVAL 5 MINUTE)")
@@ -48,7 +48,7 @@ sub checker {
#### Mapping between checks and column in db
my %values = ('reject' => 'ip','blocks' => 'ip', 'iso' => 'iso', 'asn' => 'asn', 'block_iso' => 'iso', 'block_asn' => 'asn');
my %keys = ('reject' => $host, 'blocks' => $host, 'iso' => $iso, 'block_iso' => $iso, 'asn' => $asn, 'block_asn' => $asn);
$self->{'dbh'} = $self->{'config'}->get_dbh unless($self->{'dbh'});
my $dbh = $self->{'config'}->db_connect();
foreach my $time(@times) {
foreach my $c(keys %checks) {
my $fromcheck = $self->check($keys{$c},$time,$values{$c},$checks{$c});
@@ -72,8 +72,9 @@ sub check {
my $retval;
my $rows;
my $msg;
my $dbh = $self->{'config'}->db_connect();
if($host && $allowed_time && $value && $table) {
my $sth = $self->{'dbh'}->prepare("
my $sth = $dbh->prepare("
SELECT COUNT(1)
FROM $table
WHERE $value = ? AND