vpopmail restart export option
authorivan <ivan>
Sun, 20 Oct 2002 03:28:23 +0000 (03:28 +0000)
committerivan <ivan>
Sun, 20 Oct 2002 03:28:23 +0000 (03:28 +0000)
FS/FS/part_export.pm
FS/FS/part_export/vpopmail.pm
eg/vpopmailrestart [deleted file]

index 1b402e0..c9ae41f 100644 (file)
@@ -643,6 +643,9 @@ tie my %vpopmail_options, 'Tie::IxHash',
   'dir'     => { label=>'directory', }, # ?more info? default?
   'uid'     => { label=>'vpopmail uid' },
   'gid'     => { label=>'vpopmail gid' },
   'dir'     => { label=>'directory', }, # ?more info? default?
   'uid'     => { label=>'vpopmail uid' },
   'gid'     => { label=>'vpopmail gid' },
+  'restart' => { label=> 'vpopmail restart command',
+                 default=> 'cd /home/vpopmail/domains; for domain in *; do /home/vpopmail/bin/vmkpasswd $domain; done; /var/qmail/bin/qmail-newu; killall -HUP qmail-send',
+               },
 ;
 
 tie my %bind_options, 'Tie::IxHash',
 ;
 
 tie my %bind_options, 'Tie::IxHash',
index 2ca4401..bddf175 100644 (file)
@@ -19,6 +19,7 @@ sub _export_insert {
     crypt($svc_acct->_password,$saltset[int(rand(64))].$saltset[int(rand(64))]),
     $svc_acct->domain,
     $svc_acct->quota,
     crypt($svc_acct->_password,$saltset[int(rand(64))].$saltset[int(rand(64))]),
     $svc_acct->domain,
     $svc_acct->quota,
+    $svc_acct->finger,
   );
 }
 
   );
 }
 
@@ -46,7 +47,7 @@ sub _export_replace {
   return '' unless $old->_password ne $new->_password;
 
   $self->vpopmail_queue( $new->svcnum, 'replace',
   return '' unless $old->_password ne $new->_password;
 
   $self->vpopmail_queue( $new->svcnum, 'replace',
-    $new->username, $cpassword, $new->domain, $new->quota );
+    $new->username, $cpassword, $new->domain, $new->quota, $new->finger );
 }
 
 sub _export_delete {
 }
 
 sub _export_delete {
@@ -77,13 +78,14 @@ sub vpopmail_queue {
     $self->option('dir'),
     $self->option('uid'),
     $self->option('gid'),
     $self->option('dir'),
     $self->option('uid'),
     $self->option('gid'),
+    $self->option('restart'),
     @_
   );
 }
 
 sub vpopmail_insert { #subroutine, not method
     @_
   );
 }
 
 sub vpopmail_insert { #subroutine, not method
-  my( $exportdir, $machine, $dir, $uid, $gid ) = splice @_,0,5;
-  my( $username, $password, $domain, $quota ) = @_;
+  my( $exportdir, $machine, $dir, $uid, $gid, $restart ) = splice @_,0,6;
+  my( $username, $password, $domain, $quota, $finger ) = @_;
 
   mkdir "$exportdir/domains/$domain", 0700 or die $!
     unless -d "$exportdir/domains/$domain";
 
   mkdir "$exportdir/domains/$domain", 0700 or die $!
     unless -d "$exportdir/domains/$domain";
@@ -112,13 +114,13 @@ sub vpopmail_insert { #subroutine, not method
     mkdir $mkdir, 0700 or die "can't mkdir $mkdir: $!";
   }
 
     mkdir $mkdir, 0700 or die "can't mkdir $mkdir: $!";
   }
 
-  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid );
+  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid, $restart );
 
 }
 
 sub vpopmail_replace { #subroutine, not method
 
 }
 
 sub vpopmail_replace { #subroutine, not method
-  my( $exportdir, $machine, $dir, $uid, $gid ) = splice @_,0,5;
-  my( $username, $password, $domain ) = @_;
+  my( $exportdir, $machine, $dir, $uid, $gid, $restart ) = splice @_,0,6;
+  my( $username, $password, $domain, $quota, $finger ) = @_;
   
   (open(VPASSWD, "$exportdir/domains/$domain/vpasswd")
     and flock(VPASSWD,LOCK_EX)
   
   (open(VPASSWD, "$exportdir/domains/$domain/vpasswd")
     and flock(VPASSWD,LOCK_EX)
@@ -140,7 +142,7 @@ sub vpopmail_replace { #subroutine, not method
       '1',
       '0',
       $finger,
       '1',
       '0',
       $finger,
-      $dir,
+      "$dir/domains/$domain/$username", #$vdir
       $quota ? $quota.'S' : 'NOQUOTA',
     ), "\n";
   }
       $quota ? $quota.'S' : 'NOQUOTA',
     ), "\n";
   }
@@ -153,12 +155,12 @@ sub vpopmail_replace { #subroutine, not method
   flock(VPASSWD,LOCK_UN);
   close(VPASSWD);
 
   flock(VPASSWD,LOCK_UN);
   close(VPASSWD);
 
-  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid );
+  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid, $restart );
 
 }
 
 sub vpopmail_delete { #subroutine, not method
 
 }
 
 sub vpopmail_delete { #subroutine, not method
-  my( $exportdir, $machine, $dir, $uid, $gid ) = splice @_,0,5;
+  my( $exportdir, $machine, $dir, $uid, $gid, $restart ) = splice @_,0,6;
   my( $username, $domain ) = @_;
   
   (open(VPASSWD, "$exportdir/domains/$domain/vpasswd")
   my( $username, $domain ) = @_;
   
   (open(VPASSWD, "$exportdir/domains/$domain/vpasswd")
@@ -185,11 +187,11 @@ sub vpopmail_delete { #subroutine, not method
   rmtree "$exportdir/domains/$domain/$username"
     or die "can't rmtree $exportdir/domains/$domain/$username: $!";
 
   rmtree "$exportdir/domains/$domain/$username"
     or die "can't rmtree $exportdir/domains/$domain/$username: $!";
 
-  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid );
+  vpopmail_sync( $exportdir, $machine, $dir, $uid, $gid, $restart );
 }
 
 sub vpopmail_sync {
 }
 
 sub vpopmail_sync {
-  my( $exportdir, $machine, $dir, $uid, $gid ) = splice @_,0,5;
+  my( $exportdir, $machine, $dir, $uid, $gid, $restart ) = splice @_,0,6;
   
   chdir $exportdir;
 #  my @args = ( $rsync, "-rlpt", "-e", $ssh, "domains/",
   
   chdir $exportdir;
 #  my @args = ( $rsync, "-rlpt", "-e", $ssh, "domains/",
@@ -214,6 +216,11 @@ sub vpopmail_sync {
         'STDERR: '. join(" / ", $rsync->err). ', '.
         'STDOUT: '. join(" / ", $rsync->out);
   }
         'STDERR: '. join(" / ", $rsync->err). ', '.
         'STDOUT: '. join(" / ", $rsync->out);
   }
+
+  eval "use Net::SSH;";
+  die $@ if $@;
+
+  ssh("vpopmail\@$machine", $restart);
 }
 
 
 }
 
 
diff --git a/eg/vpopmailrestart b/eg/vpopmailrestart
deleted file mode 100755 (executable)
index c716e2e..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-for domain in /home/vpopmail/domains/*
-do
-  /home/vpopmail/bin/vmkpasswd `/bin/basename $domain`
-done
-
-/var/qmail/bin/qmail-newu
-
-killall -HUP qmail-send
-