use strict;
use IO::Handle;
-use FS::SSH qw(sshopen2);
+use Net::SSH qw(sshopen2);
use FS::UID qw(adminsuidsetup);
use FS::Record qw(qsearchs);
use FS::svc_acct;
-$SIG{CHLD} = sub { wait() };
+my $user = shift or die &usage;
+adminsuidsetup $user;
-&adminsuidsetup;
+my($shellmachine)=shift or die &usage;
-my($fs_passwdd)="/usr/local/sbin/fs_passwdd";
+#causing trouble for some folks
+#$SIG{CHLD} = sub { wait() };
-my($shellmachine)=shift;
-die "Usage: fs_passwd_server shellmachine\n" unless $shellmachine;
+my($fs_passwdd)="/usr/local/sbin/fs_passwdd";
while (1) {
my($reader,$writer)=(new IO::Handle, new IO::Handle);
unless ( $svc_acct ) { print $writer "Incorrect password.\n"; next; }
my(%hash)=$svc_acct->hash;
- my($new_svc_acct) = create FS::svc_acct ( \%hash );
+ my($new_svc_acct) = new FS::svc_acct ( \%hash );
$new_svc_acct->setfield('_password',$new_password)
if $new_password && $new_password ne $old_password;
$new_svc_acct->setfield('finger',$new_gecos) if $new_gecos;
warn "Connection to $shellmachine lost! Reconnecting...\n";
}
+sub usage {
+ die "Usage:\n\n fs_passwd_server user shellmachine\n";
+}
+