CRLF=1 to convert CR -> CR/LF in both directions
authorDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 30 Dec 2011 15:37:54 +0000 (16:37 +0100)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Fri, 30 Dec 2011 15:38:43 +0000 (16:38 +0100)
lib/SIP2/ACS.pm

index 8ecc8c7..43fc757 100644 (file)
@@ -42,8 +42,8 @@ sub proxy {
                                warn "connection from $ip\n";
                                $sel->add($new);
                        } else {
-                               my $line = <$sock>;
-                               if ( ! defined $line ) {
+                               my $request = <$sock>;
+                               if ( ! defined $request ) {
                                        warn "disconnect from ", $sock->peerhost;
                                        $sel->remove( $sock );
                                        delete( $sc->{$sock} );
@@ -51,13 +51,16 @@ sub proxy {
                                        next;
                                }
                                my $ip = $sock->peerhost;
-                               warn "<< $ip ", dump($line);
+                               warn "<< $ip ", dump($request);
                                if ( ! $sc->{$sock} ) {
                                        warn "connect to $server for $sock\n";
                                        $sc->{$sock} = SIP2::SC->new( $server );
                                }
-                               $line .= "\n"; # lf to fix Koha ACS
-                               print $sock $sc->{$sock}->message( $line )
+                               $request .= "\n" if $request !~ m/\n$/ && $ENV{CRLF};
+                               my $response = $sc->{$sock}->message( $request );
+                               $response .= "\n" if $response !~ m/\n$/ && $ENV{CRLF};
+                               print $sock $response;
+                               warn ">> $ip ", dump($response);
                        }
                }
        }