You've already forked macports-ports
mirror of
https://github.com/macports/macports-ports.git
synced 2026-07-12 18:20:25 -07:00
4b9b33446b
- Make database table names configurable. git-svn-id: https://svn.macports.org/repository/macports/trunk/dports@98805 d073be05-634f-4543-b044-5fe20cf6d1d6
969 lines
42 KiB
Diff
969 lines
42 KiB
Diff
diff -ur a/etc/sqlgrey.conf b/etc/sqlgrey.conf
|
|
--- a/etc/sqlgrey.conf 2011-11-30 07:53:59.000000000 -0800
|
|
+++ b/etc/sqlgrey.conf 2011-11-30 08:01:06.000000000 -0800
|
|
@@ -142,6 +142,17 @@
|
|
# Valid options: on/off. If set to 'on', clustering will be enabled.
|
|
# db_cluster = on
|
|
|
|
+## Database table names
|
|
+# db_table_temp = temp
|
|
+# db_table_connect = connect
|
|
+# db_table_from_awl = from_awl
|
|
+# db_table_domain_awl = domain_awl
|
|
+# db_table_optin_domain = optin_domain
|
|
+# db_table_optin_email = optin_email
|
|
+# db_table_optout_domain = optout_domain
|
|
+# db_table_optout_email = optout_email
|
|
+# db_table_config = config
|
|
+
|
|
#
|
|
# Comma seperated list of read-only db-servers.
|
|
# read_hosts= slave-db-1.test.com, slave-db-2.test.com ,slave-db-3.test.com
|
|
Only in b: patch-etc-sqlgrey.conf.diff
|
|
Only in b: patch-sqlgrey.diff
|
|
diff -ur a/sqlgrey b/sqlgrey
|
|
--- a/sqlgrey 2011-11-30 07:53:59.000000000 -0800
|
|
+++ b/sqlgrey 2011-11-30 07:57:46.000000000 -0800
|
|
@@ -43,16 +43,6 @@
|
|
|
|
my $DB_VERSION = 3;
|
|
|
|
-# Table names
|
|
-my $connect = 'connect';
|
|
-my $from_awl = 'from_awl';
|
|
-my $domain_awl = 'domain_awl';
|
|
-my $optin_domain = 'optin_domain';
|
|
-my $optin_email = 'optin_email';
|
|
-my $optout_domain = 'optout_domain';
|
|
-my $optout_email = 'optout_email';
|
|
-my $config = 'config';
|
|
-
|
|
# defaults
|
|
my %dflt;
|
|
$dflt{loglevel} = 2; # used for $dflt{log} entries in read_conffile()
|
|
@@ -76,6 +66,15 @@
|
|
$dflt{db_pass} = '';
|
|
$dflt{db_prepare_cache} = 0;
|
|
$dflt{db_cluster} = 'off';
|
|
+$dflt{db_table_temp} = 'temp';
|
|
+$dflt{db_table_connect} = 'connect';
|
|
+$dflt{db_table_from_awl} = 'from_awl';
|
|
+$dflt{db_table_domain_awl} = 'domain_awl';
|
|
+$dflt{db_table_optin_domain} = 'optin_domain';
|
|
+$dflt{db_table_optin_email} = 'optin_email';
|
|
+$dflt{db_table_optout_domain} = 'optout_domain';
|
|
+$dflt{db_table_optout_email} = 'optout_email';
|
|
+$dflt{db_table_config} = 'config';
|
|
$dflt{prepend} = 1;
|
|
$dflt{greymethod} = 'smart';
|
|
$dflt{optmethod} = 'none'; # or 'optin' or 'optout'
|
|
@@ -393,34 +392,34 @@
|
|
sub database_setup($) {
|
|
my $self = shift;
|
|
# AWL and connect tables checks
|
|
- if (! $self->table_exists($from_awl)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_from_awl})) {
|
|
$self->create_from_awl_table();
|
|
$self->create_from_awl_indexes();
|
|
}
|
|
- if (! $self->table_exists($domain_awl)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_domain_awl})) {
|
|
$self->create_domain_awl_table();
|
|
$self->create_domain_awl_indexes();
|
|
}
|
|
- if (! $self->table_exists($connect)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_connect})) {
|
|
$self->create_connect_table();
|
|
$self->create_connect_indexes();
|
|
}
|
|
# optin/out tables checks
|
|
- if (! $self->table_exists($optin_domain)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_optin_domain})) {
|
|
$self->create_optin_domain_table();
|
|
}
|
|
- if (! $self->table_exists($optin_email)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_optin_email})) {
|
|
$self->create_optin_email_table();
|
|
}
|
|
- if (! $self->table_exists($optout_domain)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_optout_domain})) {
|
|
$self->create_optout_domain_table();
|
|
}
|
|
- if (! $self->table_exists($optout_email)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_optout_email})) {
|
|
$self->create_optout_email_table();
|
|
}
|
|
|
|
# config table check
|
|
- if (! $self->table_exists($config)) {
|
|
+ if (! $self->table_exists($self->{sqlgrey}{db_table_config})) {
|
|
$self->create_config_table();
|
|
$self->setconfig('version',$DB_VERSION);
|
|
}
|
|
@@ -446,10 +445,10 @@
|
|
my $self = shift;
|
|
my $param = shift;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT value FROM $config " .
|
|
+ my $sth = $self->prepare_cached("SELECT value FROM $self->{sqlgrey}{db_table_config} " .
|
|
'WHERE parameter = ?');
|
|
if (!defined $sth or !$sth->execute($param)) {
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $config table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_config} table: $DBI::errstr");
|
|
return undef;
|
|
#$self->mydie('getconfig error',
|
|
# 'Can\'t continue: config table unreadable');
|
|
@@ -473,10 +472,10 @@
|
|
my $param = shift;
|
|
my $value = shift;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT value FROM $config " .
|
|
+ my $sth = $self->prepare_cached("SELECT value FROM $self->{sqlgrey}{db_table_config} " .
|
|
'WHERE parameter = ?');
|
|
if (!defined $sth or !$sth->execute($param)) {
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $config table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_config} table: $DBI::errstr");
|
|
$self->mydie('setconfig error',
|
|
'Can\'t continue: config table unreadable');
|
|
}
|
|
@@ -496,7 +495,7 @@
|
|
my $old_value = shift;
|
|
|
|
|
|
- my $affected_rows = $self->do("UPDATE $config SET value = " .
|
|
+ my $affected_rows = $self->do("UPDATE $self->{sqlgrey}{db_table_config} SET value = " .
|
|
$self->quote($value) .
|
|
' WHERE parameter = ' .
|
|
$self->quote($param) .
|
|
@@ -513,7 +512,7 @@
|
|
my $param = shift;
|
|
my $value = shift;
|
|
|
|
- return $self->do("INSERT INTO $config (parameter, value) VALUES(" .
|
|
+ return $self->do("INSERT INTO $self->{sqlgrey}{db_table_config} (parameter, value) VALUES(" .
|
|
$self->quote($param) . ',' .
|
|
$self->quote($value) . ')');
|
|
}
|
|
@@ -522,7 +521,7 @@
|
|
my $self = shift;
|
|
|
|
# No config table -> version 0
|
|
- if (! $self->table_exists("$config")) {
|
|
+ if (! $self->table_exists("$self->{sqlgrey}{db_table_connect}")) {
|
|
return 0;
|
|
}
|
|
|
|
@@ -561,101 +560,101 @@
|
|
## can we detect SQLite 3+ ?
|
|
|
|
# connect
|
|
- $self->mylog('dbaccess', 2, "$connect table: renaming ip_addr to src");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect} table: renaming ip_addr to src");
|
|
if ($self->SQLite()) {
|
|
- $self->create_connect_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_name, sender_domain, ' .
|
|
+ $self->create_connect_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, ip_addr, ' .
|
|
'rcpt, first_seen ' .
|
|
- "FROM $connect");
|
|
- $self->drop_table($connect);
|
|
+ "FROM $self->{sqlgrey}{db_table_connect}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_connect});
|
|
} else {
|
|
- $self->do("ALTER TABLE $connect RENAME TO $connect" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_connect} RENAME TO $self->{sqlgrey}{db_table_connect}" . 'old');
|
|
}
|
|
$self->create_connect_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, ' .
|
|
'rcpt, first_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, ip_addr, ' .
|
|
'rcpt, first_seen ' .
|
|
- "FROM $connect" . 'old');
|
|
- $self->drop_table("$connect" . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_connect}" . 'old');
|
|
+ $self->drop_table("$self->{sqlgrey}{db_table_connect}" . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$connect table: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect} table: adding indexes");
|
|
$self->create_connect_indexes();
|
|
|
|
# from_awl
|
|
- $self->mylog('dbaccess', 2, "$from_awl: renaming host_ip to src, adding first_seen");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: renaming host_ip to src, adding first_seen");
|
|
if ($self->SQLite()) {
|
|
- $self->create_from_awl_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_name, sender_domain, ' .
|
|
+ $self->create_from_awl_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, host_ip, last_seen, last_seen ' .
|
|
- "FROM $from_awl");
|
|
- $self->drop_table($from_awl);
|
|
+ "FROM $self->{sqlgrey}{db_table_from_awl}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_from_awl});
|
|
} else {
|
|
- $self->do("ALTER TABLE $from_awl RENAME TO $from_awl" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl} RENAME TO $self->{sqlgrey}{db_table_from_awl}" . 'old');
|
|
}
|
|
if ($self->PostgreSQL()) { # we need to remove the pkey constraint
|
|
- $self->do("ALTER TABLE $from_awl" . 'old DROP CONSTRAINT ' .
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl}" . 'old DROP CONSTRAINT ' .
|
|
'from_awl_pkey');
|
|
}
|
|
$self->create_from_awl_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, host_ip, last_seen, last_seen ' .
|
|
- "FROM $from_awl" . 'old');
|
|
- $self->drop_table("$from_awl" . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_from_awl}" . 'old');
|
|
+ $self->drop_table("$self->{sqlgrey}{db_table_from_awl}" . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$from_awl: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: adding indexes");
|
|
$self->create_from_awl_indexes();
|
|
|
|
# domain_awl
|
|
- $self->mylog('dbaccess', 2, "$domain_awl: renaming host_ip to src, adding first_seen");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: renaming host_ip to src, adding first_seen");
|
|
if ($self->SQLite()) {
|
|
- $self->create_domain_awl_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_domain, ' .
|
|
+ $self->create_domain_awl_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_domain, ' .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_domain, host_ip, last_seen, last_seen ' .
|
|
- "FROM $domain_awl");
|
|
- $self->drop_table($domain_awl);
|
|
+ "FROM $self->{sqlgrey}{db_table_domain_awl}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_domain_awl});
|
|
} else {
|
|
- $self->do("ALTER TABLE $domain_awl RENAME TO $domain_awl" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl} RENAME TO $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
}
|
|
if ($self->PostgreSQL()) { # we need to remove the pkey constraint
|
|
- $self->do("ALTER TABLE $domain_awl" . 'old DROP CONSTRAINT ' .
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old DROP CONSTRAINT ' .
|
|
'domain_awl_pkey');
|
|
}
|
|
$self->create_domain_awl_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $domain_awl (sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_domain, src, last_seen, last_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $domain_awl (sender_domain, src, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
|
|
'last_seen, first_seen) ' .
|
|
'SELECT sender_domain, host_ip, last_seen, last_seen ' .
|
|
- "FROM $domain_awl" . 'old');
|
|
- $self->do("DROP TABLE $domain_awl" . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
+ $self->do("DROP TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$domain_awl: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: adding indexes");
|
|
$self->create_domain_awl_indexes();
|
|
|
|
# Update our schema
|
|
@@ -670,101 +669,101 @@
|
|
## can we detect SQLite 3+ ?
|
|
|
|
# connect
|
|
- $self->mylog('dbaccess', 2, "$connect: making room for IPv6 in src");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect}: making room for IPv6 in src");
|
|
if ($self->SQLite()) {
|
|
- $self->create_connect_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_name, sender_domain, ' .
|
|
+ $self->create_connect_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, ' .
|
|
'rcpt, first_seen ' .
|
|
- "FROM $connect");
|
|
- $self->drop_table($connect);
|
|
+ "FROM $self->{sqlgrey}{db_table_connect}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_connect});
|
|
} else {
|
|
- $self->do("ALTER TABLE $connect RENAME TO $connect" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_connect} RENAME TO $self->{sqlgrey}{db_table_connect}" . 'old');
|
|
}
|
|
$self->create_connect_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, ' .
|
|
'rcpt, first_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
|
|
'src, rcpt, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, ' .
|
|
'rcpt, first_seen ' .
|
|
- "FROM $connect" . 'old');
|
|
- $self->drop_table("$connect" . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_connect}" . 'old');
|
|
+ $self->drop_table("$self->{sqlgrey}{db_table_connect}" . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$connect: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_connect}: adding indexes");
|
|
$self->create_connect_indexes();
|
|
|
|
# from_awl
|
|
- $self->mylog('dbaccess', 2, "$from_awl: making room for IPv6 in src");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: making room for IPv6 in src");
|
|
if ($self->SQLite()) {
|
|
- $self->create_from_awl_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_name, sender_domain, ' .
|
|
+ $self->create_from_awl_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_name, sender_domain, ' .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
|
|
- "FROM $from_awl");
|
|
- $self->drop_table($from_awl);
|
|
+ "FROM $self->{sqlgrey}{db_table_from_awl}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_from_awl});
|
|
} else {
|
|
- $self->do("ALTER TABLE $from_awl RENAME TO $from_awl" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl} RENAME TO $self->{sqlgrey}{db_table_from_awl}" . 'old');
|
|
}
|
|
if ($self->PostgreSQL()) { # we need to remove the pkey constraint
|
|
- $self->do("ALTER TABLE $from_awl" . 'old DROP CONSTRAINT ' .
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_from_awl}" . 'old DROP CONSTRAINT ' .
|
|
'from_awl_pkey');
|
|
}
|
|
$self->create_from_awl_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_name, sender_domain, src, last_seen, last_seen ' .
|
|
- "FROM $from_awl" . 'old');
|
|
- $self->drop_table($from_awl . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_from_awl}" . 'old');
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_from_awl} . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$from_awl: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_from_awl}: adding indexes");
|
|
$self->create_from_awl_indexes();
|
|
|
|
# domain_awl
|
|
- $self->mylog('dbaccess', 2, "$domain_awl: making room for IPv6 in src");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: making room for IPv6 in src");
|
|
if ($self->SQLite()) {
|
|
- $self->create_domain_awl_table('temp');
|
|
- $self->do('INSERT INTO temp (sender_domain, ' .
|
|
+ $self->create_domain_awl_table($self->{sqlgrey}{db_table_temp});
|
|
+ $self->do('INSERT INTO ' . $self->{sqlgrey}{db_table_temp} . ' (sender_domain, ' .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_domain, src, last_seen, first_seen ' .
|
|
- "FROM $domain_awl");
|
|
- $self->drop_table($domain_awl);
|
|
+ "FROM $self->{sqlgrey}{db_table_domain_awl}");
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_domain_awl});
|
|
} else {
|
|
- $self->do("ALTER TABLE $domain_awl RENAME TO $domain_awl" . 'old');
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl} RENAME TO $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
}
|
|
if ($self->PostgreSQL()) { # we need to remove the pkey constraint
|
|
- $self->do("ALTER TABLE $domain_awl" . 'old DROP CONSTRAINT ' .
|
|
+ $self->do("ALTER TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old DROP CONSTRAINT ' .
|
|
'domain_awl_pkey');
|
|
}
|
|
$self->create_domain_awl_table();
|
|
if ($self->SQLite()) {
|
|
- $self->do("INSERT INTO $domain_awl (sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, " .
|
|
'src, last_seen, first_seen) ' .
|
|
'SELECT sender_domain, src, last_seen, first_seen ' .
|
|
- 'FROM temp');
|
|
- $self->drop_table('temp');
|
|
+ 'FROM ' . $self->{sqlgrey}{db_table_temp});
|
|
+ $self->drop_table($self->{sqlgrey}{db_table_temp});
|
|
} else {
|
|
- $self->do("INSERT INTO $domain_awl (sender_domain, src, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
|
|
'last_seen, first_seen) ' .
|
|
'SELECT sender_domain, src, last_seen, first_seen ' .
|
|
- "FROM $domain_awl" . 'old');
|
|
- $self->do("DROP TABLE $domain_awl" . 'old');
|
|
+ "FROM $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
+ $self->do("DROP TABLE $self->{sqlgrey}{db_table_domain_awl}" . 'old');
|
|
}
|
|
- $self->mylog('dbaccess', 2, "$domain_awl: adding indexes");
|
|
+ $self->mylog('dbaccess', 2, "$self->{sqlgrey}{db_table_domain_awl}: adding indexes");
|
|
$self->create_domain_awl_indexes();
|
|
|
|
# Update our schema
|
|
@@ -884,7 +883,7 @@
|
|
my $self = shift;
|
|
# allow optional table name
|
|
my $tablename = shift;
|
|
- $tablename = ! defined $tablename ? $from_awl : $tablename;
|
|
+ $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_from_awl} : $tablename;
|
|
$self->do("CREATE TABLE $tablename " .
|
|
'(sender_name varchar(64) NOT NULL, ' .
|
|
'sender_domain varchar(255) NOT NULL, ' .
|
|
@@ -898,17 +897,17 @@
|
|
}
|
|
sub create_from_awl_indexes($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE INDEX $from_awl" . '_lseen ' .
|
|
- "ON $from_awl (last_seen)")
|
|
+ $self->do("CREATE INDEX $self->{sqlgrey}{db_table_from_awl}" . '_lseen ' .
|
|
+ "ON $self->{sqlgrey}{db_table_from_awl} (last_seen)")
|
|
or $self->mydie('create_from_awl_table error',
|
|
- "couldn't create index on $from_awl (last_seen)");
|
|
+ "couldn't create index on $self->{sqlgrey}{db_table_from_awl} (last_seen)");
|
|
}
|
|
|
|
sub create_domain_awl_table {
|
|
my $self = shift;
|
|
# allow optional table name
|
|
my $tablename = shift;
|
|
- $tablename = ! defined $tablename ? $domain_awl : $tablename;
|
|
+ $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_domain_awl} : $tablename;
|
|
$self->do("CREATE TABLE $tablename " .
|
|
'(sender_domain varchar(255) NOT NULL, ' .
|
|
'src varchar(39) NOT NULL, ' .
|
|
@@ -920,17 +919,17 @@
|
|
}
|
|
sub create_domain_awl_indexes($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE INDEX $domain_awl" . '_lseen ' .
|
|
- "ON $domain_awl (last_seen)")
|
|
+ $self->do("CREATE INDEX $self->{sqlgrey}{db_table_domain_awl}" . '_lseen ' .
|
|
+ "ON $self->{sqlgrey}{db_table_domain_awl} (last_seen)")
|
|
or $self->mydie('create_domain_awl_table error',
|
|
- "couldn't create index on $domain_awl (last_seen)");
|
|
+ "couldn't create index on $self->{sqlgrey}{db_table_domain_awl} (last_seen)");
|
|
}
|
|
|
|
sub create_connect_table {
|
|
my $self = shift;
|
|
# allow optional table name
|
|
my $tablename = shift;
|
|
- $tablename = ! defined $tablename ? $connect : $tablename;
|
|
+ $tablename = ! defined $tablename ? $self->{sqlgrey}{db_table_connect} : $tablename;
|
|
# Note: no primary key, Mysql can't handle 500+ byte primary keys
|
|
# connect should not become big enough to make it a problem
|
|
$self->do("CREATE TABLE $tablename " .
|
|
@@ -944,62 +943,62 @@
|
|
}
|
|
sub create_connect_indexes($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE INDEX $connect" . '_idx ' .
|
|
- "ON $connect (src, sender_domain, sender_name)")
|
|
+ $self->do("CREATE INDEX $self->{sqlgrey}{db_table_connect}" . '_idx ' .
|
|
+ "ON $self->{sqlgrey}{db_table_connect} (src, sender_domain, sender_name)")
|
|
or $self->mydie('create_connect_table error',
|
|
- "couldn't create index on $connect (src, sender_domain, sender_name)");
|
|
- $self->do("CREATE INDEX $connect" . '_fseen ' .
|
|
- "ON $connect (first_seen)")
|
|
+ "couldn't create index on $self->{sqlgrey}{db_table_connect} (src, sender_domain, sender_name)");
|
|
+ $self->do("CREATE INDEX $self->{sqlgrey}{db_table_connect}" . '_fseen ' .
|
|
+ "ON $self->{sqlgrey}{db_table_connect} (first_seen)")
|
|
or $self->mydie('create_connect_table error',
|
|
- "couldn't create index on $connect (first_seen)");
|
|
+ "couldn't create index on $self->{sqlgrey}{db_table_connect} (first_seen)");
|
|
}
|
|
|
|
sub create_config_table($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE TABLE $config " .
|
|
+ $self->do("CREATE TABLE $self->{sqlgrey}{db_table_config} " .
|
|
'(parameter varchar(255) NOT NULL, ' .
|
|
'value varchar(255), ' .
|
|
'PRIMARY KEY (parameter));')
|
|
or $self->mydie('create_config_table',
|
|
- "Couldn't create table $config: $DBI::errstr");
|
|
+ "Couldn't create table $self->{sqlgrey}{db_table_config}: $DBI::errstr");
|
|
# we just created the table: this is the current version
|
|
$self->setconfig('version', $DB_VERSION);
|
|
}
|
|
|
|
sub create_optin_domain_table($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE TABLE $optin_domain " .
|
|
+ $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optin_domain} " .
|
|
'(domain varchar(255) NOT NULL, ' .
|
|
'PRIMARY KEY (domain));')
|
|
or $self->mydie('create_optin_domain_table',
|
|
- "Couldn't create table $optin_domain: $DBI::errstr");
|
|
+ "Couldn't create table $self->{sqlgrey}{db_table_optin_domain}: $DBI::errstr");
|
|
}
|
|
|
|
sub create_optin_email_table($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE TABLE $optin_email " .
|
|
+ $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optin_email} " .
|
|
'(email varchar(255) NOT NULL, ' .
|
|
'PRIMARY KEY (email));')
|
|
or $self->mydie('create_optin_email_table',
|
|
- "Couldn't create table $optin_email: $DBI::errstr");
|
|
+ "Couldn't create table $self->{sqlgrey}{db_table_optin_email}: $DBI::errstr");
|
|
}
|
|
|
|
sub create_optout_domain_table($) {
|
|
my $self = shift;
|
|
- $self->do("CREATE TABLE $optout_domain " .
|
|
+ $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optout_domain} " .
|
|
'(domain varchar(255) NOT NULL, ' .
|
|
'PRIMARY KEY (domain));')
|
|
or $self->mydie('create_optout_domain_table',
|
|
- "Couldn't create table $optout_domain: $DBI::errstr");
|
|
+ "Couldn't create table $self->{sqlgrey}{db_table_optout_domain}: $DBI::errstr");
|
|
}
|
|
|
|
sub create_optout_email_table {
|
|
my $self = shift;
|
|
- $self->do("CREATE TABLE $optout_email " .
|
|
+ $self->do("CREATE TABLE $self->{sqlgrey}{db_table_optout_email} " .
|
|
'(email varchar(255) NOT NULL, ' .
|
|
'PRIMARY KEY (email));')
|
|
or $self->mydie('create_optout_email_table',
|
|
- "Couldn't create table $optout_email: $DBI::errstr");
|
|
+ "Couldn't create table $self->{sqlgrey}{db_table_optout_email}: $DBI::errstr");
|
|
}
|
|
|
|
##########
|
|
@@ -1217,7 +1216,7 @@
|
|
my ($self, $sender_name, $sender_domain, $host) = @_;
|
|
|
|
# last_seen less than $self->{sqlgrey}{awl_age} days ago
|
|
- my $sth = $self->prepare("SELECT 1 FROM $from_awl " .
|
|
+ my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE sender_name = ? ' .
|
|
'AND sender_domain = ? ' .
|
|
'AND src = ? ' .
|
|
@@ -1227,7 +1226,7 @@
|
|
);
|
|
if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
|
|
return 1; # in doubt, accept
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1244,7 +1243,7 @@
|
|
my ($self, $sender_domain, $host) = @_;
|
|
|
|
# last_seen less than $self->{sqlgrey}{awl_age} days ago
|
|
- my $sth = $self->prepare("SELECT 1 FROM $domain_awl " .
|
|
+ my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_domain_awl} " .
|
|
'WHERE sender_domain = ? ' .
|
|
'AND src = ? ' .
|
|
'AND last_seen > ' .
|
|
@@ -1253,7 +1252,7 @@
|
|
);
|
|
if (!defined $sth or !$sth->execute($sender_domain, $host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $domain_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_domain_awl} table: $DBI::errstr");
|
|
return 1; # in doubt, accept
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1272,13 +1271,13 @@
|
|
my ($self, $sender_name, $sender_domain, $host, $first_seen) = @_;
|
|
|
|
# delete old entries
|
|
- $self->do("DELETE FROM $from_awl " .
|
|
+ $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE sender_name = ' . $self->quote($sender_name) .
|
|
' AND sender_domain = ' . $self->quote($sender_domain) .
|
|
' AND src = ' . $self->quote($host));
|
|
|
|
# create new entry
|
|
- $self->do("INSERT INTO $from_awl (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_from_awl} (sender_name, sender_domain, " .
|
|
'src, first_seen, last_seen) VALUES(' .
|
|
$self->quote($sender_name) . ',' .
|
|
$self->quote($sender_domain) . ',' .
|
|
@@ -1290,12 +1289,12 @@
|
|
my ($self, $sender_domain, $host, $first_seen) = @_;
|
|
|
|
# delete old entries
|
|
- $self->do("DELETE FROM $domain_awl " .
|
|
+ $self->do("DELETE FROM $self->{sqlgrey}{db_table_domain_awl} " .
|
|
'WHERE sender_domain = ' . $self->quote($sender_domain) .
|
|
' AND src = ' . $self->quote($host));
|
|
|
|
# create new entry
|
|
- $self->do("INSERT INTO $domain_awl (sender_domain, src, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_domain_awl} (sender_domain, src, " .
|
|
'first_seen, last_seen) VALUES(' .
|
|
$self->quote($sender_domain) . ',' .
|
|
$self->quote($host) . ',' .
|
|
@@ -1307,7 +1306,7 @@
|
|
sub update_from_awl($$$$) {
|
|
my ($self, $sender_name, $sender_domain, $host) = @_;
|
|
|
|
- $self->do("UPDATE $from_awl " .
|
|
+ $self->do("UPDATE $self->{sqlgrey}{db_table_from_awl} " .
|
|
'SET last_seen = NOW(), first_seen = first_seen ' .
|
|
'WHERE sender_name = ' . $self->quote($sender_name) .
|
|
' AND sender_domain = ' . $self->quote($sender_domain) .
|
|
@@ -1317,7 +1316,7 @@
|
|
sub update_domain_awl($$$) {
|
|
my ($self, $sender_domain, $host) = @_;
|
|
|
|
- $self->do("UPDATE $domain_awl " .
|
|
+ $self->do("UPDATE $self->{sqlgrey}{db_table_domain_awl} " .
|
|
'SET last_seen = NOW(), first_seen = first_seen ' .
|
|
'WHERE sender_domain = ' . $self->quote($sender_domain) .
|
|
' AND src = ' . $self->quote($host));
|
|
@@ -1327,11 +1326,11 @@
|
|
sub count_from_awl($$$) {
|
|
my ($self, $sender_domain, $host) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $from_awl " .
|
|
+ my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE sender_domain = ? AND src = ?');
|
|
if (!defined $sth or !$sth->execute($sender_domain, $host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
|
|
return 0; # do as if table is empty
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1350,11 +1349,11 @@
|
|
sub count_src_domain_awl($$) {
|
|
my ($self, $host) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $domain_awl " .
|
|
+ my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_domain_awl} " .
|
|
'WHERE src = ?');
|
|
if (!defined $sth or !$sth->execute($host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $domain_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_domain_awl} table: $DBI::errstr");
|
|
return 0; # do as if table is empty
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1373,11 +1372,11 @@
|
|
sub count_src_from_awl($$) {
|
|
my ($self, $host) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $from_awl " .
|
|
+ my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE src = ?');
|
|
if (!defined $sth or !$sth->execute($host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
|
|
return 0; # do as if table is empty
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1396,11 +1395,11 @@
|
|
sub count_src_connect($$) {
|
|
my ($self, $host) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $connect " .
|
|
+ my $sth = $self->prepare_cached("SELECT COUNT(*) FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE src = ?');
|
|
if (!defined $sth or !$sth->execute($host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $connect table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
|
|
return 0; # do as if table is empty
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1420,7 +1419,7 @@
|
|
sub cleanup_from_awl($) {
|
|
my ($self) = @_;
|
|
|
|
- my $rows = $self->do("DELETE FROM $from_awl " .
|
|
+ my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE last_seen < ' .
|
|
$self->past_tstamp($self->{sqlgrey}{awl_age}, 'DAY')
|
|
);
|
|
@@ -1432,7 +1431,7 @@
|
|
sub cleanup_domain_awl($) {
|
|
my ($self) = @_;
|
|
|
|
- my $rows = $self->do("DELETE FROM $domain_awl " .
|
|
+ my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_domain_awl} " .
|
|
'WHERE last_seen < ' .
|
|
$self->past_tstamp($self->{sqlgrey}{awl_age}, 'DAY')
|
|
);
|
|
@@ -1443,14 +1442,14 @@
|
|
|
|
sub delete_domain_from_mail_awl($$$) {
|
|
my ($self, $domain, $host) = @_;
|
|
- $self->do("DELETE FROM $from_awl " .
|
|
+ $self->do("DELETE FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE sender_domain = ' . $self->quote($domain) .
|
|
' AND src = ' . $self->quote($host));
|
|
}
|
|
|
|
sub delete_domain_from_connect($$$) {
|
|
my ($self, $domain, $host) = @_;
|
|
- $self->do("DELETE FROM $connect " .
|
|
+ $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE sender_domain = ' . $self->quote($domain) .
|
|
' AND src = ' . $self->quote($host));
|
|
}
|
|
@@ -1466,12 +1465,12 @@
|
|
|
|
sub get_first_seen_in_from_awl($$$) {
|
|
my ($self, $domain, $host) = @_;
|
|
- my $sth = $self->prepare_cached("SELECT MIN(first_seen) FROM $from_awl " .
|
|
+ my $sth = $self->prepare_cached("SELECT MIN(first_seen) FROM $self->{sqlgrey}{db_table_from_awl} " .
|
|
'WHERE sender_domain = ? AND src = ?');
|
|
|
|
if (!defined $sth or !$sth->execute($domain, $host)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $from_awl table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_from_awl} table: $DBI::errstr");
|
|
return 0; # do as if table is empty
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1495,7 +1494,7 @@
|
|
|
|
# last_seen less than $self->{sqlgrey}{max_connect_age} hours ago
|
|
# but more than $self->{sqlgrey}{reconnect_delay} minutes ago
|
|
- my $sth = $self->prepare("SELECT 1 FROM $connect " .
|
|
+ my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE sender_name = ? AND sender_domain = ? ' .
|
|
'AND src = ? AND rcpt = ? ' .
|
|
'AND first_seen BETWEEN ' .
|
|
@@ -1507,7 +1506,7 @@
|
|
);
|
|
if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $addr, $rcpt)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $connect table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
|
|
return 1; # in doubt, accept
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1525,7 +1524,7 @@
|
|
my ($self, $sender_name, $sender_domain, $addr, $rcpt) = @_;
|
|
|
|
# last_seen less than $self->{sqlgrey}{reconnect_delay} minutes ago
|
|
- my $sth = $self->prepare("SELECT 1 FROM $connect WHERE sender_name = ? " .
|
|
+ my $sth = $self->prepare("SELECT 1 FROM $self->{sqlgrey}{db_table_connect} WHERE sender_name = ? " .
|
|
'AND sender_domain = ? ' .
|
|
'AND src = ? AND rcpt = ? ' .
|
|
'AND first_seen >= ' .
|
|
@@ -1534,7 +1533,7 @@
|
|
);
|
|
if (!defined $sth or !$sth->execute($sender_name, $sender_domain, $addr, $rcpt)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: Couldn't access $connect table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: Couldn't access $self->{sqlgrey}{db_table_connect} table: $DBI::errstr");
|
|
return 0; # in doubt, accept
|
|
} else {
|
|
$self->db_available();
|
|
@@ -1552,7 +1551,7 @@
|
|
my ($self, $sender_name, $sender_domain, $addr, $rcpt) = @_;
|
|
|
|
# create new entry
|
|
- $self->do("INSERT INTO $connect (sender_name, sender_domain, " .
|
|
+ $self->do("INSERT INTO $self->{sqlgrey}{db_table_connect} (sender_name, sender_domain, " .
|
|
'src, rcpt, first_seen) ' .
|
|
'VALUES(' .
|
|
$self->quote($sender_name) . ',' .
|
|
@@ -1569,9 +1568,9 @@
|
|
if ($self->MySQL()) {
|
|
$query = 'SELECT first_seen, SEC_TO_TIME(UNIX_TIMESTAMP(NOW())-' .
|
|
'UNIX_TIMESTAMP(first_seen)) ' .
|
|
- "FROM $connect ";
|
|
+ "FROM $self->{sqlgrey}{db_table_connect} ";
|
|
} else {
|
|
- $query = "SELECT first_seen, now() - first_seen FROM $connect ";
|
|
+ $query = "SELECT first_seen, now() - first_seen FROM $self->{sqlgrey}{db_table_connect} ";
|
|
}
|
|
$query .= 'WHERE sender_name = ? AND sender_domain = ? ' .
|
|
'AND src = ? AND rcpt = ?';
|
|
@@ -1600,7 +1599,7 @@
|
|
|
|
$deverp_sender_name =~ s/#/%/g;
|
|
|
|
- $self->do("DELETE FROM $connect " .
|
|
+ $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE src = ' . $self->quote($addr) .
|
|
' AND sender_domain = ' . $self->quote($sender_domain) .
|
|
' AND sender_name LIKE ' . $self->quote($deverp_sender_name) );
|
|
@@ -1615,7 +1614,7 @@
|
|
# Print probable SPAM:
|
|
my $sth = $self->prepare('SELECT sender_name, sender_domain, src, ' .
|
|
'rcpt, first_seen ' .
|
|
- "FROM $connect " .
|
|
+ "FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE first_seen < ' .
|
|
$tstamp);
|
|
if (defined $sth and $sth->execute()) {
|
|
@@ -1632,7 +1631,7 @@
|
|
"error: couldn't list detected spam attempts: $DBI::errstr");
|
|
}
|
|
}
|
|
- my $rows = $self->do("DELETE FROM $connect " .
|
|
+ my $rows = $self->do("DELETE FROM $self->{sqlgrey}{db_table_connect} " .
|
|
'WHERE first_seen < ' .
|
|
$tstamp
|
|
);
|
|
@@ -2011,21 +2010,21 @@
|
|
sub is_in_optin_domain($$) {
|
|
my ($self, $domain) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT 1 FROM $optin_domain " .
|
|
+ my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optin_domain} " .
|
|
'WHERE domain = ?');
|
|
if (!defined $sth or !$sth->execute($domain)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $optin_domain table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_domain} table: $DBI::errstr");
|
|
return 0; # in doubt, no greylisting
|
|
} else {
|
|
$self->db_available();
|
|
}
|
|
my $result = $sth->fetchall_arrayref();
|
|
if ($#$result != 0) {
|
|
- $self->mylog('optin', 4, "$domain not in $optin_domain");
|
|
+ $self->mylog('optin', 4, "$domain not in $self->{sqlgrey}{db_table_optin_domain}");
|
|
return 0; # not a single entry
|
|
} else {
|
|
- $self->mylog('optin', 4, "$domain in $optin_domain");
|
|
+ $self->mylog('optin', 4, "$domain in $self->{sqlgrey}{db_table_optin_domain}");
|
|
return 1; # one single entry (no multiple entries by design)
|
|
}
|
|
}
|
|
@@ -2033,21 +2032,21 @@
|
|
sub is_in_optin_email($$) {
|
|
my ($self, $email) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT 1 FROM $optin_email " .
|
|
+ my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optin_email} " .
|
|
'WHERE email = ?');
|
|
if (!defined $sth or !$sth->execute($email)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $optin_email table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_email} table: $DBI::errstr");
|
|
return 0; # in doubt, no greylisting
|
|
} else {
|
|
$self->db_available();
|
|
}
|
|
my $result = $sth->fetchall_arrayref();
|
|
if ($#$result != 0) {
|
|
- $self->mylog('optin', 4, "$email not in $optin_email");
|
|
+ $self->mylog('optin', 4, "$email not in $self->{sqlgrey}{db_table_optin_email}");
|
|
return 0; # not a single entry
|
|
} else {
|
|
- $self->mylog('optin', 4, "$email in $optin_email");
|
|
+ $self->mylog('optin', 4, "$email in $self->{sqlgrey}{db_table_optin_email}");
|
|
return 1; # one single entry (no multiple entries by design)
|
|
}
|
|
}
|
|
@@ -2055,21 +2054,21 @@
|
|
sub is_in_optout_domain($$) {
|
|
my ($self, $domain) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT 1 FROM $optout_domain " .
|
|
+ my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optout_domain} " .
|
|
'WHERE domain = ?');
|
|
if (!defined $sth or !$sth->execute($domain)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $optout_domain table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optout_domain} table: $DBI::errstr");
|
|
return 1; # in doubt, no greylisting
|
|
} else {
|
|
$self->db_available();
|
|
}
|
|
my $result = $sth->fetchall_arrayref();
|
|
if ($#$result != 0) {
|
|
- $self->mylog('optin', 4, "$domain not in $optout_domain");
|
|
+ $self->mylog('optin', 4, "$domain not in $self->{sqlgrey}{db_table_optout_domain}");
|
|
return 0; # not a single entry
|
|
} else {
|
|
- $self->mylog('optin', 4, "$domain in $optout_domain");
|
|
+ $self->mylog('optin', 4, "$domain in $self->{sqlgrey}{db_table_optout_domain}");
|
|
return 1; # one single entry (no multiple entries by design)
|
|
}
|
|
}
|
|
@@ -2077,21 +2076,21 @@
|
|
sub is_in_optout_email($$) {
|
|
my ($self, $email) = @_;
|
|
|
|
- my $sth = $self->prepare_cached("SELECT 1 FROM $optout_email " .
|
|
+ my $sth = $self->prepare_cached("SELECT 1 FROM $self->{sqlgrey}{db_table_optout_email} " .
|
|
'WHERE email = ?');
|
|
if (!defined $sth or !$sth->execute($email)) {
|
|
$self->db_unavailable();
|
|
- $self->mylog('dbaccess', 0, "error: couldn't access $optin_email table: $DBI::errstr");
|
|
+ $self->mylog('dbaccess', 0, "error: couldn't access $self->{sqlgrey}{db_table_optin_email} table: $DBI::errstr");
|
|
return 1; # in doubt, no greylisting
|
|
} else {
|
|
$self->db_available();
|
|
}
|
|
my $result = $sth->fetchall_arrayref();
|
|
if ($#$result != 0) {
|
|
- $self->mylog('optin', 4, "$email not in $optout_email");
|
|
+ $self->mylog('optin', 4, "$email not in $self->{sqlgrey}{db_table_optout_email}");
|
|
return 0; # not a single entry
|
|
} else {
|
|
- $self->mylog('optin', 4, "$email in $optout_email");
|
|
+ $self->mylog('optin', 4, "$email in $self->{sqlgrey}{db_table_optout_email}");
|
|
return 1; # one single entry (no multiple entries by design)
|
|
}
|
|
}
|
|
@@ -2642,6 +2641,15 @@
|
|
db_user => $dflt{db_user},
|
|
db_pass => $dflt{db_pass},
|
|
db_available => 1, # used to trigger e-mails
|
|
+ db_table_temp => $dflt{db_table_temp},
|
|
+ db_table_connect => $dflt{db_table_connect},
|
|
+ db_table_from_awl => $dflt{db_table_from_awl},
|
|
+ db_table_domain_awl => $dflt{db_table_domain_awl},
|
|
+ db_table_optin_domain => $dflt{db_table_optin_domain},
|
|
+ db_table_optin_email => $dflt{db_table_optin_email},
|
|
+ db_table_optout_domain => $dflt{db_table_optout_domain},
|
|
+ db_table_optout_email => $dflt{db_table_optout_email},
|
|
+ db_table_config => $dflt{db_table_config},
|
|
clean_method => $dflt{clean_method},
|
|
prepend => $dflt{prepend},
|
|
greymethod => $dflt{greymethod},
|