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 )