Skip Menu |
 

This queue is for tickets about the Net-Telnet CPAN distribution.

Report information
The Basics
Id: 8093
Status: resolved
Priority: 0/
Queue: Net-Telnet

People
Owner: Nobody in particular
Requestors: thomas.vesper [...] web.de
Cc:
AdminCc:

Bug Information
Severity: Normal
Broken in: 3.03
Fixed in: 3.04

Attachments


Subject: [Patch] signal handling vs. i18n
Download (untitled) / with headers
text/plain 512b
I ran into a strange problem using (so far very successfully) Net::Telnet on Linux and perl 5.8.1: A caught signal during an active telnet-session let the program break completely with "read error: Unterbrechung während des Betriebssystemaufrufs". After some desperate debugging I found the reason was the *languange* of the error message! Unsetting $LANG solved the problem. To have a more portable and permanent solution I replaced all regex tests for $! by numeric test. Patch included. Regards, Thomas.
--- Net-Telnet-3.03/lib/Net/Telnet.pm.orig 2002-07-17 02:30:42.000000000 +0200 +++ Net-Telnet-3.03/lib/Net/Telnet.pm 2004-10-22 08:47:07.000000000 +0200 @@ -29,6 +29,7 @@ ## Module import. use Exporter (); +use Errno qw(EINTR); use Socket qw(AF_INET SOCK_STREAM inet_aton sockaddr_in); use Symbol qw(qualify); @@ -2125,7 +2126,7 @@ return $self->error("read timed-out"); } else { # error waiting for input ready - next if $! =~ /^interrupted/i; + next if $! == EINTR; $s->{opened} = ''; return $self->error("read error: $!"); @@ -2146,7 +2147,7 @@ ## Handle any read errors. if (!defined $nread) { # read failed - next if $! =~ /^interrupted/i; # restart interrupted syscall + next if $! == EINTR; $s->{opened} = ''; return $self->error("read error: $!"); @@ -2999,7 +3000,7 @@ return $self->error("$subname timed-out"); } else { # error waiting for output ready - next if $! =~ /^interrupted/i; + next if $! == EINTR; $s->{opened} = ''; return $self->error("write error: $!"); @@ -3011,7 +3012,7 @@ ## Handle any write errors. if (!defined $nwrote) { # write failed - next if $! =~ /^interrupted/i; # restart interrupted syscall + next if $! == EINTR; $s->{opened} = ''; return $self->error("write error: $!");
Download (untitled) / with headers
text/plain 192b
Fixed in the development version for 3.04. You can find the development version at ftp://ftp.rgrs.com Thanks so much to taking the time to debug this problem and for submitting this request.


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

Please report any issues with rt.cpan.org to rt-cpan-admin@bestpractical.com.