Commit Graph
17 Commits
Author SHA1 Message Date
arya dradjicaandGitHub c6d934038a Rewrite the CI pipeline (#536)
- Automatically determine the MSRV.
- Rebuild 'main' every week to catch environmental changes.
- Run Clippy in a dedicated job to be more parallel.
  - Only run it on Ubuntu.
- Introduce caching of '~/.cargo' and '/target'.
  - Only save it on 'main', but restore it in all other jobs.
- Preserve OpenSSL-excluding behavior for Windows.
2025-06-25 14:23:28 +00:00
0e854cf4da DNSSEC signing improvements and general crypto and DNSSEC restructuring (#416)
---------

Co-authored-by: arya dradjica <arya@nlnetlabs.nl>
Co-authored-by: Jannik Peters <jannik.peters@posteo.de>
Co-authored-by: Martin Hoffmann <martin@nlnetlabs.nl>
Co-authored-by: Ximon Eighteen <ximon@nlnetlabs.nl>
2025-04-01 10:04:09 +02:00
Ximon EighteenandGitHub 5b50a22b24 Make TSIG interop tests run as Rust integration tests. (#364) 2024-10-02 18:16:31 +02:00
Philip Homburg 90cc96d632 Add support to client transports for requests that may result in multiple
responses. (#377)

This adds ComposeRequestMulti and other *Multi types. The main change is to
the stream transport, which is the only transport that implements
SendRequestMulti.
2024-09-04 14:03:12 +02:00
Ximon EighteenandGitHub ec5cb5bbb8 Re-enable and fix the Stelline cookies test (#336)
- Re-enable the cookies Stelline test and fix `CookiesMiddlewareProcessor` to allow requests with invalid cookies to proceed if they are authenticated or not required to authenticate.
- Add support for net blocks in the deny list of the cookie middleware processor, ala Unbound, otherwise the deny list is difficult to use beyond a few simple specific IP addresses.
- Improvements to the Stelline server test support needed by the Stelline cookies test:
  - Advance mock system time in the Stelline server tests.
  - Move Stelline server tests under src/ to permit #cfg(test) based swap out of real system time for mock system time.
  - Use the thread_local version of mock_instant to ensure parallel mock time dependent tests don't interfere with each other (such tests also use tokio::time which only works if they run in a single thread).
  - Set mock system time to start at zero for each Stelline server test (as expected by the cookies .rpl test script).
  - Pass the IP address of the test client to the server so that the cookies middleware can match it against its deny list.
2024-06-27 11:22:02 +02:00
Terts DiepraamandGitHub c72f07eb47 Remove (direct) dependency on hex and pin-project-lite (#323)
This PR the dependencies of hex, which can be replaced by our own base16
module, and pin-project-lite whose use is unnecessary.
2024-06-03 14:09:47 +02:00
Philip-NLnetLabsandGitHub 5586fff39d Move Stelline from tests to src/stelline. (#315)
This PR moves Stelline to be a regular module gated by the unstable-stelline
feature.
2024-05-15 11:26:52 +02:00
Martin Hoffmann 11f5f7c04c Another try vis-a-vis the mock_instant feature. 2024-05-06 14:07:10 +02:00
Martin HoffmannandGitHub 47655265dd Rename *Dname* to *Name*. (#290)
This PR renames all types and functions that refer to domain name from using
the term “dname” to just “name.” For instance, Dname becomes Name, ToDname
becomes ToName, and ToDname::to_dname becomes ToName::to_name.

This annoyingly wide-reaching change is motivated by a clash with the DNAME
record type that would always be confusing. So we rather do it now.

This is a really breaking change. Apologies.
2024-04-22 13:31:34 +02:00
Ximon EighteenandGitHub b5b411ee56 Add a queryable zone tree (#286)
This PR adds zonefile/parsed.rs, zonetree/ and related examples/, which
together enable, and show a library user how, to go from a zone file in
presentation format to an in-memory tree of zones which can be queried to
provide an answer, or walked (iterated over).

The tree also supports versioned write operations and a trait based zone
implementation allowing for the in-memory tree for a zone to instead be some
other (a)synchornous backing store (as demonstrated by the mysql-zone.rs
example).

The zonetree module is feature-gated behind the unstable-zonetree feature.
2024-04-12 10:21:21 +02:00
Ximon EighteenandGitHub 0bd1a68fe0 Add the net::server module. (#274)
This PR adds an unstable net::server module that enables the creation of UDP
and TCP DNS servers using base transport server, middleware and service building blocks.
2024-04-11 16:41:40 +02:00
Martin HoffmannandGitHub 8d9f686f47 Refactor IANA type variants into constants. (#276)
This PR changes the types for the IANA registered values into structs
wrapping underlying integer types and provides the values as constants. This
mostly just changes the spelling of those values. However, it also required
some re-wiring of the type generation macros for record data and opt data
since the type names and value names differ now.

This is a breaking change.
2024-04-05 11:16:23 +02:00
Martin HoffmannandGitHub a660758410 Change ToDname/ToRelativeDname to have try_to_*name and to_*name pairs. (#285)
This PR changes the ToDname and ToRelativeDname traits to have a pair of
methods for each conversion that either return a result or just a success
value depending on whether the octets builder used for the name can fail.
This should allow removing quite a few unwraps when e.g. Vec<u8> or Bytes
are used.

This is a breaking change.
2024-04-03 12:27:54 +02:00
Martin Hoffmann 0f86a4b534 Fix warnings. 2024-03-25 12:26:20 +01:00
Ximon Eighteen fb713f2355 Rename Deckard to Stelline. (#279) 2024-03-14 15:07:37 +01:00
Philip Homburg 4d13fe8998 Client Cache (#275)
This PR adds experimental support for a client cache provided as a pass
through transport
2024-03-12 10:32:21 +01:00
Philip-NLnetLabsandGitHub b8d2aa59bf Client Transport (#215)
This PR adds experimental support for client transport of DNS messages.

It also adds a new concept of unstable features which gate code that can introduce breaking changes also in non-breaking releases.
2024-01-15 14:54:20 +01:00