Skip Menu |

This queue is for tickets about the POE-Component-Client-DNS CPAN distribution.

Report information
The Basics
Id: 27644
Status: open
Priority: 0/
Queue: POE-Component-Client-DNS

People
Owner: Nobody in particular
Requestors: robertmich [...] o2.pl
Cc:
AdminCc:

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



Subject: Bug
Date: Tue, 19 Jun 2007 19:34:30 +0200
To: bug-POE-Component-Client-DNS [...] rt.cpan.org
From: robertmich <robertmich [...] o2.pl>
Code: --8<-------------------------------------------------------------8<-- #!/usr/bin/perl use strict; use warnings; use Data::Dumper; use POE qw/Component::Client::DNS/; our $dns = POE::Component::Client::DNS->spawn(Alias => 'dns'); our $session = POE::Session->create ( inline_states => { _start => sub { my $query = $dns->resolve ( event => 'response', context => {}, timeout => 5, host => 'serwer.waw.pl', type => 'NS', ); $_[KERNEL]->yield(response => $query) if ($query); }, response => sub { print Dumper $_[ARG0] }, } ); $poe_kernel->run(); --8<-------------------------------------------------------------8<-- Returns: $VAR1 = { 'response' => undef, 'error' => 'additional section incomplete', 'context' => {}, 'class' => 'IN', 'type' => 'NS', 'host' => 'serwer.waw.pl' }; # host -t ns serwer.waw.pl serwer.waw.pl name server dns4.serwer.waw.pl. serwer.waw.pl name server hura.dns.net.pl. serwer.waw.pl name server dns4.locogroup.com. serwer.waw.pl name server ursynow.dns.net.pl. serwer.waw.pl name server dns2.serwer.waw.pl. serwer.waw.pl name server master.dns.net.pl. serwer.waw.pl name server dns3.serwer.waw.pl. serwer.waw.pl name server dns1.locogroup.net. serwer.waw.pl name server dns2.locogroup.net. serwer.waw.pl name server dns1.locogroup.com. serwer.waw.pl name server dns1.serwer.waw.pl. serwer.waw.pl name server slave.dns.net.pl. serwer.waw.pl name server dns3.locogroup.net. serwer.waw.pl name server dns2.locogroup.com. serwer.waw.pl name server dns4.locogroup.net. serwer.waw.pl name server dns3.locogroup.com. I think, PoCo::Client::DNS doesn't wait for next packets, if response doesn't fit in one packet.
I think you are correct. Thank you for the test program, but it doesn't respond with an error for me. Do you know of another DNS lookup that returns multiple packets worth of data?
It appears that TCP DNS is required for large responses. It also appears that Net::DNS::Resolver's bgsend() (background send) does not support TCP, which leaves us in a difficult place. A solution will be delayed while we consider other options.
Net::DNS 1.03 supports TCP in bgsend() now, so this is in theory resolved. Whether or not it works as desired in practice remains to be proven. If I don't get a test case to prove the problem and/or fix by 2016, I'll consider this ticket resolved by the new Net::DNS.