X-Git-Url: https://git.adam-barratt.org.uk/?p=mirror%2Fuserdir-ldap.git;a=blobdiff_plain;f=ud-fingerserv;h=fcdd57a5a7c3b5ab096eb3d5bf5edf3ad41c44fc;hp=42b82393a750e2854d3ed4d70820bb0c0e2035bf;hb=HEAD;hpb=340801790a3e8d042149a48d4eff19dc863dff0a diff --git a/ud-fingerserv b/ud-fingerserv index 42b8239..fcdd57a 100755 --- a/ud-fingerserv +++ b/ud-fingerserv @@ -3,6 +3,7 @@ # (c) 1999 Randolph Chung. Licensed under the GPL. # (c) 2004 Martin Schulze. Licensed under the GPL. +# Copyright (c) 2008 Peter Palfrader use lib '/var/www/userdir-ldap/'; #use lib '/home/randolph/projects/userdir-ldap/web'; @@ -12,7 +13,7 @@ use IO::Socket; use POSIX qw(:sys_wait_h); use Getopt::Std; use Util; -use Net::LDAP qw(:all); +use Net::LDAP; # Global settings... my %config = &Util::ReadConfigFile; @@ -43,9 +44,9 @@ $SIG{CHLD} = \&Reaper; &help if (defined($opts{h})); my $logfh; -unless ($opt{i} || $opt{f}) { - die "Need logfile unless running foreground\n" unless (defined($opt{l})); - open ($logfh, $opt{l}) or die "Can't open logfile: $!\n"; +unless ($opts{i} || $opts{f}) { + die "Need logfile unless running foreground\n" unless (defined($opts{l})); + open ($logfh, $opts{l}) or die "Can't open logfile: $!\n"; } else { $logfh = \*STDOUT; } @@ -61,9 +62,12 @@ if (!$use_inetd) { chdir '/' or die "Can't chdir to /: $!"; open STDIN, '/dev/null' or die "Can't read /dev/null: $!"; open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!"; - defined(my $pid = fork) or die "Can't fork: $!"; + my $pid; + defined($pid = fork) or die "Can't fork: $!"; exit if $pid; setsid or die "Can't start a new session: $!"; + defined($pid = fork) or die "Can't fork: $!"; + exit if $pid; open STDERR, '>&STDOUT' or die "Can't dup stdout: $!"; } @@ -73,7 +77,7 @@ if (!$use_inetd) { Listen => SOMAXCONN, Reuse => 1); - mydie "Cannot listen on finger port" unless $server; + mydie("Cannot listen on finger port") unless $server; &log("[Server listening for connections]"); my ($pid, $client, $hostinfo); @@ -81,7 +85,7 @@ if (!$use_inetd) { while ($client = $server->accept()) { &log("Forking to handle client request") if (defined($opts{v})); next if $pid = fork; # parent - mydie "fork: $!" unless defined $pid; + mydie("fork: $!") unless defined $pid; # child $client->autoflush(1);