flush STDOUT
[virtual-ldap] / bin / ldap-koha.pl
index 40c64d6..640f062 100755 (executable)
@@ -8,14 +8,25 @@ use IO::Socket;
 use lib 'lib';
 use LDAP::Koha;
 
-my $listen = '10.60.0.13:2389';
+my $debug = $ENV{DEBUG} || 0;
+$|=1;
+
+BEGIN {
+       $SIG{'__WARN__'} = sub {
+               my $level = $1 if $_[0] =~ m/^(#+)/;
+               return if defined($level) && length($level) > $debug;
+
+               warn join("\n", @_);
+       };
+}
+my $listen = shift @ARGV || 'localhost:2389';
 
 my $sock = IO::Socket::INET->new(
        Listen => 5,
        Proto => 'tcp',
        Reuse => 1,
        LocalAddr => $listen,
-) || die;
+) || die "can't listen to $listen $!";
 
 warn "# listening on $listen";
 
@@ -26,6 +37,7 @@ while (my @ready = $sel->can_read) {
                if ($fh == $sock) {
                        # let's create a new socket
                        my $psock = $sock->accept;
+                       $psock->sockopt(SO_KEEPALIVE,1);
                        $sel->add($psock);
                        $Handlers{*$psock} = LDAP::Koha->new($psock);
                } else {