Hello Don,
I ran into exactly the same problem and I have not been able to get
per-user rules to work from mysql. I hacked a workaround but have not
revisited it lately.
Anyway, here is a patch file for SQL.pm that will give you additional
output that may be helpful while you're debugging. This presumes that
you're running v3.1.0.
--- 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";
}
--
Dale Morin, Mustang Internet Services, Inc.
"Support Without Compromise"
main office: 847.541.2811
direct line: 815.496.9853
email: [EMAIL PROTECTED]