From: Dobrica Pavlinusic Date: Tue, 24 Jan 2017 12:49:07 +0000 (+0100) Subject: RFID_LISTEN=host:port to listen for TCP socket from reader X-Git-Url: http://git.rot13.org/?p=Biblio-RFID.git;a=commitdiff_plain;h=3f62ab91a28c7bd7e79905351bc2b75e4525013d;hp=fc04c400151a4ac11416333d4350213978d3f652 RFID_LISTEN=host:port to listen for TCP socket from reader --- diff --git a/lib/Biblio/RFID/Reader/Serial.pm b/lib/Biblio/RFID/Reader/Serial.pm index 24432d5..b97be50 100644 --- a/lib/Biblio/RFID/Reader/Serial.pm +++ b/lib/Biblio/RFID/Reader/Serial.pm @@ -61,6 +61,29 @@ sub port { return $port; } + if ( my $listen = $ENV{RFID_LISTEN} ) { + my $server = Biblio::RFID::Reader::INET->new( + Proto => 'tcp', + LocalAddr => $listen, + Listen => SOMAXCONN, + Reuse => 1 + ); + + die "can't setup server $listen: $!" unless $server; + + warn "RFID: waiting for reader connection to $listen"; + + my $port = $server->accept(); + $port->autoflush(1); + + warn "## LISTEN $listen ", ref($port); + $self->{port} = $port; + $self->init; + + return $port; + + } + my $settings = $self->serial_settings; my @devices = $ENV{RFID_DEVICE} ? ( $ENV{RFID_DEVICE} ) : glob '/dev/ttyUSB* /dev/ttyS*'; warn "# port devices ",dump(@devices);