5 SIP2::ACS - Automated Circulation System
9 Basically just a simple proxy to real ACS server
19 use Data::Dump qw(dump);
24 my $listen = '127.0.0.1:6001';
25 my $server = '10.60.0.251:6001';
27 warn "listen on $listen for SIP2/RAW\n";
29 my $lsn = IO::Socket::INET->new(Listen => 1, LocalAddr => $listen, Reuse => 1) or die $!;
30 my $sel = IO::Select->new($lsn);
37 for my $sock ($sel->can_read(1)) {
40 my $new = $lsn->accept;
41 my $ip = $sock->peerhost;
42 warn "connection from $ip\n";
46 if ( ! defined $line ) {
47 warn "disconnect from ", $sock->peerhost;
48 $sel->remove( $sock );
49 delete( $sc->{$sock} );
53 my $ip = $sock->peerhost;
54 warn "<< $ip ", dump($line);
55 if ( ! $sc->{$sock} ) {
56 warn "connect to $server for $sock\n";
57 $sc->{$sock} = SIP2::SC->new( $server );
59 $line .= "\n"; # lf to fix Koha ACS
60 print $sock $sc->{$sock}->message( $line )