<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ruby.git/test/resolv, branch v3_3_11</title>
<subtitle>The Ruby Programming Language</subtitle>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/'/>
<entry>
<title>Bump up resolv-0.3.1 for Ruby 3.3</title>
<updated>2025-07-19T01:19:07+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2025-07-08T07:39:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=111a49e77e4b05a21bb37942ea2cfc254daa8d92'/>
<id>111a49e77e4b05a21bb37942ea2cfc254daa8d92</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Close leaked FD</title>
<updated>2023-11-26T01:07:21+00:00</updated>
<author>
<name>Nobuyoshi Nakada</name>
<email>nobu@ruby-lang.org</email>
</author>
<published>2023-11-26T01:03:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=003f06bde40008159e871411cae5a928121490ba'/>
<id>003f06bde40008159e871411cae5a928121490ba</id>
<content type='text'>
https://github.com/ruby/resolv/commit/49aefa3bba
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/resolv/commit/49aefa3bba
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Support a :raise_timeout_errors option to raise timeouts as Resolv::ResolvError</title>
<updated>2023-11-25T02:24:43+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2021-09-18T00:17:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=7276d4b4e87bfdc9b609f481a734e39c499de253'/>
<id>7276d4b4e87bfdc9b609f481a734e39c499de253</id>
<content type='text'>
This allows to differentiate a timeout from an NXDOMAIN response.

Fixes [Bug #18151]

https://github.com/ruby/resolv/commit/c0e5abab76
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows to differentiate a timeout from an NXDOMAIN response.

Fixes [Bug #18151]

https://github.com/ruby/resolv/commit/c0e5abab76
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Fix the fallback from UDP to TCP due to message truncation</title>
<updated>2023-11-24T19:17:19+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2021-03-08T23:28:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=974d18fd0c13bd19120cad70187f5b646c901dff'/>
<id>974d18fd0c13bd19120cad70187f5b646c901dff</id>
<content type='text'>
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]

https://github.com/ruby/resolv/commit/0de996dbca
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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]

https://github.com/ruby/resolv/commit/0de996dbca
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv]  Implement dohpath SvcParam</title>
<updated>2023-11-24T01:42:08+00:00</updated>
<author>
<name>Kasumi Hanazuki</name>
<email>kasumi@rollingapple.net</email>
</author>
<published>2023-11-24T01:42:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=e3b485213d06a5d9a07650174a2be9e20cb39e57'/>
<id>e3b485213d06a5d9a07650174a2be9e20cb39e57</id>
<content type='text'>
(https://github.com/ruby/resolv/pull/33)

* Implement dohpath SvcParam [RFC 9461]

This patch implements "dohpath" SvcParam proposed in
[draft-ietf-add-svcb-dns-08]. This parameter specifies a URI template
for the :path used in DNS-over-HTTPS requests.

"dohpath" is employed by [DDR], also a to-be-published Proposed Standard
that specifies how to upgrade DNS transport to a more secure one, i.d.,
DNS-over-TLS or DNS-over-HTTPS. DDR is deployed in the public DNS
resolvers including Cloudflare DNS, Google Public DNS, and Quad9.

[RFC 9461]: https://datatracker.ietf.org/doc/rfc9461/
[DDR]: https://datatracker.ietf.org/doc/draft-ietf-add-ddr/

https://github.com/ruby/resolv/commit/da9c023539

Co-authored-by: Sorah Fukumori &lt;her@sorah.jp&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/resolv/pull/33)

* Implement dohpath SvcParam [RFC 9461]

This patch implements "dohpath" SvcParam proposed in
[draft-ietf-add-svcb-dns-08]. This parameter specifies a URI template
for the :path used in DNS-over-HTTPS requests.

"dohpath" is employed by [DDR], also a to-be-published Proposed Standard
that specifies how to upgrade DNS transport to a more secure one, i.d.,
DNS-over-TLS or DNS-over-HTTPS. DDR is deployed in the public DNS
resolvers including Cloudflare DNS, Google Public DNS, and Quad9.

[RFC 9461]: https://datatracker.ietf.org/doc/rfc9461/
[DDR]: https://datatracker.ietf.org/doc/draft-ietf-add-ddr/

https://github.com/ruby/resolv/commit/da9c023539

Co-authored-by: Sorah Fukumori &lt;her@sorah.jp&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Implement SVCB and HTTPS RRs</title>
<updated>2023-11-24T01:35:33+00:00</updated>
<author>
<name>Kasumi Hanazuki</name>
<email>kasumi@rollingapple.net</email>
</author>
<published>2023-11-24T01:35:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=608a518b42736edc6533a120a240ff92ca4a8a60'/>
<id>608a518b42736edc6533a120a240ff92ca4a8a60</id>
<content type='text'>
(https://github.com/ruby/resolv/pull/32)

* Add MessageDecoder#get_list

This method repeats yielding until all the data upto the current limit
is consumed, and then returns an Array containig the block results.

* Implement SVCB and HTTPS RRs [RFC 9460]

&gt; This patch implements SVCB and HTTPS resource record types defined in
&gt; [RFC 9460].
&gt;
&gt; The RR types are now supported by many server implementations including
&gt; BIND, unbound, PowerDNS, and Knot DNS. Major browsers such as Chrome,
&gt; Edge, and Safari have started to query HTTPS records, with the records
&gt; gradually adopted by websites. Also, SVCB is actually deployed in the
&gt; public DNS resolvers such as Cloudflare DNS and Google Public DNS for
&gt; [DDR].
&gt;
&gt; With such wide adoption, we have plenty of real-world use cases, and
&gt; it is unlikely the wire format will change further in an incompatible
&gt; way. It is time to implement them in the client libraries!
&gt;
&gt; # Rationale for proposed API
&gt;
&gt; ## `Resolv::DNS::Resource::IN::ServiceBinding`
&gt;
&gt; This is an abstract class for SVCB-compatible RR types.
&gt; SVCB-compatible RR types, as defined in the Draft, shares the wire
&gt; format and the semantics of their RDATA fields with SVCB to allow
&gt; implementations to share the processing of these RR types. So we do
&gt; so.
&gt;
&gt; The interface of this class is straightforward: It has three
&gt; attributes `priority`, `target`, and `params`, which correspond the
&gt; RDATA fields SvcPriority, TargetName, and SvcParams, resp.
&gt;
&gt; SVCB RR type is defined specifically within IN class. Thus, this
&gt; class is placed in the `Resolv::DNS::Resource::IN` namespace.
&gt;
&gt; ## `Resolv::DNS::Resource::IN::SVCB`, `Resolv::DNS::Resource::IN::HTTPS`
&gt;
&gt; Just inherits ServiceBinding class.
&gt;
&gt; ## `Resolv::DNS::SvcParam`
&gt;
&gt; This class represents a pair of a SvcParamKey and a SvcParamValue.
&gt; Aligned with the design of `Resolv::DNS::Resource`, each SvcParamKey
&gt; has its own subclass of `Resolv::DNS::SvcParam`.
&gt;
&gt; ## `Resolv::DNS::SvcParam::Generic`
&gt;
&gt; This is an abstract class representing a SvcParamKey that is unknown
&gt; to this library. `Generic.create(key)` dynamically defines its
&gt; subclass for specific `key`. E.g., `Generic.create(667)` will define
&gt; `Generic::Key667`.
&gt;
&gt; This class holds SvcParamValue in its wire format.
&gt;
&gt; SvcParam with an unknown SvcParamKey will be decoded as a subclass of
&gt; this class. Also, users of this library can generate a non-supported
&gt; SvcParam if they know its wire format.
&gt;
&gt; ## `Resolv::DNS::SvcParams`
&gt;
&gt; This is conceptually a set of `SvcParam`s, whose elements have the
&gt; unique SvcParamKeys. It behaves like a set, and for convenience
&gt; provides indexing by SvcParamKey.
&gt;
&gt; - `#initialize(params)` takes an Enumerable of `SvcParam`s as the
&gt;   initial content. If it contains `SvcParam`s with the duplicate key,
&gt;   the one that appears last takes precedence.
&gt; - `#[](key)` fetches the `SvcParam` with the given key. The key can be
&gt;   specified by its name (e.g., `:alpn`) or number (e.g., `1`).
&gt; - `#add(param)` adds a `SvcParam` to the set. If the set already has a
&gt;   `SvcParam` with the same key, it will be replaced.
&gt; - `#delete(key)` deletes a `SvcParam` by its key and returns it. The key
&gt;   can be specified by its name or number.

* Update comments referring to draft-ietf-dnsop-svcb-https-12

Published as RFC 9460. https://datatracker.ietf.org/doc/rfc9460/

[draft-ietf-dnsop-svcb-https-12]: https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https/12/
[RFC 9460]: https://datatracker.ietf.org/doc/rfc9460/
[DDR]: https://datatracker.ietf.org/doc/draft-ietf-add-ddr/

https://github.com/ruby/resolv/commit/b3ced7f039
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(https://github.com/ruby/resolv/pull/32)

* Add MessageDecoder#get_list

This method repeats yielding until all the data upto the current limit
is consumed, and then returns an Array containig the block results.

* Implement SVCB and HTTPS RRs [RFC 9460]

&gt; This patch implements SVCB and HTTPS resource record types defined in
&gt; [RFC 9460].
&gt;
&gt; The RR types are now supported by many server implementations including
&gt; BIND, unbound, PowerDNS, and Knot DNS. Major browsers such as Chrome,
&gt; Edge, and Safari have started to query HTTPS records, with the records
&gt; gradually adopted by websites. Also, SVCB is actually deployed in the
&gt; public DNS resolvers such as Cloudflare DNS and Google Public DNS for
&gt; [DDR].
&gt;
&gt; With such wide adoption, we have plenty of real-world use cases, and
&gt; it is unlikely the wire format will change further in an incompatible
&gt; way. It is time to implement them in the client libraries!
&gt;
&gt; # Rationale for proposed API
&gt;
&gt; ## `Resolv::DNS::Resource::IN::ServiceBinding`
&gt;
&gt; This is an abstract class for SVCB-compatible RR types.
&gt; SVCB-compatible RR types, as defined in the Draft, shares the wire
&gt; format and the semantics of their RDATA fields with SVCB to allow
&gt; implementations to share the processing of these RR types. So we do
&gt; so.
&gt;
&gt; The interface of this class is straightforward: It has three
&gt; attributes `priority`, `target`, and `params`, which correspond the
&gt; RDATA fields SvcPriority, TargetName, and SvcParams, resp.
&gt;
&gt; SVCB RR type is defined specifically within IN class. Thus, this
&gt; class is placed in the `Resolv::DNS::Resource::IN` namespace.
&gt;
&gt; ## `Resolv::DNS::Resource::IN::SVCB`, `Resolv::DNS::Resource::IN::HTTPS`
&gt;
&gt; Just inherits ServiceBinding class.
&gt;
&gt; ## `Resolv::DNS::SvcParam`
&gt;
&gt; This class represents a pair of a SvcParamKey and a SvcParamValue.
&gt; Aligned with the design of `Resolv::DNS::Resource`, each SvcParamKey
&gt; has its own subclass of `Resolv::DNS::SvcParam`.
&gt;
&gt; ## `Resolv::DNS::SvcParam::Generic`
&gt;
&gt; This is an abstract class representing a SvcParamKey that is unknown
&gt; to this library. `Generic.create(key)` dynamically defines its
&gt; subclass for specific `key`. E.g., `Generic.create(667)` will define
&gt; `Generic::Key667`.
&gt;
&gt; This class holds SvcParamValue in its wire format.
&gt;
&gt; SvcParam with an unknown SvcParamKey will be decoded as a subclass of
&gt; this class. Also, users of this library can generate a non-supported
&gt; SvcParam if they know its wire format.
&gt;
&gt; ## `Resolv::DNS::SvcParams`
&gt;
&gt; This is conceptually a set of `SvcParam`s, whose elements have the
&gt; unique SvcParamKeys. It behaves like a set, and for convenience
&gt; provides indexing by SvcParamKey.
&gt;
&gt; - `#initialize(params)` takes an Enumerable of `SvcParam`s as the
&gt;   initial content. If it contains `SvcParam`s with the duplicate key,
&gt;   the one that appears last takes precedence.
&gt; - `#[](key)` fetches the `SvcParam` with the given key. The key can be
&gt;   specified by its name (e.g., `:alpn`) or number (e.g., `1`).
&gt; - `#add(param)` adds a `SvcParam` to the set. If the set already has a
&gt;   `SvcParam` with the same key, it will be replaced.
&gt; - `#delete(key)` deletes a `SvcParam` by its key and returns it. The key
&gt;   can be specified by its name or number.

* Update comments referring to draft-ietf-dnsop-svcb-https-12

Published as RFC 9460. https://datatracker.ietf.org/doc/rfc9460/

[draft-ietf-dnsop-svcb-https-12]: https://datatracker.ietf.org/doc/draft-ietf-dnsop-svcb-https/12/
[RFC 9460]: https://datatracker.ietf.org/doc/rfc9460/
[DDR]: https://datatracker.ietf.org/doc/draft-ietf-add-ddr/

https://github.com/ruby/resolv/commit/b3ced7f039
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] IPv6: update to_s method to be RFC5952 compliant</title>
<updated>2023-11-22T10:35:36+00:00</updated>
<author>
<name>John Bond</name>
<email>b4ldr@users.noreply.github.com</email>
</author>
<published>2023-11-22T10:35:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=9e24d747ffbc1040d93ac53bff0c1ef0914419c8'/>
<id>9e24d747ffbc1040d93ac53bff0c1ef0914419c8</id>
<content type='text'>
(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

https://github.com/ruby/resolv/commit/5efcd6ed70

Co-authored-by: Sorah Fukumori &lt;sora134@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
(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

https://github.com/ruby/resolv/commit/5efcd6ed70

Co-authored-by: Sorah Fukumori &lt;sora134@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Do not compress domain name in SRV RDATA</title>
<updated>2023-04-08T14:16:59+00:00</updated>
<author>
<name>Kasumi Hanazuki</name>
<email>kasumi@rollingapple.net</email>
</author>
<published>2023-04-08T12:25:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=957595f2182ee9002404258f5e495528f2285ed6'/>
<id>957595f2182ee9002404258f5e495528f2285ed6</id>
<content type='text'>
[RFC2782] prohibits use of name compression for the target host name
in the RDATA of a SRV record.

[RFC2782]: https://datatracker.ietf.org/doc/rfc2782/

Closes: https://github.com/ruby/resolv/issues/29

https://github.com/ruby/resolv/commit/ac85724e17
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[RFC2782] prohibits use of name compression for the target host name
in the RDATA of a SRV record.

[RFC2782]: https://datatracker.ietf.org/doc/rfc2782/

Closes: https://github.com/ruby/resolv/issues/29

https://github.com/ruby/resolv/commit/ac85724e17
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Use omit instead of skip for test-unit</title>
<updated>2022-01-12T01:49:58+00:00</updated>
<author>
<name>Hiroshi SHIBATA</name>
<email>hsbt@ruby-lang.org</email>
</author>
<published>2022-01-11T12:38:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=c02a9994cea77d13a9ce8677a1b46dfb8da67d0f'/>
<id>c02a9994cea77d13a9ce8677a1b46dfb8da67d0f</id>
<content type='text'>
https://github.com/ruby/resolv/commit/55e42221d4
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/ruby/resolv/commit/55e42221d4
</pre>
</div>
</content>
</entry>
<entry>
<title>[ruby/resolv] Support more characters in link local addresses</title>
<updated>2022-01-12T01:49:57+00:00</updated>
<author>
<name>Jeremy Evans</name>
<email>code@jeremyevans.net</email>
</author>
<published>2021-01-09T20:14:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.ruby-lang.org/ruby.git/commit/?id=d494a16ac5d39544b1a5b317414f27f90678a3a5'/>
<id>d494a16ac5d39544b1a5b317414f27f90678a3a5</id>
<content type='text'>
Implements [Feature #17524]

https://github.com/ruby/resolv/commit/993a1a374f
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implements [Feature #17524]

https://github.com/ruby/resolv/commit/993a1a374f
</pre>
</div>
</content>
</entry>
</feed>
