and tested.
---
 config.sample/plugins                |    4 ++++
 config.sample/smtpauth-checkpassword |    1 +
 plugins/auth/auth_vpopmail           |    4 ++--
 plugins/auth/auth_vpopmail_sql       |    9 ++++++++-
 4 files changed, 15 insertions(+), 3 deletions(-)
 create mode 100644 config.sample/smtpauth-checkpassword

diff --git a/config.sample/plugins b/config.sample/plugins
index b3d35e2..2512eb9 100644
--- a/config.sample/plugins
+++ b/config.sample/plugins
@@ -40,6 +40,10 @@ check_spamhelo
 # sender_permitted_from
 # greylisting p0f genre,windows
 
+auth/auth_checkpassword checkpw /usr/local/vpopmail/bin/vchkpw true 
/usr/bin/true
+auth/auth_vpopmail
+auth/auth_vpopmaild
+auth/auth_vpopmail_sql
 auth/auth_flat_file
 auth/authdeny
 
diff --git a/config.sample/smtpauth-checkpassword 
b/config.sample/smtpauth-checkpassword
new file mode 100644
index 0000000..a029f3d
--- /dev/null
+++ b/config.sample/smtpauth-checkpassword
@@ -0,0 +1 @@
+/usr/local/vpopmail/bin/vchkpw /bin/true
diff --git a/plugins/auth/auth_vpopmail b/plugins/auth/auth_vpopmail
index 43720c6..91a5ac6 100644
--- a/plugins/auth/auth_vpopmail
+++ b/plugins/auth/auth_vpopmail
@@ -45,7 +45,7 @@ use warnings;
 use Qpsmtpd::Auth;
 use Qpsmtpd::Constants;
 
-#use vpopmail;    # we eval this in $test_vpopmail
+#use vpopmail;    # we eval this in $test_vpopmail_module
 
 sub register {
     my ($self, $qp) = @_;
@@ -86,7 +86,7 @@ sub test_vpopmail_module {
     my $self = shift;
 # vpopmail will not allow vauth_getpw to succeed unless the requesting user is 
vpopmail or root.
 # by default, qpsmtpd runs as the user 'qpsmtpd' and does not have permission.
-    eval "use vpopmail";
+    eval 'use vpopmail';
     if ( $@ ) {
         $self->log(LOGERROR, "skip: is vpopmail perl module installed?");
         return;
diff --git a/plugins/auth/auth_vpopmail_sql b/plugins/auth/auth_vpopmail_sql
index ca00531..dd9b3cb 100644
--- a/plugins/auth/auth_vpopmail_sql
+++ b/plugins/auth/auth_vpopmail_sql
@@ -69,11 +69,18 @@ use warnings;
 use Qpsmtpd::Auth;
 use Qpsmtpd::Constants;
 
-use DBI;
+#use DBI;  # done in ->register
 
 sub register {
     my ( $self, $qp ) = @_;
 
+    eval 'use DBI';
+    if ( $@ ) {
+        warn "plugin disabled. is DBI installed?\n";
+        $self->log(LOGERROR, "skip: plugin disabled. is DBI installed?\n");
+        return;
+    };
+
     $self->register_hook('auth-plain',    'auth_vmysql');
     $self->register_hook('auth-login',    'auth_vmysql');
     $self->register_hook('auth-cram-md5', 'auth_vmysql');
-- 
1.7.9.6

Reply via email to