Hello community,
here is the log from the commit of package perl-Net-DNS-Resolver-Programmable for openSUSE:Factory checked in at 2017-09-05 15:13:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Net-DNS-Resolver-Programmable (Old)
and /work/SRC/openSUSE:Factory/.perl-Net-DNS-Resolver-Programmable.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Net-DNS-Resolver-Programmable"
Tue Sep 5 15:13:56 2017 rev:14 rq:520471 version:0.009
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Net-DNS-Resolver-Programmable/perl-Net-DNS-Resolver-Programmable.changes 2015-01-03 22:03:02.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-Net-DNS-Resolver-Programmable.new/perl-Net-DNS-Resolver-Programmable.changes 2017-09-05 15:13:58.643718678 +0200
@@ -1,0 +2,53 @@
+Tue Jul 25 05:56:04 UTC 2017 - coolo@suse.com
+
+- updated to 0.009
+ see /usr/share/doc/packages/perl-Net-DNS-Resolver-Programmable/CHANGES
+
+ --- 0.009 (2017-07-24)
+ + Cleaner way to handle both arrays of strings and Net::DNS::Packet objects,
+ courtesy of NLNETLABS (Dick Franks) in RT 122542 - thanks!
+ + Extend tests to cover non-mocked queries too
+
+ --- 0.008 (2017-07-21)
+ * Add Scalar::Util to deps
+
+ --- 0.007 (2017-07-19)
+ * Fix handling pre-prepared ::Packet objects passed to send()
+ + Additional tests
+
+- remove Net-DNS-Resolver-Net-DNS-0.75.patch
+
+-------------------------------------------------------------------
+Mon Jul 17 05:53:13 UTC 2017 - coolo@suse.com
+
+- updated to 0.006
+ see /usr/share/doc/packages/perl-Net-DNS-Resolver-Programmable/CHANGES
+
+ --- 0.006 (2017-07-16)
+ * Don't demand 5.10, work on perl >= 5.6
+ * No taint mode flag in t/01-basic.t
+ * Avoid problems with our $VERSION = '...' on one line
+ All these courtesy of Dick Franks (rwfranks) - thanks!
+
+-------------------------------------------------------------------
+Fri Jul 14 05:51:18 UTC 2017 - coolo@suse.com
+
+- updated to 0.005
+ see /usr/share/doc/packages/perl-Net-DNS-Resolver-Programmable/CHANGES
+
+ --- 0.005 (2017-07-13)
+
+ * Remove debian/ subdir as per RT #108522
+ * Regenerate README via pod2readme
+ * Fix version number in changelog entry below - d'oh - and remove
+ use of deprecated qv()
+ * Import rcode list from Net::DNS - RT 96390
+
+
+ --- 0.004 (2017-07-13)
+
+ * BIGPRESH taking over maintainership of this seemingly orphaned but
+ very useful distribution. Plan to fix various RT tickets.
+ * Fix RT 109266 - avoid deprecated make_query_packet() call
+
+-------------------------------------------------------------------
Old:
----
Net-DNS-Resolver-Net-DNS-0.75.patch
Net-DNS-Resolver-Programmable-v0.003.tar.gz
New:
----
Net-DNS-Resolver-Programmable-0.009.tar.gz
cpanspec.yml
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Net-DNS-Resolver-Programmable.spec ++++++
--- /var/tmp/diff_new_pack.XRW6hx/_old 2017-09-05 15:13:59.371616362 +0200
+++ /var/tmp/diff_new_pack.XRW6hx/_new 2017-09-05 15:13:59.375615800 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-Net-DNS-Resolver-Programmable
#
-# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,60 +17,48 @@
Name: perl-Net-DNS-Resolver-Programmable
+Version: 0.009
+Release: 0
%define cpan_name Net-DNS-Resolver-Programmable
-Summary: Programmable DNS resolver class for offline emulation of DNS
-License: Artistic-1.0
+Summary: Programmable Dns Resolver Class for Offline
+License: Artistic-1.0 or GPL-1.0+
Group: Development/Libraries/Perl
-Version: 0.003
-Release: 0
-Url: http://search.cpan.org/dist/Net-DNS-Resolver-Programmable
-Source: http://search.cpan.org/CPAN/authors/id/J/JM/JMEHNLE/net-dns-resolver-program...
-Patch0: Net-DNS-Resolver-Net-DNS-0.75.patch
+Url: http://search.cpan.org/dist/Net-DNS-Resolver-Programmable/
+Source0: https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/%{cpan_name}-%{version}.tar.gz
+Source1: cpanspec.yml
BuildArch: noarch
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-%{perl_requires}
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: perl(Module::Build) >= 0.2805
-BuildRequires: perl(Net::DNS)
-Requires: perl(Net::DNS)
+BuildRequires: perl(Net::DNS) >= 0.69
+Requires: perl(Net::DNS) >= 0.69
+%{perl_requires}
%description
-Net::DNS::Resolver::Programmable is a Net::DNS::Resolver descendant class that
-allows a virtual DNS to be emulated instead of querying the real DNS. A set of
-static DNS records may be supplied, or arbitrary code may be specified as a
-means for retrieving DNS records, or even generating them on the fly.
-
-
-Authors:
---------
- Julian Mehnle
+*Net::DNS::Resolver::Programmable* is a *Net::DNS::Resolver* descendant
+class that allows a virtual DNS to be emulated instead of querying the real
+DNS. A set of static DNS records may be supplied, or arbitrary code may be
+specified as a means for retrieving DNS records, or even generating them on
+the fly.
%prep
-%setup -q -n %{cpan_name}-v%{version}
-%patch0 -p1
+%setup -q -n %{cpan_name}-%{version}
%build
-%{__perl} Build.PL --prefix $RPM_BUILD_ROOT/usr --installdirs vendor
-./Build
+%{__perl} Makefile.PL INSTALLDIRS=vendor
+%{__make} %{?_smp_mflags}
%check
-./Build test
+%{__make} test
%install
-./Build install
-# do not perl_process_packlist (noarch)
-# remove .packlist file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_vendorarch
-# remove perllocal.pod file
-%{__rm} -rf $RPM_BUILD_ROOT%perl_archlib
+%perl_make_install
+%perl_process_packlist
%perl_gen_filelist
-%clean
-%{__rm} -rf $RPM_BUILD_ROOT
-
%files -f %{name}.files
-%defattr(-,root,root)
-%doc CHANGES LICENSE README SIGNATURE
+%defattr(-,root,root,755)
+%doc CHANGES README TODO
+%license LICENSE
%changelog
++++++ Net-DNS-Resolver-Programmable-v0.003.tar.gz -> Net-DNS-Resolver-Programmable-0.009.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/Build.PL new/Net-DNS-Resolver-Programmable-0.009/Build.PL
--- old/Net-DNS-Resolver-Programmable-v0.003/Build.PL 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/Build.PL 1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
-use Module::Build;
-
-my $build = Module::Build->new(
- module_name => 'Net::DNS::Resolver::Programmable',
- dist_author => 'Julian Mehnle ',
- license => 'perl',
- requires => {
- # Core requirements:
- perl => 0,
- version => 0,
- Net::DNS => 0
- },
- recommends => {
- },
- build_requires => {
- # Build-only requirements:
- Module::Build => '0.2805'
- },
- create_makefile_pl
- => 'passthrough',
- sign => 1
-);
-
-$build->create_build_script();
-
-# $Id: Build.PL 13 2007-05-30 22:12:35Z julian $
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/CHANGES new/Net-DNS-Resolver-Programmable-0.009/CHANGES
--- old/Net-DNS-Resolver-Programmable-v0.003/CHANGES 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/CHANGES 2017-07-24 23:02:30.000000000 +0200
@@ -4,6 +4,40 @@
# ! = Changed something significant, or removed a feature
# * = Fixed a bug, or made a minor improvement
+--- 0.009 (2017-07-24)
+ + Cleaner way to handle both arrays of strings and Net::DNS::Packet objects,
+ courtesy of NLNETLABS (Dick Franks) in RT 122542 - thanks!
+ + Extend tests to cover non-mocked queries too
+
+--- 0.008 (2017-07-21)
+ * Add Scalar::Util to deps
+
+--- 0.007 (2017-07-19)
+ * Fix handling pre-prepared ::Packet objects passed to send()
+ + Additional tests
+
+--- 0.006 (2017-07-16)
+ * Don't demand 5.10, work on perl >= 5.6
+ * No taint mode flag in t/01-basic.t
+ * Avoid problems with our $VERSION = '...' on one line
+ All these courtesy of Dick Franks (rwfranks) - thanks!
+
+--- 0.005 (2017-07-13)
+
+ * Remove debian/ subdir as per RT #108522
+ * Regenerate README via pod2readme
+ * Fix version number in changelog entry below - d'oh - and remove
+ use of deprecated qv()
+ * Import rcode list from Net::DNS - RT 96390
+
+
+--- 0.004 (2017-07-13)
+
+ * BIGPRESH taking over maintainership of this seemingly orphaned but
+ very useful distribution. Plan to fix various RT tickets.
+ * Fix RT 109266 - avoid deprecated make_query_packet() call
+
+
--- 0.003 (2007-05-30 22:00)
Miscellaneous:
@@ -35,5 +69,5 @@
--- 0.001 (initial release) (2006-10-23 00:00)
-# $Id: CHANGES 13 2007-05-30 22:12:35Z julian $
+
# vim:sts=2 sw=2 et tw=79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/INSTALL new/Net-DNS-Resolver-Programmable-0.009/INSTALL
--- old/Net-DNS-Resolver-Programmable-v0.003/INSTALL 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/INSTALL 2017-07-13 22:27:30.000000000 +0200
@@ -26,5 +26,5 @@
./Build test
./Build install
-# $Id: README 167 2005-01-17 18:26:45Z julian $
+
# vim:tw=79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/MANIFEST new/Net-DNS-Resolver-Programmable-0.009/MANIFEST
--- old/Net-DNS-Resolver-Programmable-v0.003/MANIFEST 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/MANIFEST 2017-07-13 23:49:14.000000000 +0200
@@ -1,16 +1,11 @@
-Build.PL
CHANGES
-debian/changelog
-debian/compat
-debian/control
-debian/copyright
-debian/rules
INSTALL
lib/Net/DNS/Resolver/Programmable.pm
+t/01-basic.t
LICENSE
Makefile.PL
MANIFEST This list of files
META.yml
README
TODO
-SIGNATURE Added here by Module::Build
+META.json
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/META.json new/Net-DNS-Resolver-Programmable-0.009/META.json
--- old/Net-DNS-Resolver-Programmable-v0.003/META.json 1970-01-01 01:00:00.000000000 +0100
+++ new/Net-DNS-Resolver-Programmable-0.009/META.json 2017-07-24 23:02:50.000000000 +0200
@@ -0,0 +1,51 @@
+{
+ "abstract" : "programmable DNS resolver class for offline emulation of DNS",
+ "author" : [
+ "David Precious "
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 7.18, CPAN::Meta::Converter version 2.143240",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Net-DNS-Resolver-Programmable",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "Test::More" : "0"
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : "0"
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "Net::DNS" : "0.69",
+ "perl" : "5.006"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "bugtracker" : {
+ "web" : "https://github.com/bigpresh/Net-DNS-Resolver-Programmable/issues"
+ },
+ "homepage" : "https://github.com/bigpresh/Net-DNS-Resolver-Programmable",
+ "repository" : {
+ "url" : "https://github.com/bigpresh/Net-DNS-Resolver-Programmable"
+ }
+ },
+ "version" : "0.009"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/META.yml new/Net-DNS-Resolver-Programmable-0.009/META.yml
--- old/Net-DNS-Resolver-Programmable-v0.003/META.yml 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/META.yml 2017-07-24 23:02:50.000000000 +0200
@@ -1,25 +1,27 @@
---
-name: Net-DNS-Resolver-Programmable
-version: v0.003
+abstract: 'programmable DNS resolver class for offline emulation of DNS'
author:
- - 'Julian Mehnle '
-abstract: |-
- programmable DNS resolver class for offline
- emulation of DNS
-license: perl
-resources:
- license: http://dev.perl.org/licenses/
-requires:
- Net::DNS: 0
- perl: 0
- version: 0
+ - 'David Precious '
build_requires:
- Module::Build: 0.2805
-provides:
- Net::DNS::Resolver::Programmable:
- file: lib/Net/DNS/Resolver/Programmable.pm
- version: v0.003
-generated_by: Module::Build version 0.2808
+ Test::More: '0'
+configure_requires:
+ ExtUtils::MakeMaker: '0'
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 7.18, CPAN::Meta::Converter version 2.143240'
+license: perl
meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.2.html
- version: 1.2
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: '1.4'
+name: Net-DNS-Resolver-Programmable
+no_index:
+ directory:
+ - t
+ - inc
+requires:
+ Net::DNS: '0.69'
+ perl: '5.006'
+resources:
+ bugtracker: https://github.com/bigpresh/Net-DNS-Resolver-Programmable/issues
+ homepage: https://github.com/bigpresh/Net-DNS-Resolver-Programmable
+ repository: https://github.com/bigpresh/Net-DNS-Resolver-Programmable
+version: '0.009'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/Makefile.PL new/Net-DNS-Resolver-Programmable-0.009/Makefile.PL
--- old/Net-DNS-Resolver-Programmable-v0.003/Makefile.PL 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/Makefile.PL 2017-07-24 23:00:10.000000000 +0200
@@ -1,31 +1,32 @@
-# Note: this file was auto-generated by Module::Build::Compat version 0.03
-
- unless (eval "use Module::Build::Compat 0.02; 1" ) {
- print "This module requires Module::Build to install itself.\n";
-
- require ExtUtils::MakeMaker;
- my $yn = ExtUtils::MakeMaker::prompt
- (' Install Module::Build now from CPAN?', 'y');
-
- unless ($yn =~ /^y/i) {
- die " *** Cannot install without Module::Build. Exiting ...\n";
- }
-
- require Cwd;
- require File::Spec;
- require CPAN;
-
- # Save this 'cause CPAN will chdir all over the place.
- my $cwd = Cwd::cwd();
-
- CPAN::Shell->install('Module::Build::Compat');
- CPAN::Shell->expand("Module", "Module::Build::Compat")->uptodate
- or die "Couldn't install Module::Build, giving up.\n";
-
- chdir $cwd or die "Cannot chdir() back to $cwd: $!";
- }
- eval "use Module::Build::Compat 0.02; 1" or die $@;
-
- Module::Build::Compat->run_build_pl(args => \@ARGV);
- require Module::Build;
- Module::Build::Compat->write_makefile(build_class => 'Module::Build');
+use 5.006;
+use strict;
+use warnings FATAL => 'all';
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => 'Net::DNS::Resolver::Programmable',
+ AUTHOR => q{David Precious },
+ VERSION_FROM => 'lib/Net/DNS/Resolver/Programmable.pm',
+ ABSTRACT_FROM => 'lib/Net/DNS/Resolver/Programmable.pm',
+ LICENSE => 'perl',
+ PL_FILES => {},
+ MIN_PERL_VERSION => 5.006,
+ CONFIGURE_REQUIRES => {
+ 'ExtUtils::MakeMaker' => 0,
+ },
+ BUILD_REQUIRES => {
+ 'Test::More' => 0,
+ },
+ PREREQ_PM => {
+ 'Net::DNS' => 0.69,
+ },
+ dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
+ clean => { FILES => 'Net-DNS-Resolver-Programmable-*' },
+ META_MERGE => {
+ resources => {
+ repository => 'https://github.com/bigpresh/Net-DNS-Resolver-Programmable',
+ bugtracker => 'https://github.com/bigpresh/Net-DNS-Resolver-Programmable/issues',
+ homepage => 'https://github.com/bigpresh/Net-DNS-Resolver-Programmable',
+ },
+ },
+);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/README new/Net-DNS-Resolver-Programmable-0.009/README
--- old/Net-DNS-Resolver-Programmable-v0.003/README 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/README 2017-07-13 23:23:21.000000000 +0200
@@ -1,29 +1,170 @@
-Net::DNS::Resolver::Programmable 0.003
-A Net::DNS::Resolver descendant class for offline emulation of DNS
-(C) 2006-2007 Julian Mehnle
-http://search.cpan.org/dist/Net-DNS-Resolver-Programmable
-==============================================================================
-
-Net::DNS::Resolver::Programmable is a Net::DNS::Resolver descendant class that
-allows a virtual DNS to be emulated instead of querying the real DNS. A set of
-static DNS records may be supplied, or arbitrary code may be specified as a
-means for retrieving DNS records, or even generating them on the fly.
-
-Reporting Bugs
---------------
-
-Please report bugs in Net::DNS::Resolver::Programmable to the CPAN bug tracker:
-http://rt.cpan.org/Public/Dist/Display.html?Name=Net-DNS-Resolver-Programmab...
-
-License
--------
-
-Net::DNS::Resolver::Programmable is free software. You may use, modify, and
-distribute it under the same terms as Perl itself, that is under the terms of
-either the GNU General Public License (version 2 or later) or the Artistic
-License.
+NAME
-The complete text of these licenses can be found in the LICENSE file.
+ Net::DNS::Resolver::Programmable - programmable DNS resolver class for
+ offline emulation of DNS
+
+SYNOPSIS
+
+ use Net::DNS::Resolver::Programmable;
+ use Net::DNS::RR;
+
+ my $resolver = Net::DNS::Resolver::Programmable->new(
+ records => {
+ 'example.com' => [
+ Net::DNS::RR->new('example.com. NS ns.example.org.'),
+ Net::DNS::RR->new('example.com. A 192.168.0.1')
+ ],
+ 'ns.example.org' => [
+ Net::DNS::RR->new('ns.example.org. A 192.168.1.1')
+ ]
+ },
+
+ resolver_code => sub {
+ my ($domain, $rr_type, $class) = @_;
+ ...
+ return ($result, $aa, @rrs);
+ }
+ );
+
+DESCRIPTION
+
+ Net::DNS::Resolver::Programmable is a Net::DNS::Resolver descendant
+ class that allows a virtual DNS to be emulated instead of querying the
+ real DNS. A set of static DNS records may be supplied, or arbitrary
+ code may be specified as a means for retrieving DNS records, or even
+ generating them on the fly.
+
+ Constructor
+
+ The following constructor is provided:
+
+ new(%options): returns Net::DNS::Resolver::Programmable
+
+ Creates a new programmed DNS resolver object.
+
+ %options is a list of key/value pairs representing any of the
+ following options:
+
+ records
+
+ A reference to a hash of arrays containing a static set of
+ Net::DNS::RR objects. The hash entries must be indexed by fully
+ qualified domain names (lower-case, without any trailing dots), and
+ the entries themselves must be arrays of the RR objects pertaining
+ to these domain names. For example:
+
+ records => {
+ 'example.com' => [
+ Net::DNS::RR->new('example.com. NS ns.example.org.'),
+ Net::DNS::RR->new('example.com. A 192.168.0.1')
+ ],
+ 'www.example.com' => [
+ Net::DNS::RR->new('www.example.com. A 192.168.0.2')
+ ],
+ 'ns.example.org' => [
+ Net::DNS::RR->new('ns.example.org. A 192.168.1.1')
+ ]
+ }
+
+ If this option is specified, the resolver retrieves requested RRs
+ from this data structure.
+
+ resolver_code
+
+ A code reference used as a call-back for dynamically retrieving
+ requested RRs.
+
+ The code must take the following query parameters as arguments: the
+ domain, RR type, and class.
+
+ It must return a list composed of: the response's RCODE (by name,
+ as returned by Net::DNS::Header->rcode), the aa (authoritative
+ answer) flag (boolean, use undef if you don't care), and the
+ Net::DNS::RR answer objects. If an error string is returned instead
+ of a valid RCODE, a Net::DNS::Packet object is not constructed but
+ an error condition for the resolver is signaled instead.
+
+ For example:
+
+ resolver_code => sub {
+ my ($domain, $rr_type, $class) = @_;
+ ...
+ return ($result, $aa, @rrs);
+ }
+
+ If both this and the records option are specified, then statically
+ programmed records are used in addition to any that are returned by
+ the configured resolver code.
+
+ defnames
+
+ dnsrch
+
+ domain
+
+ searchlist
+
+ debug
+
+ These Net::DNS::Resolver options are also meaningful with
+ Net::DNS::Resolver::Programmable. See Net::DNS::Resolver for their
+ descriptions.
+
+ Instance methods
+
+ The following instance methods of Net::DNS::Resolver are also supported
+ by Net::DNS::Resolver::Programmable:
+
+ search: returns Net::DNS::Packet
+
+ query: returns Net::DNS::Packet
+
+ send: returns Net::DNS::Packet
+
+ Performs an offline DNS query, using the statically programmed DNS
+ RRs and/or the configured dynamic resolver code. See the "new"
+ constructor's records and resolver_code options. See the descriptions
+ of search, query, and send for details about the calling syntax of
+ these methods.
+
+ print
+
+ string: returns string
+
+ searchlist: returns list of string
+
+ defnames: returns boolean
+
+ dnsrch: returns boolean
+
+ debug: returns boolean
+
+ errorstring: returns string
+
+ answerfrom: returns string
+
+ answersize: returns integer
+
+ See "METHODS" in Net::DNS::Resolver.
+
+ Currently the following methods of Net::DNS::Resolver are not
+ supported: axfr, axfr_start, axfr_next, nameservers, port, srcport,
+ srcaddr, bgsend, bgread, bgisready, tsig, retrans, retry, recurse,
+ usevc, tcp_timeout, udp_timeout, persistent_tcp, persistent_udp, igntc,
+ dnssec, cdflag, udppacketsize. The effects of using these on
+ Net::DNS::Resolver::Programmable objects are undefined.
+
+SEE ALSO
+
+ Net::DNS::Resolver
+
+ For availability, support, and license information, see the README file
+ included with Net::DNS::Resolver::Programmable.
+
+AUTHORS
+
+ David Precious (BIGPRESH) took on
+ maintainership in July 2017
+
+ Original author Julian Mehnle
-# $Id: README 13 2007-05-30 22:12:35Z julian $
-# vim:tw=79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/SIGNATURE new/Net-DNS-Resolver-Programmable-0.009/SIGNATURE
--- old/Net-DNS-Resolver-Programmable-v0.003/SIGNATURE 2007-05-31 00:27:30.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/SIGNATURE 1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-This file contains message digests of all files listed in MANIFEST,
-signed via the Module::Signature module, version 0.55.
-
-To verify the content in this distribution, first make sure you have
-Module::Signature installed, then type:
-
- % cpansign -v
-
-It will check each file's integrity, as well as the signature's
-validity. If "==> Signature verified OK! <==" is not displayed,
-the distribution may already have been compromised, and you should
-not run its Makefile.PL or Build.PL.
-
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-SHA1 6667d40a9f575b1212f1a46d0ffaf28a6cf4aaad Build.PL
-SHA1 56c7b6a9ed1c29306cfeb7a4f6326a7d078cc5d3 CHANGES
-SHA1 25c1c47d9e56d10ef12a41fd78b373cc4ab99f9f INSTALL
-SHA1 285c6bc69d15ed10dcf4dbf7861ddb61d09df6b4 LICENSE
-SHA1 42e50523da075bbbdc9491d4d074afd27ab1d3f2 MANIFEST
-SHA1 581129e74e3f48b146248e77cd775bfb90dbd6ac META.yml
-SHA1 cd14ada78fb37a0d926edd86eddcdf7f939de582 Makefile.PL
-SHA1 e2dca005986fdbfd6eb2240ac52d89920077879f README
-SHA1 dbf5ce8e0302d12e939ba4936fe71427bd6cefb6 TODO
-SHA1 6ac9c4e41735c6587cf2e7616948a22c80c02b46 debian/changelog
-SHA1 5d9474c0309b7ca09a182d888f73b37a8fe1362c debian/compat
-SHA1 d9c76895d8eff04cc6ede6465d999e5a8b3c6ad3 debian/control
-SHA1 c0bec3c995ee5445fb5be256115f4f55f15c4d1f debian/copyright
-SHA1 77462c6344dafe249fa18f4648f8a10b86bb1e95 debian/rules
-SHA1 8fcde075c9d97404737eaef0d18b6183ed0033a7 lib/Net/DNS/Resolver/Programmable.pm
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.5 (GNU/Linux)
-
-iD8DBQFGXfpSwL7PKlBZWjsRAoYmAJ9fioNaRaq36z12c8fBArk/baFDVACeJDLJ
-xEavVe2gFKJRqA/DzTgPXQk=
-=Yv11
------END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/TODO new/Net-DNS-Resolver-Programmable-0.009/TODO
--- old/Net-DNS-Resolver-Programmable-v0.003/TODO 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/TODO 2017-07-13 22:27:30.000000000 +0200
@@ -4,5 +4,5 @@
# ! = Change something significant, or remove a feature
# * = Fix a bug, or make a minor improvement
-# $Id: TODO 2 2006-10-22 23:20:28Z julian $
+
# vim:sts=2 sw=2 et tw=79
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/debian/changelog new/Net-DNS-Resolver-Programmable-0.009/debian/changelog
--- old/Net-DNS-Resolver-Programmable-v0.003/debian/changelog 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/debian/changelog 1970-01-01 01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-libnet-dns-resolver-programmable-perl (0.003) unstable; urgency=low
-
- * Depends: libnet-dns-perl
- * Dropped build dependency on libtest-simple-perl for now. There are
- currently no tests.
-
- -- Julian Mehnle Wed, 30 May 2007 22:03:19 +0000
-
-libnet-dns-resolver-programmable-perl (0.002.2) unstable; urgency=low
-
- * Slightly adjusted license statement in debian/copyright.
-
- -- Julian Mehnle Tue, 9 Jan 2007 13:00:00 +0000
-
-libnet-dns-resolver-programmable-perl (0.002.1) unstable; urgency=low
-
- ! Depends, Build-Depends-Indep: libversion-perl
- * Correctly handle undefined result code returned by custom resolver code.
-
- -- Julian Mehnle Wed, 15 Nov 2006 15:30:00 +0000
-
-libnet-dns-resolver-programmable-perl (0.002) unstable; urgency=low
-
- + Support non-RCODE strings to be returned by custom resolver code, which is
- then taken as the resolver's error string.
- * Do not fold identical returned RRs into a single RR.
- * Minor documentation fixes.
-
- -- Julian Mehnle Wed, 15 Nov 2006 03:45:00 +0000
-
-libnet-dns-resolver-programmable-perl (0.001) unstable; urgency=low
-
- * Initial Release.
-
- -- Julian Mehnle Mon, 01 Jan 2005 01:00:00 +0100
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/debian/compat new/Net-DNS-Resolver-Programmable-0.009/debian/compat
--- old/Net-DNS-Resolver-Programmable-v0.003/debian/compat 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/debian/compat 1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-5
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/debian/control new/Net-DNS-Resolver-Programmable-0.009/debian/control
--- old/Net-DNS-Resolver-Programmable-v0.003/debian/control 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/debian/control 1970-01-01 01:00:00.000000000 +0100
@@ -1,16 +0,0 @@
-Source: libnet-dns-resolver-programmable-perl
-Section: perl
-Priority: optional
-Maintainer: Julian Mehnle
-Build-Depends: debhelper (>= 5)
-Build-Depends-Indep: perl (>= 5.6), libmodule-build-perl (>= 0.26), libversion-perl
-Standards-Version: 3.7.2
-
-Package: libnet-dns-resolver-programmable-perl
-Architecture: all
-Depends: ${perl:Depends}, libversion-perl, libnet-dns-perl, ${misc:Depends}
-Description: programmable DNS resolver class for offline emulation of DNS
- Net::DNS::Resolver::Programmable is a Net::DNS::Resolver descendant class that
- allows a virtual DNS to be emulated instead of querying the real DNS. A set
- of static DNS records may be supplied, or arbitrary code may be specified as a
- means for retrieving DNS records, or even generating them on the fly.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/debian/copyright new/Net-DNS-Resolver-Programmable-0.009/debian/copyright
--- old/Net-DNS-Resolver-Programmable-v0.003/debian/copyright 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/debian/copyright 1970-01-01 01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-This is the Debian package for the Net-DNS-Resolver-Programmable CPAN
-distribution, which is available from <http://search.cpan.org/dist/Net-DNS-
-Resolver-Programmable>.
-
-(C) 2006-2007 Julian Mehnle . Julian Mehnle is the upstream
-author as well as the maintainer of the Debian package.
-
-This is free software. You may use, modify, and distribute it under the same
-terms as Perl itself, that is under the terms of either the GNU General Public
-License (version 2 or later) or the Artistic License.
-
-On Debian GNU/Linux systems, the complete text of these licenses can be found
-in these files:
- /usr/share/common-licenses/GPL-2
- /usr/share/common-licenses/Artistic
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/debian/rules new/Net-DNS-Resolver-Programmable-0.009/debian/rules
--- old/Net-DNS-Resolver-Programmable-v0.003/debian/rules 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/debian/rules 1970-01-01 01:00:00.000000000 +0100
@@ -1,64 +0,0 @@
-#!/usr/bin/make -f
-
-PACKAGE = $(shell dh_listpackages)
-
-ifndef PERL
- PERL = /usr/bin/perl
-endif
-
-TMP = $(CURDIR)/debian/$(PACKAGE)
-
-BUILD = ./Build
-
-build: build-stamp
-build-stamp:
- dh_testdir
- $(PERL) Build.PL installdirs=vendor
- $(BUILD)
- touch build-stamp
-
-clean:
- dh_testdir
- dh_testroot
- [ ! -f $(BUILD) ] || $(BUILD) distclean
- dh_clean build-stamp install-stamp
-
-install: install-stamp
-install-stamp: build-stamp
- dh_testdir
- dh_testroot
- dh_clean -k
-
- $(BUILD) test
- $(BUILD) install destdir=$(TMP) create_packlist=0
-
- touch install-stamp
-
-# Build architecture-independent files here:
-binary-indep: build install
- dh_testdir
- dh_testroot
-
- dh_install
- #dh_installdirs
- dh_installdocs README TODO
- dh_installchangelogs CHANGES
- #dh_installexamples -XCVS examples/*
- #dh_installman
- #dh_link
-
- dh_compress
- dh_fixperms
- dh_installdeb
- dh_perl
- dh_gencontrol
- dh_md5sums
- dh_builddeb
-
-# Build architecture-dependent files here:
-binary-arch:
- # Nothing to do.
-
-binary: binary-indep binary-arch
-
-.PHONY: build clean binary-indep binary-arch binary install
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/lib/Net/DNS/Resolver/Programmable.pm new/Net-DNS-Resolver-Programmable-0.009/lib/Net/DNS/Resolver/Programmable.pm
--- old/Net-DNS-Resolver-Programmable-v0.003/lib/Net/DNS/Resolver/Programmable.pm 2007-05-31 00:27:27.000000000 +0200
+++ new/Net-DNS-Resolver-Programmable-0.009/lib/Net/DNS/Resolver/Programmable.pm 2017-07-24 23:00:50.000000000 +0200
@@ -3,7 +3,8 @@
# A Net::DNS::Resolver descendant class for offline emulation of DNS
#
# (C) 2006-2007 Julian Mehnle
-# $Id: Programmable.pm 13 2007-05-30 22:12:35Z julian $
+# Maintained from 2017 by David Precious (BIGPRESH)
+
#
##############################################################################
@@ -14,24 +15,28 @@
Net::DNS::Resolver::Programmable - programmable DNS resolver class for offline
emulation of DNS
-=head1 VERSION
-
-0.003
=cut
-use version; our $VERSION = qv('0.003');
+
+our $VERSION;
+$VERSION = '0.009';
use warnings;
use strict;
+use Net::DNS;
use base 'Net::DNS::Resolver';
-use Net::DNS::Packet;
use constant TRUE => (0 == 0);
use constant FALSE => not TRUE;
+my %rcode = map { $_ => 1 } qw(NOERROR FORMERR SERVFAIL NXDOMAIN NOTIMP
+ REFUSED YXDOMAIN YXRRSET NXRRSET NOTAUTH NOTZONE BADVERS
+ BADSIG BADKEY BADTIME BADMODE BADNAME BADALG BADTRUNC);
+
+
# Interface:
##############################################################################
@@ -154,10 +159,10 @@
=cut
sub new {
- my ($self, %options) = @_;
+ my ($class, %options) = @_;
# Create new object:
- $self = $self->SUPER::new(%options);
+ my $self = $class->SUPER::new(%options);
$self->{records} = $options{records};
$self->{resolver_code} = $options{resolver_code};
@@ -191,8 +196,12 @@
sub send {
my $self = shift;
- my $query_packet = $self->make_query_packet(@_);
- my $question = ($query_packet->question)[0];
+ # We could be passed a Net::DNS::Packet object, or an array of strings
+ my ($query) = @_;
+ $query = Net::DNS::Packet->new(@_) unless ref ($query);
+
+ my ($question) = $query->question;
+
my $domain = lc($question->qname);
my $rr_type = $question->qtype;
my $class = $question->qclass;
@@ -205,7 +214,7 @@
($result, $aa, @answer_rrs) = $resolver_code->($domain, $rr_type, $class);
}
- if (not defined($result) or defined($Net::DNS::rcodesbyname{$result})) {
+ if ( not defined($result) or defined($rcode{$result}) ) {
# Valid RCODE, return a packet:
$aa = TRUE if not defined($aa);
@@ -222,13 +231,12 @@
}
}
- my $packet = Net::DNS::Packet->new($domain, $rr_type, $class);
- $packet->header->qr(TRUE);
- $packet->header->rcode($result);
- $packet->header->aa($aa);
- $packet->push(answer => @answer_rrs);
+ my $response_packet = $query->reply;
+ $response_packet->header->rcode($result);
+ $response_packet->header->aa($aa);
+ $response_packet->push(answer => @answer_rrs);
- return $packet;
+ return $response_packet;
}
else {
# Invalid RCODE, signal error condition by not returning a packet:
@@ -276,7 +284,20 @@
=head1 AUTHORS
-Julian Mehnle
+David Precious (BIGPRESH) C<< >> took on maintainership
+in July 2017
+
+Original author Julian Mehnle C<< >>
+
+=head1 ACKNOWLEDGEMENTS
+
+Dick Franks (rwfranks)
+
+(This section was added by BIGPRESH in July 2017, so currently omits
+acknowledgements for those who contributed things in the past; I may
+retrospectively add them in future.)
+
+
=cut
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Net-DNS-Resolver-Programmable-v0.003/t/01-basic.t new/Net-DNS-Resolver-Programmable-0.009/t/01-basic.t
--- old/Net-DNS-Resolver-Programmable-v0.003/t/01-basic.t 1970-01-01 01:00:00.000000000 +0100
+++ new/Net-DNS-Resolver-Programmable-0.009/t/01-basic.t 2017-07-24 22:54:59.000000000 +0200
@@ -0,0 +1,102 @@
+#!perl
+use 5.006;
+use strict;
+use warnings FATAL => 'all';
+use Test::More;
+
+plan tests => 17;
+
+use Net::DNS::Resolver::Programmable;
+
+
+diag(
+ "Testing Net::DNS::Resolver::Programmable "
+ . $Net::DNS::Resolver::Programmable::VERSION .", Perl $], $^X"
+);
+
+
+my $domain = "example.com";
+my $fake_ns = "ns1.$domain";
+# Set up resolver with a fake record
+my $resolver = Net::DNS::Resolver::Programmable->new(
+ records => {
+ 'example.com' => [
+ Net::DNS::RR->new("$domain. 86400 A 127.0.0.5"),
+ Net::DNS::RR->new("$domain. 86400 NS $fake_ns."),
+ ],
+ 'ns1.example.com' => [
+ Net::DNS::RR->new("$fake_ns. 86400 A 127.0.0.6"),
+ ],
+ },
+);
+
+# Check that we get that fake record
+my $reply = $resolver->query($domain);
+
+is(ref($reply), "Net::DNS::Packet", "Got a Net::DNS::Packet back for $domain");
+
+my ($rr) = $reply->answer;
+
+is($rr->type, "A", "Got a Net::DNS::RR::A object");
+is($rr->address, "127.0.0.5", "Correct answer for $domain as mocked");
+
+# Ditto for the address of our fake NS
+$reply = $resolver->query($fake_ns);
+
+is(ref($reply), "Net::DNS::Packet", "Got a Net::DNS::Packet back for $fake_ns");
+
+($rr) = $reply->answer;
+
+is($rr->type, "A", "Got a Net::DNS::RR::A object for $fake_ns");
+is($rr->address, "127.0.0.6", "Correct answer as mocked for $fake_ns");
+
+
+# And an NS lookup works, too
+$reply = $resolver->query($domain, 'NS');
+
+is(ref($reply), "Net::DNS::Packet",
+ "Got a Net::DNS::Packet back for NS $domain");
+
+($rr) = $reply->answer;
+
+is($rr->type, "NS", "Got a Net::DNS::RR::NS object for NS $domain");
+is($rr->nsdname, $fake_ns, "Correct NS answer as mocked for $domain");
+
+
+# We can also do a lookup by passing in a Net::DNS::Packet object
+my $packet = Net::DNS::Packet->new($domain, "A", "IN");
+$reply = $resolver->send($packet);
+is(ref($reply), "Net::DNS::Packet",
+ "got a Packet object back from send(\$packet)");
+($rr) = $reply->answer;
+ok($rr, "Got an answer in that packet");
+is ($rr->type, "A",
+ "Got a Net::DNS::RR::A object for $domain from send(\$packet)");
+is($rr->address, "127.0.0.5", "... and it contains the expected answer");
+
+my $unmocked = "www.google.com";
+
+# A query() that shouldn't match any of the mocked entries we set up
+# gets undef
+$reply = $resolver->query($unmocked);
+
+ok(!$reply, "No reply for a query() on unmocked name $unmocked");
+
+
+# send() on the other hand gets a packet back with the expected rcode
+$reply = $resolver->send($unmocked);
+
+is(ref($reply),
+ "Net::DNS::Packet",
+ "Got a Net::DNS::Packet back from send() on unmocked name $unmocked",
+);
+
+is(
+ $reply->header->rcode,
+ "NOERROR",
+ "Expected NOERROR rcode for lookup that doesn't match mocks",
+);
+
+($rr) = $reply->answer;
+
+is($rr, undef, "No answer for lookup that doesn't match mocks");
++++++ cpanspec.yml ++++++
---
#description_paragraphs: 3
#description: |-
# override description from CPAN
#summary: override summary from CPAN
#no_testing: broken upstream
#sources:
# - source1
# - source2
#patches:
#preamble: |-
# BuildRequires: gcc-c++
#post_prep: |-
# hunspell=`pkg-config --libs hunspell | sed -e 's,-l,,; s, *,,g'`
# sed -i -e "s,hunspell-X,$hunspell," t/00-prereq.t Makefile.PL
#post_build: |-
# rm unused.files
#post_install: |-
# sed on %{name}.files
#license: SUSE-NonFree
#skip_noarch: 1
#custom_build: |-
#./Build build flags=%{?_smp_mflags} --myflag
#custom_test: |-
#startserver && make test
#ignore_requires: Bizarre::Module