Skip Menu |

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

Report information
The Basics
Id: 47265
Status: resolved
Priority: 0/
Queue: Net-DNS

People
Owner: OLAF [...] cpan.org
Requestors: dieter.duemler [...] de.ibm.com
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



CC: SysSec-DE%IBMDE [...] de.ibm.com
Subject: Bug in Net::DNS when retrive name via Tunnel
Date: Tue, 23 Jun 2009 10:49:30 +0200
To: bug-Net-DNS [...] rt.cpan.org
From: Dieter Duemler <dieter.duemler [...] de.ibm.com>
Download smime.p7s
application/x-pkcs7-signature 5.1k

Message body not shown because it is not plain text.

Download dnsproxy.conf
application/octet-stream 967b

Message body not shown because it is not plain text.

Message body is not shown because sender requested not to inline it.

Download (untitled)
image/gif 38b
(untitled)
Download (untitled)
image/gif 47b
(untitled)
Download (untitled)
image/gif 47b
(untitled)
Download (untitled)
image/gif 156b
(untitled)
Download (untitled)
image/gif 1.8k
(untitled)
Download (untitled)
image/gif 156b
(untitled)
Download (untitled)
image/gif 63b
(untitled)
Hello, we found a problem on perl 5.10 version of Net::DNS This is perl, v5.10.0 built for i686-linux-thread-multi DNS.pm 796 2009-01-26 17:30:18Z olaf When issuing a dns tcp request via direct connection everything is fine but doing the same via a ssh tunnel the request fails IO::Socket::INET returns an unknown error This happens on Linux, Cygwin and Windos Active State of perl 5.10 You can reprduce this error using this scripte + configuration On perl 5.8 or earlier versions everything is fine Here another strange effect which came obvious to us: frequently Net:DNS under Windows XP has a UDP problem which is caused by a buggy implementation of SOCKS under Windows. Sometimes it returns a UDP package without peerhost or peerport which causes a dns proxy to crash. Line 345 my ($peerhost,$peerport) = ($sock->peerhost, $sock->peerport); a situation which never should happen (exept its Windows) Therefor I inserted this line. Line 347 return unless (defined $peerhost && defined $peerport); Mit freundlichen Grüßen / Kind regards / S pozdravem Dieter Duemler Systems Management Specialist Integrated Technology Delivery, Server Systems Operations Global Unix Datacenter Engineering Phone: +49-69-6645-5092 IBM Deutschland E-Mail: dieter.duemler@de.ibm.com Wilhelm-Fay-Str. 30-34 65936 Frankfurt Sossenheim Germany IBM Deutschland Business Services GmbH / Geschäftsführung: Markus Sieber, Bettina Weber-Kiehle Sitz der Gesellschaft: Stuttgart / Registergericht: Amtsgericht Stuttgart, HRB 17122
I have implemented your 2nd suggestion: my ($peerhost,$peerport,$sockhost) = ($sock->peerhost, $sock->peerport, $sock- Show quoted text
>sockhost);
unless (defined $peerhost && defined $peerport){ print "the Peer host and sock host appear to be undefined: bailing out of handling the UDP connection" if $self->{"Verbose"}; return; } What I do not understand is what you mean by using an SSH tunnel? Are you trying to bind to a port that was already bound to by the SSH tunnel? Can you describe that situation in a bit more detail.
 Putting to stalled state.

A better description on how SSH is used in this context would be helpful.


Hello Dieter, Am I correct in assuming that your SSH tunnel was to an Net::DNS::Nameserver object. I have a strong suspicion that you are suffering from the same problem as described in https://rt.cpan.org/Ticket/Update.html?id=56181 : The SSH tunnel fragments the TCP packets and the pieces are not glued together correctly by Net::DNS::Nameserver. Could you try replacing lines 248 till 250 of Nameserver.pm: my $charsread = $sock->sysread( $self->{"_tcp"}{$sock}{"inbuffer"}, 16384); with: my $buf; my $charsread = $sock->sysread( $buf, 16384); $self->{"_tcp"}{$sock}{"inbuffer"} .= $buf; and see if that helps. If that *does* help and your dnsproxy *did* work with perl 5.8, then the operation of the IO::Handle::sysread has changed quiet dramatically... Regards, Willem
Hi Dieter, I firmly believe you suffered from missing TCP segment assembly which was also appointed in RT#56181. Thanks for your report. Closing the ticket. -- Willem