Skip Menu |

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

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

People
Owner: Nobody in particular
Requestors: jcgriffiths [...] yahoo.com
Cc:
AdminCc:

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



Subject: Invalid registry path for win32.pm
Hi, File: Perl\site\lib\Net\DNS\Resolver\Win32.pm Line: 64 There is a spelling mistake in the registry path to the Tcpip parameters. In the file it is: Tcplp in uppercase - TCPLP and it should be : Tcpip my $root = 'SYSTEM\CurrentControlSet\Services\Tcplp\Parameters'; should be: my $root = 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; I found this typing error whilst trying to use Net-DNS on another machine. Because the machine doesnt have access to the perl ppm servers I copied my perl installation across to the machine. For some reason, I get a dump of the IP configuration. In the script it contains the line: use Net::DNS; C:\nsn_apps\ran_tools\www\cgi-bin>cat test.pl use Net::DNS; C:\nsn_apps\ran_tools\www\cgi-bin>c:\nsn_apps\Perl\bin\perl.exe -cw test.pl $VAR1 = { 'EnableRouting' => 0, 'EnableDns' => 0, 'HostName' => 'EOSRS', 'EnableProxy' => 0, 'DomainName' => 'europe.nokia.com', 'NodeType' => 8, 'DnsServersList' => [ { 'IpMask' => '', 'IpAddress' => '172.20.29.204', 'Context' => 0 }, { 'IpMask' => '', 'IpAddress' => '172.20.29.205', 'Context' => 0 } ], 'ScopeId' => '' }; Use of uninitialized value in concatenation (.) or string at c:/nsn_apps/Perl/site/lib/Net/DNS/Resolver/Win32.pm line 75 . $VAR1 = { 'cdflag' => 0, 'stayopen' => 0, 'srcaddr' => '0.0.0.0', 'answerfrom' => '', 'debug' => 0, 'ignqrid' => 0, 'defnames' => 1, 'retrans' => 5, 'port' => 53, 'usevc' => 0, 'force_v4' => 0, 'retry' => 4, 'recurse' => 1, 'dnsrch' => 1, 'persistent_udp' => 0, 'tsig_rr' => undef, 'persistent_tcp' => 0, 'querytime' => undef, 'udppacketsize' => 0, 'domain' => 'europe.nokia.com', 'axfr_soa_count' => 0, 'searchlist' => [ 'europe.nokia.com' ], 'tcp_timeout' => 120, 'errorstring' => 'unknown error or no error', 'nameservers' => [ '172.20.29.204', '172.20.29.205' ], 'axfr_sel' => undef, 'axfr_rr' => [], 'adflag' => 1, 'igntc' => 0, 'udp_timeout' => undef, 'dnssec' => 0, 'srcport' => 0 }; test.pl syntax OK C:\nsn_apps\ran_tools\www\cgi-bin> --------- Remote machine: Windows 2000 (activestate perl 5.10 is still supported with this os version) My machine: Win XP. ppm query Net-DNS Net-DNS │ 0.64 │ Perl DNS resolver module │ site │ Show quoted text
>perl -v
This is perl, v5.10.0 built for MSWin32-x86-multi-thread (with 5 registered patches, see perl -V for more detail) Copyright 1987-2007, Larry Wall Binary build 1003 [285500] provided by ActiveState http://www.ActiveState.com Built May 13 2008 16:52:49 Perl may be copied only under the terms of either the Artistic License or the GNU General Public License, which may be found in the Perl 5 source kit. Complete documentation for Perl, including FAQ lists, should be found on this system using "man perl" or "perldoc perl". If you have access to the Internet, point your browser at http://www.perl.org/, the Perl Home Page.
Subject: Win32.pm
package Net::DNS::Resolver::Win32; # # $Id: Win32.pm 756 2008-12-22 21:32:51Z olaf $ # use strict; use vars qw(@ISA $VERSION); use Net::DNS::Resolver::Base (); @ISA = qw(Net::DNS::Resolver::Base); $VERSION = (qw$LastChangedRevision: 756 $)[1]; use Win32::IPHelper; use Win32::Registry; use Data::Dumper; sub init { my $debug=1; my ($class) = @_; my $defaults = $class->defaults; my $FIXED_INFO={}; my $ret = Win32::IPHelper::GetNetworkParams($FIXED_INFO); if ($ret == 0) { print Dumper $FIXED_INFO if $debug; } else { Carp::croak "GetNetworkParams() error %u: %s\n", $ret, Win32::FormatMessage($ret); } my @nameservers = map { $_->{'IpAddress'} } @{$FIXED_INFO->{'DnsServersList'}}; if (@nameservers) { # remove blanks and dupes my @a; my %h; foreach my $ns (@nameservers) { push @a, $ns unless (!$ns || $h{$ns}); $h{$ns} = 1; } $defaults->{'nameservers'} = [map { m/(.*)/ } @a]; } my $domain=$FIXED_INFO->{'DomainName'}||''; my $searchlist = "$domain" ; # # The Win32::IPHelper does not return searchlist. Lets do a best effort attempt to get # a searchlist from the registry. my ($resobj, %keys); my $root = 'SYSTEM\CurrentControlSet\Services\Tcplp\Parameters'; my $opened_registry =1; unless ($main::HKEY_LOCAL_MACHINE->Open($root, $resobj)) { # Didn't work, maybe we are on 95/98/Me? $root = 'SYSTEM\CurrentControlSet\Services\VxD\MSTCP'; $main::HKEY_LOCAL_MACHINE->Open($root, $resobj) or $opened_registry =0; } if ($opened_registry && $resobj->GetValues(\%keys)){ $searchlist .= $keys{'SearchList'}->[2]; } if ($domain) { $defaults->{'domain'} = $domain; } my $usedevolution = $keys{'UseDomainNameDevolution'}->[2]; if ($searchlist) { # fix devolution if configured, and simultaneously make sure no dups (but keep the order) my @a; my %h; foreach my $entry (split(m/[\s,]+/, $searchlist)) { push(@a, $entry) unless $h{$entry}; $h{$entry} = 1; if ($usedevolution) { # as long there's more than two pieces, cut while ($entry =~ m#\..+\.#) { $entry =~ s#^[^\.]+\.(.+)$#$1#; push(@a, $entry) unless $h{$entry}; $h{$entry} = 1; } } } $defaults->{'searchlist'} = \@a; } $class->read_env; if (!$defaults->{'domain'} && @{$defaults->{'searchlist'}}) { $defaults->{'domain'} = $defaults->{'searchlist'}[0]; } elsif (!@{$defaults->{'searchlist'}} && $defaults->{'domain'}) { $defaults->{'searchlist'} = [ $defaults->{'domain'} ]; } print Dumper $defaults if $debug; } 1; __END__ =head1 NAME Net::DNS::Resolver::Win32 - Windows Resolver Class =head1 SYNOPSIS use Net::DNS::Resolver; =head1 DESCRIPTION This class implements the windows specific portions of C<Net::DNS::Resolver>. No user serviceable parts inside, see L<Net::DNS::Resolver|Net::DNS::Resolver> for all your resolving needs. =head1 COPYRIGHT Copyright (c) 1997-2002 Michael Fuhr. Portions Copyright (c) 2002-2004 Chris Reinhardt. Portions Copyright (c) 2009 Olaf Kolkman, NLnet Labs All rights reserved. This program is free software; you may redistribute it and/or modify it under the same terms as Perl itself. =head1 SEE ALSO L<perl(1)>, L<Net::DNS>, L<Net::DNS::Resolver> =cut
Subject: Re: [rt.cpan.org #42375] Invalid registry path for win32.pm
Date: Tue, 13 Jan 2009 22:59:50 +0100
To: bug-Net-DNS [...] rt.cpan.org
From: Olaf Kolkman <olaf [...] dacht.net>
On Jan 13, 2009, at 7:50 PM, John via RT wrote: Show quoted text
> Tue Jan 13 13:50:37 2009: Request 42375 was acted upon. > Transaction: Ticket created by johnnybravo > Queue: Net-DNS > Subject: Invalid registry path for win32.pm > Broken in: 0.64 > Severity: Normal > Owner: Nobody > Requestors: jcgriffiths@yahoo.com > Status: new > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=42375 > > > > Hi, > > File: Perl\site\lib\Net\DNS\Resolver\Win32.pm > Line: 64 > > There is a spelling mistake in the registry path to the Tcpip > parameters. > In the file it is: Tcplp in uppercase - TCPLP > and it should be : Tcpip > > my $root = 'SYSTEM\CurrentControlSet\Services\Tcplp\Parameters'; > > should be: > > my $root = 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; > >
I fixed the typo, but note that the $opened_registry should have been set to "0" on all these trials and it puzzles me what happens there exactly., Show quoted text
> I found this typing error whilst trying to use Net-DNS on another > machine. Because the machine doesnt have access to the perl ppm > servers > I copied my perl installation across to the machine. For some > reason, I > get a dump of the IP configuration. >
Does the other machine have IP::Helper installed, which is a new prerequisite? --Olaf
Download PGP.sig
application/pgp-signature 194b

Message body not shown because it is not plain text.

From: jcgriffiths [...] yahoo.com
Hi Olaf, Yes, the other machine does have Win32-IPHelper, v0.06. It looks like a data::dumper output. Is there anything that causes it during the stage when 'use Net::DNS' is called?? John On Tue Jan 13 17:00:19 2009, olaf@dacht.net wrote: Show quoted text
> > > > > On Jan 13, 2009, at 7:50 PM, John via RT wrote: >
> > Tue Jan 13 13:50:37 2009: Request 42375 was acted upon. > > Transaction: Ticket created by johnnybravo > > Queue: Net-DNS > > Subject: Invalid registry path for win32.pm > > Broken in: 0.64 > > Severity: Normal > > Owner: Nobody > > Requestors: jcgriffiths@yahoo.com > > Status: new > > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=42375 > > > > > > > Hi, > > > > File: Perl\site\lib\Net\DNS\Resolver\Win32.pm > > Line: 64 > > > > There is a spelling mistake in the registry path to the Tcpip > > parameters. > > In the file it is: Tcplp in uppercase - TCPLP > > and it should be : Tcpip > > > > my $root = 'SYSTEM\CurrentControlSet\Services\Tcplp\Parameters'; > > > > should be: > > > > my $root = 'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters'; > > > >
> > I fixed the typo, but note that the $opened_registry should have been > set to "0" on all these trials and it puzzles me what happens there > exactly., > >
> > I found this typing error whilst trying to use Net-DNS on another > > machine. Because the machine doesnt have access to the perl ppm > > servers > > I copied my perl installation across to the machine. For some > > reason, I > > get a dump of the IP configuration. > >
> > > Does the other machine have IP::Helper installed, which is a new > prerequisite? > > --Olaf
Hi Olaf, just a couple of other things to add... I was previously using v0.63 and didnt get any problems. After upgrading to 0.64 I started seeing errors, even when using a file containing just 'use Net::DNS;'. I tried to use the debugger to find where the data-dumper style output was coming from but I dont have a lot of experience using it. I noticed that the 0.64 package failed during a build on the trouchell repository: http://trouchelle.com/perl/ppmrepview.pl?id=40601&v=10 I got the packages from the following repositories: 0.63: uwinnipeg 0.64: Activestate John
Subject: Re: [rt.cpan.org #42375] Invalid registry path for win32.pm
Date: Wed, 14 Jan 2009 19:31:40 +0100
To: bug-Net-DNS [...] rt.cpan.org
From: Olaf Kolkman <olaf [...] dacht.net>
There is also a line with my $debug=1; if you set that to 0 then I think we are getting closer... Two dumb typos not caught by test-code. --Olaf On Jan 14, 2009, at 3:17 PM, John via RT wrote: Show quoted text
> Queue: Net-DNS > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=42375 > > > Hi Olaf, > > just a couple of other things to add... > > I was previously using v0.63 and didnt get any problems. After > upgrading to 0.64 I started seeing errors, even when using a file > containing just 'use Net::DNS;'. I tried to use the debugger to find > where the data-dumper style output was coming from but I dont have a > lot > of experience using it. > > I noticed that the 0.64 package failed during a build on the trouchell > repository: http://trouchelle.com/perl/ppmrepview.pl?id=40601&v=10 > > I got the packages from the following repositories: > > 0.63: uwinnipeg > 0.64: Activestate > > John
Download PGP.sig
application/pgp-signature 194b

Message body not shown because it is not plain text.

From: jcgriffiths [...] yahoo.com
Hi Olaf, I made those 2 changes and things look ok for now. I have to test this on a customers network and will report back. Thanks for your support. Will you be making a new release ? John
Subject: Re: [rt.cpan.org #42375] Invalid registry path for win32.pm
Date: Thu, 15 Jan 2009 09:38:29 +0100
To: "bug-Net-DNS [...] rt.cpan.org" <bug-Net-DNS [...] rt.cpan.org>
From: Olaf Kolkman <olaf [...] dacht.net>
I will rerelease, depending on your positive feedback about custommer tests. --Olaf Sent from a phone; appologies for the telegram style this message might have. On 14 jan 2009, at 23:31, "John via RT" <bug-Net-DNS@rt.cpan.org> wrote: Show quoted text
> Queue: Net-DNS > Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=42375 > > > Hi Olaf, > > I made those 2 changes and things look ok for now. I have to test this > on a customers network and will report back. > > Thanks for your support. Will you be making a new release ? > > John
Hi Olaf, I made the 2 changes on my customers network and the debuggin info is not being displayed. I have another issue: I tried looking up a hostname using Net-DNS and it would fail. If I ping the hostname from the command line it would resolve and ping successfully, and then the net-dns lookup would then work. Ive sent a couple of logs to your mail address about this. John