Commit graph

43 commits

Author SHA1 Message Date
KJ Tsanaktsidis
80bda107c8 [ruby/resolv] Add an explicit with_udp_and_tcp helper to test_dns.rb
This helper tries to bind UDP and TCP sockets to the same port, by
retrying the bind if the randomly-assinged UDP port is already taken in
TCP. This fixes a flaky test.

[Bug #20403]

3d135f99d9
2024-03-31 23:57:00 +00:00
Nobuyoshi Nakada
003f06bde4 [ruby/resolv] Close leaked FD
49aefa3bba
2023-11-26 01:07:21 +00:00
Jeremy Evans
7276d4b4e8 [ruby/resolv] Support a :raise_timeout_errors option to raise timeouts as Resolv::ResolvError
This allows to differentiate a timeout from an NXDOMAIN response.

Fixes [Bug #18151]

c0e5abab76
2023-11-25 02:24:43 +00:00
Jeremy Evans
974d18fd0c [ruby/resolv] Fix the fallback from UDP to TCP due to message truncation
If truncation is detected, return immediately from decode so that
the UDP connection can be retried with TCP, instead of failing to
decode due to trying to decode a truncated response.

Fixes [Bug #13513]

0de996dbca
2023-11-24 19:17:19 +00:00
John Bond
9e24d747ff [ruby/resolv] IPv6: update to_s method to be RFC5952 compliant
(https://github.com/ruby/resolv/pull/25)

* IPv6: update to_s method to be RFC5952 compliant

I noticed that the resolv library does not honour RFC 5952 Section 4.2.2.
in relation to textural representation of ipv6 addresses:

   The symbol "::" MUST NOT be used to shorten just one 16-bit 0 field.
   For example, the representation 2001:db8:0:1:1:1:1:1 is correct, but
   2001:db8::1:1:1:1:1 is not correct.

Fixes https://github.com/ruby/resolv/pull/24

5efcd6ed70

Co-authored-by: Sorah Fukumori <sora134@gmail.com>
2023-11-22 10:35:36 +00:00
Hiroshi SHIBATA
c02a9994ce [ruby/resolv] Use omit instead of skip for test-unit
55e42221d4
2022-01-12 10:49:58 +09:00
Hiroshi SHIBATA
adcbae8d49
Removed minitest/mock 2021-05-19 14:24:01 +09:00
Takashi Kokubun
cc1ea6e023
Run nmake check on Actions (#4487)
* Run nmake check on Actions

* Skip tests not working in mswin GitHub Actions

* Override TEMP

* Revert "Skip tests not working in mswin GitHub Actions"

This reverts commit 544d2575fc.

* Revert "Revert "Skip tests not working in mswin GitHub Actions""

This reverts commit e1f8ad7862.

* Fix timeouts

* Skip some more broken tests

* Update windows.yml

* Add a guard for rbasic_spec

* Revert "Update windows.yml"

This reverts commit bc9694b6b3.

* Skip the ensure clause

* Simplify the ensure
2021-05-11 15:18:44 -07:00
Yusuke Endoh
fcf8b9ef72 test/resolv/test_dns.rb: suppress "assigned but unused variable" 2020-11-08 23:32:44 +09:00
Jeremy Evans
9682db0651 Remove sender/message_id pair after response received in resolv
Once a response for a given DNS request has been received (which
requires a matching message id), the [sender, message_id] pair
should be removed from the list of valid senders.  This makes it
so duplicate responses from the same sender are ignored.

Fixes [Bug #12838]
2020-11-07 13:12:27 -08:00
MSP-Greg
eb2b425821 MinGW on Actions (#2791)
* MinGW - skip spec in spec/ruby/optional/capi/thread_spec.rb

C-API Thread function rb_thread_call_without_gvl
      -- runs a C function with the global lock unlocked and unlocks IO with the generic RUBY_UBF_IO

stops/freezes spec tests

See https://bugs.ruby-lang.org/issues/16265

* MinGW - skip test test/resolv/test_dns.rb

Test times out in CI (both AppVeyor & Actions), cannot repo locally

* MinGW - skip test test/ruby/test_thread_queue.rb

* Add Actions mingw.yml
2019-12-30 23:19:31 -08:00
Tanaka Akira
1da3a31a5f Use lowercase letters for IPv6 addresses.
Reported by chucke (Tiago Cardoso).
Patch by jeremyevans0 (Jeremy Evans).
[Bug #14612]
2019-07-30 11:59:54 +09:00
Jeremy Evans
6650899248 Make Resolv::DNS#each_name accept Resolv::IPv{4,6} arguments
These arguments were previously documented as supported, but not
actually supported.

Patch from Toru Iwase

Fixes [Bug #15900]
2019-06-08 20:31:12 -07:00
nobu
9f41da42eb Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-11 11:58:38 +00:00
nobu
fb284ee7f8 use the reference as failure messages
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62674 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 05:59:29 +00:00
nobu
e6c0a8f19e resolv.rb: close socket
* lib/resolv.rb (UnconnectedUDP#lazy_initialize): store new
  sockets before binding, so the sockets get closed when the
  requester is closing.

* lib/resolv.rb (ConnectedUDP#lazy_initialize): ditto.

* lib/resolv.rb (UnconnectedUDP#close): synchronize to get rid of
  race condition.

* lib/resolv.rb (ConnectedUDP#close): ditto.

[ruby-core:85901] [Bug #14571]

From: quixoten (Devin Christensen) <quixoten@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62671 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-03-06 02:48:17 +00:00
usa
098c8d5491 fix test errors on Windows
* test/resolv/test_addr.rb (test_hosts_by_command): on Windows, `|` is
	  invalid charactor for path and raises `Errno::EINVAL` if trying to
	  open.

	* test/resolv/test_dns.rb (test_resolv_conf_by_command): ditto.

	cf. [Bug #14205]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61374 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-20 16:04:41 +00:00
nobu
cdf1b85ae7 Fixed command Injection
* lib/resolv.rb (Resolv::Config.parse_resolv_conf): fixed
  potential command injection by use of Kernel#open.
  [ruby-core:84347] [Bug #14205]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61351 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-12-20 04:25:01 +00:00
nobu
2b2450ba4b Made #decode_rdata client to catch errors
* lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#get_rr):
  re-raise an exception from decode_rdata as DecodeError, so it
  can report them to the top in more informative way.  It was not
  reflecting on errors of data and thus breaking.  Client code
  expects `DecodeError` and knows how to handle broken messages.
  [Fix GH-1511]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-14 02:26:48 +00:00
normal
a3b53cd991 Resolv::IPv6.create: avoid modifying frozen string literal
* lib/resolv.rb (Resolv::IPv6.create): avoid modifying frozen
* test/resolv/test_dns.rb (test_ipv6_create): test for above
  [Bug #11910] [ruby-core:72559]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53363 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-28 20:31:10 +00:00
naruse
3e92b635fb Add frozen_string_literal: false for all files
When you change this to true, you may need to add more tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-12-16 05:07:31 +00:00
akr
60055f8dfd * lib/resolv.rb (Resolv::DNS::Message::MessageEncoder#put_labels):
Prevent overflow of pointer to labels.
  Patch by Hannes Georg.  [ruby-core:71248] [Bug #11632]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52508 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-11-09 15:37:04 +00:00
nobu
beb1c085d5 use Timeout.timeout
* time: Object#timeout has been deprecated a long time ago, use
  Timeout.timeout.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51225 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-13 10:07:01 +00:00
akr
ec7f1f5dc2 * lib/resolv.rb (Resolv::DNS::Label::Str#==): Check class equality.
(Resolv::DNS::Name#initialize): Normalize labels as
  Resolv::DNS::Label::Str objects.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49095 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-02 00:10:04 +00:00
nobu
69a7bb31f9 resolv.rb: case-insensitive comparison
* lib/resolv.rb (Resolv::DNS::Name#==): DNS is case-insensitive, so the
  comparison should be case-insensitive as well.
  [ruby-core:66498] [Bug #10550]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-30 07:16:14 +00:00
nobu
1441d9da99 test_dns.rb: test name
* test/resolv/test_dns.rb (TestResolvDNS#test_dots_diffences): fix
  test name.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49072 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-30 07:05:32 +00:00
nobu
a0325ea704 resolv.rb: dots differences
* lib/resolv.rb (Resolv::DNS::Name): names with different dots
  should be different.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49071 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-30 07:03:47 +00:00
nobu
fb933bf70b test_dns.rb: fix scope
* test/resolv/test_dns.rb (test_query_ipv4_address): fix local
  variables scope.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25 01:23:57 +00:00
usa
86693b30c5 * test/resolv/test_dns.rb (TestResolvDNS#test_query_ipv4_address):
set timeout for recvfrom because if client thread is crashed, it
  waits infinity.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-25 00:21:00 +00:00
naruse
32f124e68a use timeout lib
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-24 18:59:45 +00:00
naruse
5328fa259b add timeout to avoid global timeout
20141224T065940Z.log.html.gz

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-24 08:32:55 +00:00
tenderlove
570c028c7e * lib/resolv.rb: fall back if canonicalization fails.
Thanks Vit Ondruch for the patch!  [ruby-core:65836]

* test/resolv/test_dns.rb: test for patch

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-21 20:04:27 +00:00
akr
08bb9482a0 * test/resolv/test_dns.rb: Use assert_join_threads.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48381 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-11 13:51:39 +00:00
akr
198964ea2f Avoid tempfile leaks using Tempfile.create instead of Tempfile.open.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-05-25 14:00:16 +00:00
hsbt
5691727653 * test/monitor/test_monitor.rb: remove unused variabels.
*  test/resolv/test_dns.rb: ditto.
*  test/rexml/test_functions.rb: ditto.
*  test/rss/test_setup_maker_itunes.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45067 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-02-21 01:53:38 +00:00
nobu
1ef0a76c6c test_dns.rb: no server access
* test/resolv/test_dns.rb (test_invalid_byte_comment): get rid of
  actual server access.  [Bug #9273]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44318 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 07:18:18 +00:00
nobu
1ffbe07e17 resolv.rb: no encodings
* lib/resolv.rb (Resolv::Hosts#lazy_initialize): should not
  consider encodings in hosts file.  [ruby-core:59239] [Bug #9273]
* lib/resolv.rb (Resolv::Config.parse_resolv_conf): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44312 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 03:37:26 +00:00
kazu
ca0bb51887 * test/net/http/test_https_proxy.rb
(HTTPSProxyTest#test_https_proxy_authentication):
  add workaround to avoid to hang up without openssl.
  see #5786

* test/resolv/test_dns.rb (TestResolvDNS#test_query_ipv4_address):
  ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-02-02 15:55:07 +00:00
akr
6533f070ba * lib/resolv.rb (Resolv::DNS): retry IO.select for premature wakeup.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33584 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 12:03:49 +00:00
akr
c4dd8ca7b3 * test/resolv/test_dns.rb: don't check maximum sleeped time.
ruby doesn't guarantee the maximum time because it is not a
  realtime application.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33582 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-31 10:15:27 +00:00
akr
16f4ecbc8c * lib/resolv.rb: make timeout configurable for DNS query.
patch by Eric Wong.  [ruby-core:38533] [Feature #5100]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@33504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-10-22 08:46:12 +00:00
akr
089d2ddda4 * lib/resolv.rb (Resolv::DNS::Requester#request): rescue ECONNREFUSED.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28058 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-05-29 00:06:17 +00:00
akr
50b8893d56 * lib/resolv.rb (Resolv::DNS::Message::MessageDecoder#inspect):
implemented.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-02 16:31:00 +00:00