Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

lookup example cannot resolve IPv6 address #131

Closed
pemensik opened this issue May 1, 2022 · 2 comments · Fixed by #132
Closed

lookup example cannot resolve IPv6 address #131

pemensik opened this issue May 1, 2022 · 2 comments · Fixed by #132

Comments

@pemensik
Copy link

pemensik commented May 1, 2022

$  target/debug/examples/lookup example.org
Found answer for example.org
example.org has address 2606:2800:220:1:248:1893:25c8:1946
example.org has address 93.184.216.34
$  target/debug/examples/lookup 93.184.216.34
$  target/debug/examples/lookup 2606:2800:220:1:248:1893:25c8:1946
thread 'main' panicked at 'internal error: entered unreachable code', src/resolv/lookup/addr.rs:137:14
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
@partim
Copy link
Member

partim commented May 2, 2022

Er, oops:

        7 => b'7',
        8 => b'8',
        10 => b'A',
        11 => b'B',

That said, looks like the function generating the domain name for the IPv6 reverse lookup is broken in more ways.

@pemensik
Copy link
Author

pemensik commented May 2, 2022

I were not able to find, why it should not work with IPv6 address. But I am a newbie in Rust, so it does not mean much. But I thought IPv6 is supposed to be working from the code.

partim added a commit that referenced this issue Sep 15, 2022
Breaking Changes

* The minimum supported Rust version is now 1.56.1. (#128)
* The OctetsBuilder trait does not require AsRef<[u8]> and
  AsMut<[u8]> any more. These have been added as explicit trait bounds
  where needed. In return, Cow<[u8]> can now be used as an octets
  builder where AsMut<[u8]> is not needed. [#130].
* The Display implementation for UncertainDname now ends an absolute
  name with a dot to match the behaviour of the FromStr implementation.
  (#116)
* The salt and hash parameters of Nsec3 and Nsec3Param have been
  wrapped in newtypes. (#116)
* Functions depending on the rand crate have been moved behind a new
  random feature as rand is not available on all systems, even with
  std support. The feature is, however, part of the default features.

  In particular, this means that Header::set_random_id,
  MessageBuilder::request_axfr, and opt::rfc7830::PaddingMode::Random
  are only available if the feature is enabled. (#117 by @Jezza)
* resolv::Resolver::Query now has to be Send. This will allow the
  resolver to be used in async functions spawned onto a Tokio runtime.

  The stub resolver’s query struct is already Send, so no actual changes
  are necessary. However, because this changes the definition of the Resolver
  trait, this is a breaking change, anyway. (#125)

New

* base::header::Flag for easier working for the flags of a message
  header. (#109 by @tomaskrizek)
* base::name::OwnedLabel now implements Clone and Copy as well as
  Display and Debug. (#112)
* base::record::Record::into_owner_and_name allows decomposing a record
  into its two parts that aren’t Copy. (#114)
* Initial support for SVCB and HTTPS record types. (#115 by @xofyarg)
* Introduced Serde support for all relevant types. (#116)
* The OctetsBuilder trait is now also implemented for mutable references
  of types that are octet builders and turn into themselves when frozen
  (i.e., OctetsBuilder::Octets = Self). (#121)
* Support for [heapless::Vec<u8, N>] as an octets sequence via the new
  heapless feature. (#122 by @bugadani)
* The parameter types for SVCB record data now also implement Eq
  (#135)

Bug Fixes

* Correctly encode and decode the address in EDNS client subnet when the
  number of bits isn’t divisible by 8. (#101 and #102 by @xofyarg)
* validate:
  * Check for the correct public key size instead of infering if
    from the RRSIG length. (#110 by @vavrusa)
  * Canonalize the security algorithm before evaluation to avoid missing
    algorithm provided via the unknown integer variant. (#127 by @vavrusa)
* Support for no-std environments now actually works. (#117 by @Jezza)
* Canonalize IANA types when scanning so that, e.g., CLASS3 becomes
  Class::Ch instead of Class::Int(3). (#127 by @vavrusa)
* resolv: Fixed generation of the domain name to be used for reverse
  IPv6 lookups. (#131)

Other Changes

* Enable doc_cfg feature flag documentation for docs.rs.
  (#104 by Martin Fischer)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants