cleanup all encoding cruft since Koha mungles data
[virtual-ldap] / bin / ldap-rewrite.pl
index 4e2d55e..dd781c8 100755 (executable)
@@ -24,9 +24,26 @@ my $config = {
        upstream_ldap => 'ldap.ffzg.hr',
        upstream_ssl => 1,
        overlay_prefix => 'ffzg-',
+       log_file => 'log',
 
 };
 
+my $log_fh;
+
+sub log {
+       if ( ! $log_fh ) {
+               open($log_fh, '>>', $config->{log_file}) || die "can't open ", $config->{log_file},": $!";
+               print $log_fh "# " . time;
+       }
+       $log_fh->autoflush(1);
+       print $log_fh join("\n", @_),"\n";
+}
+
+BEGIN {
+       $SIG{'__WARN__'} = sub { warn @_; main::log(@_); }
+}
+
+
 if ( ! -d $config->{yaml_dir} ) {
        warn "DISABLE ", $config->{yaml_dir}," data overlay";
 }
@@ -63,21 +80,21 @@ sub handle {
 sub log_request {
        my $pdu=shift;
 
-       print '-' x 80,"\n";
-       print "Request ASN 1:\n";
-       Convert::ASN1::asn_hexdump(\*STDOUT,$pdu);
-       print "Request Perl:\n";
+#      print '-' x 80,"\n";
+#      print "Request ASN 1:\n";
+#      Convert::ASN1::asn_hexdump(\*STDOUT,$pdu);
+#      print "Request Perl:\n";
        my $request = $LDAPRequest->decode($pdu);
-       print dump($request);
+       warn "## request = ",dump($request);
 }
 
 sub log_response {
        my $pdu=shift;
 
-       print '-' x 80,"\n";
-       print "Response ASN 1:\n";
-       Convert::ASN1::asn_hexdump(\*STDOUT,$pdu);
-       print "Response Perl:\n";
+#      print '-' x 80,"\n";
+#      print "Response ASN 1:\n";
+#      Convert::ASN1::asn_hexdump(\*STDOUT,$pdu);
+#      print "Response Perl:\n";
        my $response = $LDAPResponse->decode($pdu);
 
        if ( defined $response->{protocolOp}->{searchResEntry} ) {
@@ -119,7 +136,7 @@ sub log_response {
                $pdu = $LDAPResponse->encode($response);
        }
 
-       print dump($response);
+       warn "## response = ", dump($response);
 
        return $pdu;
 }
@@ -131,10 +148,6 @@ sub run_proxy {
        die "Could not create listener socket: $!\n" unless $listenersock;
        die "Could not create connection to server: $!\n" unless $targetsock;
 
-       # mark sockets as binary
-       binmode( $listenersock );
-       binmode( $targetsock );
-
        my $sel = IO::Select->new($listenersock);
        my %Handlers;
        while (my @ready = $sel->can_read) {
@@ -162,7 +175,7 @@ my $listenersock = IO::Socket::INET->new(
        Proto => 'tcp',
        Reuse => 1,
        LocalAddr => $config->{listen},
-);
+) || die "can't open listen socket: $!";
 
 
 my $targetsock = $config->{upstream_ssl}
@@ -172,7 +185,7 @@ my $targetsock = $config->{upstream_ssl}
                PeerPort => 389,
        )
        : IO::Socket::SSL->new( $config->{upstream_ldap} . ':ldaps')
-       ;
+       || die "can't open upstream socket: $!";
 
 run_proxy($listenersock,$targetsock);