Hello, OS: RHES 3.0 SA 3.1.0 MySQL 4.1.12 spamd start (for testing): spamd -q -D -x -p 6666 in another ssh session: echo -e "From: user\nTo:user\nSubject: Test\n\n" | spamc -u 'dale' -p 6666
This way I can test sql userprefs without affecting the running spamd listening on 783. Here is the output from the spamc side: From: user To:user Subject: Test Note that there is no indication of any scanning taking place. Here is the output from the spamd side: [29347] info: spamd: connection from frodo [127.0.0.1] at port 53771 [29347] dbg: config: Conf::SQL: database connection established [29347] dbg: config: Conf::SQL: using deliverd query [29347] dbg: config: Conf::SQL: preparing SQL: select preference, value from userpref where username = 'dale' or username = '$GLOBAL' order by username asc [29347] dbg: config: Conf::SQL: executing SQL: select preference, value from userpref where username = 'dale' or username = '$GLOBAL' order by username asc [29347] dbg: config: Conf::SQL: retrieving prefs for dale from SQL server [29347] dbg: config: Conf::SQL: retrieved 12 rows from SQL server [29347] dbg: config: Conf::SQL: fetched row: score SPF_FAIL 5 [29347] dbg: config: Conf::SQL: fetched row: score UNPARSEABLE_RELAY 3 [29347] dbg: config: Conf::SQL: fetched row: score RCVD_ILLEGAL_IP 4 [29347] dbg: config: Conf::SQL: fetched row: score SPF_HELO_FAIL 5 [29347] dbg: config: Conf::SQL: fetched row: required_score 5 [29347] dbg: config: Conf::SQL: fetched row: rewrite_header Subject *** Potential SPAM (_SCORE_) *** [29347] dbg: config: Conf::SQL: fetched row: whitelist_from [EMAIL PROTECTED] [29347] dbg: config: Conf::SQL: fetched row: whitelist_from [EMAIL PROTECTED] [29347] dbg: config: Conf::SQL: fetched row: whitelist_from [EMAIL PROTECTED] [29347] dbg: config: Conf::SQL: fetched row: required_score 6 [29347] dbg: config: Conf::SQL: fetched row: whitelist_from [EMAIL PROTECTED] [29347] dbg: config: Conf::SQL: fetched row: report_safe 1 [29335] dbg: prefork: new lowest idle kid: 29478 [29335] info: spamd: handled cleanup of child pid 29347 due to SIGCHLD [29335] dbg: prefork: child closed connection [29335] info: prefork: child states: I [29616] dbg: prefork: sysread(8) not ready, wait max 300 secs [29335] info: spamd: server successfully spawned child process, pid 29616 [29335] dbg: prefork: child 29616: entering state 0 [29335] dbg: prefork: new lowest idle kid: 29478 [29335] dbg: prefork: child 29616: entering state 1 [29335] dbg: prefork: new lowest idle kid: 29478 [29335] dbg: prefork: child reports idle [29335] info: prefork: child states: II To get this debugging output, I patched SQL.pm as follows: --- SQL.pm.org 2005-11-20 12:39:22.000000000 -0600 +++ SQL.pm 2005-11-20 12:45:06.000000000 -0600 @@ -125,8 +125,10 @@ my $dbh = DBI->connect($dsn, $dbuser, $dbpass, {'PrintError' => 0}); if ($dbh) { + dbg("config: Conf::SQL: database connection established"); my $sql; if (defined($custom_query)) { + dbg("config: Conf::SQL: custom query defined"); $sql = $custom_query; my $quoted_username = $dbh->quote($username); my ($mailbox, $domain) = split('@', $username); @@ -139,19 +141,24 @@ $sql =~ s/_DOMAIN_/$quoted_domain/g; } else { + dbg("config: Conf::SQL: using deliverd query"); $sql = "select $f_preference, $f_value from $f_table where ". "$f_username = ".$dbh->quote($username). - " or $f_username = '[EMAIL PROTECTED]' order by $f_username asc"; + " or $f_username = '\$GLOBAL' order by $f_username asc"; } - dbg("config: Conf::SQL: executing SQL: $sql"); + dbg("config: Conf::SQL: preparing SQL: $sql"); my $sth = $dbh->prepare($sql); if ($sth) { + dbg("config: Conf::SQL: executing SQL: $sql"); my $rv = $sth->execute(); if ($rv) { - dbg("config: retrieving prefs for $username from SQL server"); + dbg("config: Conf::SQL: retrieving prefs for $username from SQL server"); + my $numrows = $sth->rows; + dbg("config: Conf::SQL: retrieved $numrows rows from SQL server"); my @row; my $text = ''; while (@row = $sth->fetchrow_array()) { + dbg("config: Conf::SQL: fetched row: $row[0] $row[1]"); $text .= (defined($row[0]) ? $row[0] : '') . "\t" . (defined($row[1]) ? $row[1] : '') . "\n"; } Thanks in advance for any suggestions. -- Dale Morin, Mustang Internet Services, Inc. "Support Without Compromise" main office: 847.541.2811 direct line: 815.496.9853 email: [EMAIL PROTECTED]