#!/usr/bin/perl -Tw
#
-# $Id: svc_acct_sm.export,v 1.6 2000-07-03 09:09:14 ivan Exp $
+# $Id: svc_acct_sm.export,v 1.10 2001-05-08 10:44:17 ivan Exp $
#
# Create and export config files for sendmail, qmail
#
# /var/spool/freeside/conf and sendmail updates ivan@sisd.com 98-aug-14
#
# $Log: svc_acct_sm.export,v $
-# Revision 1.6 2000-07-03 09:09:14 ivan
+# Revision 1.10 2001-05-08 10:44:17 ivan
+# fix for OO Net::SCP
+#
+# Revision 1.9 2001/04/22 01:56:15 ivan
+# get rid of FS::SSH.pm (became Net::SSH and Net::SCP on CPAN)
+#
+# Revision 1.8 2000/07/06 03:37:24 ivan
+# don't error out on invalid svc_acct_sm.domuid's that can't be matched in
+# svc_acct.uid - just warn.
+#
+# Revision 1.7 2000/07/03 09:13:10 ivan
+# get rid of double sendmailrestart invocation; no need for multiple sessions
+#
+# Revision 1.6 2000/07/03 09:09:14 ivan
# typo
#
# Revision 1.5 2000/07/03 09:03:14 ivan
use strict;
use vars qw($conf);
use Fcntl qw(:flock);
-use FS::SSH qw(ssh scp);
+use Net::SSH qw(ssh);
+use Net::SCP qw(scp);
use FS::UID qw(adminsuidsetup datasrc);
use FS::Record qw(qsearch qsearchs);
use FS::svc_acct;
);
my($domain)=$domain{$domsvc};
my($svc_acct)=qsearchs('svc_acct',{'uid'=>$domuid});
+ unless ( $svc_acct ) {
+ warn "WARNING: couldn't find svc_acct.uid $domuid (svc_acct_sm.svcnum ".
+ $svc_acct_sm->svcnum. ") - corruped database?\n";
+ next;
+ }
my($username,$dir,$uid,$gid)=(
$svc_acct->username,
$svc_acct->dir,
my($sendmailmachine);
foreach $sendmailmachine (@sendmailmachines) {
- scp("$spooldir/sendmail.cw","root\@$sendmailmachine:$sendmailconfigpath/sendmail.cw.new")
- == 0 or die "scp error: $!";
- scp("$spooldir/virtusertable","root\@$sendmailmachine:$sendmailconfigpath/virtusertable.new")
- == 0 or die "scp error: $!";
+ my $scp = new Net::SCP;
+ $scp->scp("$spooldir/sendmail.cw","root\@$sendmailmachine:$sendmailconfigpath/sendmail.cw.new")
+ or die "scp error: ". $scp->{errstr};
+ $scp->scp("$spooldir/virtusertable","root\@$sendmailmachine:$sendmailconfigpath/virtusertable.new")
+ or die "scp error: ". $scp->{errstr};
ssh("root\@$sendmailmachine",
"( ".
"mv $sendmailconfigpath/sendmail.cw.new $sendmailconfigpath/sendmail.cw; ".
" )"
)
== 0 or die "ssh error: $!";
- if ( $conf->config('sendmailrestart') ) {
- ssh("root\@$sendmailmachine", $conf->config('sendmailrestart') )
- == 0 or die "ssh error: $!";
- }
}
my($qmailmachine);
foreach $qmailmachine (@qmailmachines) {
- scp("$spooldir/recipientmap","root\@$qmailmachine:/var/qmail/control/recipientmap")
- == 0 or die "scp error: $!";
- scp("$spooldir/virtualdomains","root\@$qmailmachine:/var/qmail/control/virtualdomains")
- == 0 or die "scp error: $!";
- scp("$spooldir/rcpthosts","root\@$qmailmachine:/var/qmail/control/rcpthosts")
- == 0 or die "scp error: $!";
+ my $scp = new Net::SCP;
+ $scp->scp("$spooldir/recipientmap","root\@$qmailmachine:/var/qmail/control/recipientmap")
+ or die "scp error: ". $scp->{errstr};
+ $scp->scp("$spooldir/virtualdomains","root\@$qmailmachine:/var/qmail/control/virtualdomains")
+ or die "scp error: ". $scp->{errstr};
+ $scp->scp("$spooldir/rcpthosts","root\@$qmailmachine:/var/qmail/control/rcpthosts")
+ or die "scp error: ". $scp->{errstr};
#ssh("root\@$qmailmachine","/etc/init.d/qmail restart")
# == 0 or die "ssh error: $!";
}