Apache-AuthenPasswdSrv
view release on metacpan or search on metacpan
passwd_srv.pl view on Meta::CPAN
#!/usr/local/bin/perl -T
#
# passwd_srv.pl - Apache::AuthenPasswdSrv password server for NIS
# Version: 0.01 (Alpha release)
#
# Written by Jeffrey Hulten <jeffh@premier1.net>
#
# May be used under the GPL version 2 or later.
#
# $Id: $
#
use strict;
use Socket;
use Net::NIS;
use Sys::Syslog;
use Carp;
my $VERSION = "0.1.0";
my $YPMATCH_PATH = '/usr/bin';
my $NAME = '/tmp/pswdsock';
my $uaddr = sockaddr_un($NAME);
my $proto = getprotobyname('tcp');
my $waitedpid = 0;
my $paddr;
my $domain = &Net::NIS::yp_get_default_domain();
$ENV{'PATH'} = "/usr/bin";
$ENV{'CDPATH'} = "" if ($ENV{'CDPATH'} ne "");
$ENV{'ENV'} = "" if ($ENV{'ENV'} ne "");
openlog "$0 {$domain}", 'pid, cons, nowait', 'auth';
sub spawn; # forward declaration
sub logmsg { syslog(shift @_, shift @_, @_); }
socket(Server,PF_UNIX,SOCK_STREAM,0) or die "socket: $!";
unlink($NAME);
bind(Server,$uaddr) or die "bind: $!";
listen(Server,SOMAXCONN) or die "listen: $!";
logmsg('info', "server started on $NAME as $</$>");
$SIG{CHLD} = \&REAPER;
for ( ; $paddr = accept(Client,Server); close Client)
{
logmsg('info', "connection on $NAME");
spawn sub
{
my ($user, $passwd);
my @pwent;
print "211 Authentication Server (ver. $VERSION)\n";
print "220 <$domain> Service ready\n";
$_ = <STDIN>;
chomp;
if ($_ =~ /^(\S+) (\S+)$/)
( run in 1.176 second using v1.01-cache-2.11-cpan-63c85eba8c4 )