pNet-DNS 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -164,8 +164,8 @@ module Net
164
164
  # @TODO@ should get config working on Windows
165
165
  os = Config::CONFIG['host_os'] # e.g. "mswin32"
166
166
  if (os=='mswin32')
167
- # Should we print a warning here? We don't *really* need the file...
168
- # print "WARNING: You must have \\etc\\resolv.conf for Net::DNS to work correctly\n"
167
+ # Should we print a warning here? We don't *really* need the file...
168
+ # print "WARNING: You must have \\etc\\resolv.conf for Net::DNS to work correctly\n"
169
169
  end
170
170
  # /etc/resolv.conf required
171
171
 
@@ -1594,9 +1594,9 @@ module Net
1594
1594
  # socket = nil
1595
1595
  #
1596
1596
  def bgisready(socket)
1597
- ready = IO.select([socket], nil, nil, 0)
1598
- return ready!=nil
1599
- # return socket.ready? > 0
1597
+ ready = IO.select([socket], nil, nil, 0)
1598
+ return ready!=nil
1599
+ # return socket.ready? > 0
1600
1600
  end
1601
1601
 
1602
1602
  def make_query_packet(args)
@@ -1696,9 +1696,14 @@ module Net
1696
1696
  zone=[]
1697
1697
 
1698
1698
  if (axfr_start(args[0], args[1]))
1699
- rr, err = axfr_next, rr
1700
- while (rr && !err) do
1701
- zone.push(rr)
1699
+ continueLoop= true
1700
+ err = nil
1701
+ while (continueLoop)
1702
+ rr, err = axfr_next
1703
+ continueLoop = rr!=nil && err==nil
1704
+ if (continueLoop)
1705
+ zone.push(rr)
1706
+ end
1702
1707
  end
1703
1708
  zone = [] if err
1704
1709
  end
@@ -1809,8 +1814,9 @@ module Net
1809
1814
  def axfr_next
1810
1815
  err = ''
1811
1816
 
1812
- unless (@axfr_rr)
1813
- unless (@axfr_sock)
1817
+ # @todo this can't be right!!!
1818
+ unless (@axfr_rr!=[])
1819
+ unless (@axfr_sock!=nil)
1814
1820
  err = 'no zone transfer in progress'
1815
1821
 
1816
1822
  print ";; #{err}\n" if @debug
@@ -1820,12 +1826,13 @@ module Net
1820
1826
  end
1821
1827
 
1822
1828
  timeout = @tcp_timeout
1829
+ sock = @axfr_sock
1823
1830
 
1824
1831
  #--------------------------------------------------------------
1825
1832
  # Read the length of the response packet.
1826
1833
  #--------------------------------------------------------------
1827
1834
 
1828
- # ready = sock.wait(timeout)
1835
+ # ready = sock.wait(timeout)
1829
1836
  ready = IO.select([sock], nil, nil, timeout)
1830
1837
  unless (ready)
1831
1838
  err = 'timeout';
@@ -1833,7 +1840,7 @@ module Net
1833
1840
  return nil, err
1834
1841
  end
1835
1842
 
1836
- buf, from = read_tcp(socket, Net::DNS::INT16SZ, @debug)
1843
+ buf, from = read_tcp(sock, Net::DNS::INT16SZ, @debug)
1837
1844
  unless (buf.length > 0)
1838
1845
  err = 'truncated zone transfer'
1839
1846
  @errorstring=(err)
@@ -1852,25 +1859,25 @@ module Net
1852
1859
  #--------------------------------------------------------------
1853
1860
 
1854
1861
  ready = IO.select([sock], nil, nil, timeout)
1855
- # ready = sel.wait(timeout) # should be sock.wait, anyway!
1862
+ # ready = sel.wait(timeout) # should be sock.wait, anyway!
1856
1863
  unless (ready)
1857
1864
  err = 'timeout'
1858
1865
  @errorstring=(err)
1859
1866
  return nil, err
1860
1867
  end
1861
1868
 
1862
- buf, from = read_tcp(socket, len, @debug)
1869
+ buf, from = read_tcp(sock, len, @debug)
1863
1870
 
1864
- print ';; received ' + buf.length + " bytes\n" if @debug
1871
+ print ';; received ' + buf.length.to_s + " bytes\n" if @debug
1865
1872
 
1866
1873
  unless (buf.length == len)
1867
- err = "expected #{len} bytes, received " + buf.length
1874
+ err = "expected #{len} bytes, received " + buf.length.to_s
1868
1875
  @errorstring=(err)
1869
1876
  print ";; #{err}\n" if @debug
1870
1877
  return nil, err
1871
1878
  end
1872
1879
 
1873
- ans, err = Net::DNS::Packet.new(buf, @debug)
1880
+ ans, err = Net::DNS::Packet.new_from_binary(buf, @debug)
1874
1881
 
1875
1882
  if (ans)
1876
1883
  if (ans.header.rcode != 'NOERROR')
@@ -1894,8 +1901,8 @@ module Net
1894
1901
 
1895
1902
  ans.answer.each do |rr|
1896
1903
  if (rr.type == 'SOA')
1897
- axfr_soa_count +=1
1898
- if (axfr_soa_count < 2)
1904
+ @axfr_soa_count +=1
1905
+ if (@axfr_soa_count < 2)
1899
1906
  @axfr_rr.push(rr)
1900
1907
  end
1901
1908
  else
@@ -1914,7 +1921,7 @@ module Net
1914
1921
 
1915
1922
  rr = @axfr_rr.shift
1916
1923
 
1917
- return rr # , undef)
1924
+ return rr # , nil)
1918
1925
  end
1919
1926
 
1920
1927
  def dnssec=(new_val)
data/test/tc_axfr.rb ADDED
@@ -0,0 +1,30 @@
1
+ # The contents of this file are subject to the Mozilla
2
+ # Public Licence Version 1.1 (the "Licence"); you may
3
+ # not use this file except in compliance with the
4
+ # Licence. You may obtain a copy of the Licence at
5
+ # http://www.mozilla.org/MPL
6
+ # Software distributed under the Licence is distributed
7
+ # on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
8
+ # either express or implied. See the Licence of the
9
+ # specific language governing rights and limitations
10
+ # under the Licence.
11
+ # The Original Code is pNet::DNS.
12
+ # The Initial Developer of the Original Code is
13
+ # Nominet UK (www.nominet.org.uk). Portions created by
14
+ # Nominet UK are Copyright (c) Nominet UK 2006.
15
+ # All rights reserved.
16
+ require 'test/unit'
17
+ require 'Net/DNS'
18
+ require 'socket'
19
+ class TestAxfr < Test::Unit::TestCase
20
+ def test_carlos
21
+ res = Net::DNS::Resolver.new()
22
+ res.nameservers=('ns1.net-dns.org')
23
+ res.debug=false
24
+
25
+ zone = res.axfr("net-dns.org")
26
+
27
+ assert(zone.size > 0)
28
+
29
+ end
30
+ end
data/test/ts_online.rb CHANGED
@@ -26,6 +26,7 @@ begin
26
26
  require "test/tc_recurse.rb"
27
27
  require "test/tc_resolver.rb"
28
28
  require "test/tc_tcp.rb"
29
+ require "test/tc_axfr.rb"
29
30
  rescue Error
30
31
  puts "Cannot bind to socket:\n\t"+$!+"\n"
31
32
  puts "This is an indication you have network problems\n"
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
3
3
  specification_version: 1
4
4
  name: pNet-DNS
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.0.3
7
- date: 2006-12-14 00:00:00 +00:00
6
+ version: 0.0.4
7
+ date: 2006-12-19 00:00:00 +00:00
8
8
  summary: Ruby port of perl Net::DNS
9
9
  require_paths:
10
10
  - lib
@@ -31,6 +31,7 @@ authors:
31
31
  files:
32
32
  - test/custom.txt
33
33
  - test/resolv.conf
34
+ - test/tc_axfr.rb
34
35
  - test/tc_escapedchars.rb
35
36
  - test/tc_header.rb
36
37
  - test/tc_inet6.rb