Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package ntpd-rs for openSUSE:Factory checked in at 2024-07-22 17:17:14 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/ntpd-rs (Old) and /work/SRC/openSUSE:Factory/.ntpd-rs.new.17339 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "ntpd-rs" Mon Jul 22 17:17:14 2024 rev:3 rq:1188697 version:1.2.2 Changes: -------- --- /work/SRC/openSUSE:Factory/ntpd-rs/ntpd-rs.changes 2024-07-15 19:50:41.710815545 +0200 +++ /work/SRC/openSUSE:Factory/.ntpd-rs.new.17339/ntpd-rs.changes 2024-07-22 17:18:38.370800052 +0200 @@ -1,0 +2,15 @@ +Thu Jul 18 16:59:44 UTC 2024 - Martin Hauke <mar...@gmx.de> + +- Update to version 1.2.2 + Fixed + * Fixed a bug in leap second flag handling where previous flags + weren't explicitly unset. + * Fixed a bug that caused NTS-KE sessions from clients with a + large request to hang. + * Fixed a bug that caused NTS-KE error records never to be sent. +- Update to version 1.2.1 + Fixed + * Fixed a bug in leap second flag handling where previous flags + weren't explicitly unset. + +------------------------------------------------------------------- Old: ---- ntpd-rs-1.2.0.tar.gz New: ---- ntpd-rs-1.2.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ ntpd-rs.spec ++++++ --- /var/tmp/diff_new_pack.22DdxV/_old 2024-07-22 17:18:39.782856390 +0200 +++ /var/tmp/diff_new_pack.22DdxV/_new 2024-07-22 17:18:39.782856390 +0200 @@ -19,7 +19,7 @@ %define services ntpd-rs.service ntpd-rs-metrics.service Name: ntpd-rs -Version: 1.2.0 +Version: 1.2.2 Release: 0 Summary: Full-featured implementation of NTP with NTS support License: Apache-2.0 OR MIT ++++++ ntpd-rs-1.2.0.tar.gz -> ntpd-rs-1.2.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/.github/workflows/checks.yaml new/ntpd-rs-1.2.2/.github/workflows/checks.yaml --- old/ntpd-rs-1.2.0/.github/workflows/checks.yaml 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/.github/workflows/checks.yaml 2024-07-18 16:49:55.000000000 +0200 @@ -83,11 +83,11 @@ run: cargo +nightly update -Z direct-minimal-versions if: ${{ matrix.rust == 'msrv' }} - name: Install cross-compilation tools - uses: taiki-e/setup-cross-toolchain-action@241e9bf5f01f63286a020946ddaa3fd6d9c32cca + uses: taiki-e/setup-cross-toolchain-action@a1a91d884a02793862d3e6451e02f19ef969126a with: target: ${{ matrix.target }} - name: Install cargo-llvm-cov - uses: taiki-e/install-action@4e38715ddc7c4e1fd3e44ab4c124a2dcca7306fd + uses: taiki-e/install-action@32300fcc7462d35c920c6d4a42efe7bc39b61569 with: tool: cargo-llvm-cov - name: Rust cache @@ -120,7 +120,7 @@ with: toolchain: nightly - name: Install udeps - uses: taiki-e/install-action@4e38715ddc7c4e1fd3e44ab4c124a2dcca7306fd + uses: taiki-e/install-action@32300fcc7462d35c920c6d4a42efe7bc39b61569 with: tool: cargo-udeps - name: cargo udeps @@ -224,7 +224,7 @@ version: 0.9.0 if: ${{matrix.use_zig}} - name: Install cargo-zigbuild - uses: taiki-e/install-action@4e38715ddc7c4e1fd3e44ab4c124a2dcca7306fd + uses: taiki-e/install-action@32300fcc7462d35c920c6d4a42efe7bc39b61569 with: tool: cargo-zigbuild if: ${{matrix.use_zig}} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/.github/workflows/packaging-v5.yaml new/ntpd-rs-1.2.2/.github/workflows/packaging-v5.yaml --- old/ntpd-rs-1.2.0/.github/workflows/packaging-v5.yaml 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/.github/workflows/packaging-v5.yaml 2024-07-18 16:49:55.000000000 +0200 @@ -33,7 +33,7 @@ components: "llvm-tools" - name: Install cross, cargo-deb and cargo-generate-rpm - uses: taiki-e/install-action@4e38715ddc7c4e1fd3e44ab4c124a2dcca7306fd + uses: taiki-e/install-action@32300fcc7462d35c920c6d4a42efe7bc39b61569 with: tool: cross, cargo-deb, cargo-generate-rpm@0.14.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/.github/workflows/packaging.yaml new/ntpd-rs-1.2.2/.github/workflows/packaging.yaml --- old/ntpd-rs-1.2.0/.github/workflows/packaging.yaml 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/.github/workflows/packaging.yaml 2024-07-18 16:49:55.000000000 +0200 @@ -33,7 +33,7 @@ components: "llvm-tools" - name: Install cross, cargo-deb and cargo-generate-rpm - uses: taiki-e/install-action@4e38715ddc7c4e1fd3e44ab4c124a2dcca7306fd + uses: taiki-e/install-action@32300fcc7462d35c920c6d4a42efe7bc39b61569 with: tool: cross, cargo-deb, cargo-generate-rpm@0.14.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/.github/workflows/scorecard.yaml new/ntpd-rs-1.2.2/.github/workflows/scorecard.yaml --- old/ntpd-rs-1.2.0/.github/workflows/scorecard.yaml 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/.github/workflows/scorecard.yaml 2024-07-18 16:49:55.000000000 +0200 @@ -60,6 +60,6 @@ # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@b611370bb5703a7efb587f9d136a52ea24c5c38c # v3.25.11 + uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # v3.25.12 with: sarif_file: results.sarif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/CHANGELOG.md new/ntpd-rs-1.2.2/CHANGELOG.md --- old/ntpd-rs-1.2.0/CHANGELOG.md 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/CHANGELOG.md 2024-07-18 16:49:55.000000000 +0200 @@ -1,5 +1,16 @@ # Changelog +## [1.2.2] - 2024-07-18 + +### Changed +- Updated dependencies + +### Fixed +- Fixed a bug in network change detection that prevented startup on FreeBSD. +- Fixed a bug in leap second flag handling where previous flags weren't explicitly unset. +- Fixed a bug that caused NTS-KE sessions from clients with a large request to hang. +- Fixed a bug that caused NTS-KE error records never to be sent. + ## [1.2.0] - 2024-07-11 ### Added @@ -215,6 +226,7 @@ - Fixed a bug in peer dispersion calculation which resulted in overly pessimistic dispersion estimates. +[1.2.2]: https://github.com/pendulum-project/ntpd-rs/compare/v1.2.0...v1.2.2 [1.2.0]: https://github.com/pendulum-project/ntpd-rs/compare/v1.1.3...v1.2.0 [1.1.3]: https://github.com/pendulum-project/ntpd-rs/compare/v1.1.2...v1.1.3 [1.1.2]: https://github.com/pendulum-project/ntpd-rs/compare/v1.1.1...v1.1.2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/Cargo.lock new/ntpd-rs-1.2.2/Cargo.lock --- old/ntpd-rs-1.2.0/Cargo.lock 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/Cargo.lock 2024-07-18 16:49:55.000000000 +0200 @@ -4,9 +4,9 @@ [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -73,9 +73,9 @@ [[package]] name = "backtrace" -version = "0.3.71" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -88,15 +88,15 @@ [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "block-buffer" @@ -115,9 +115,9 @@ [[package]] name = "cc" -version = "1.0.94" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7" +checksum = "eaff6f8ce506b9773fa786672d63fc7a191ffea1be33f72bbd4aeacefca9ffc8" [[package]] name = "cfg-if" @@ -137,9 +137,9 @@ [[package]] name = "clock-steering" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8078994a6ef3fefa4c9cc2e69af9ee94cac7804e4ec065d794cd36728c12c02" +checksum = "2410abf030f2eb46cba840d343455078538e7c8755507b37ffd4074064f08f62" dependencies = [ "libc", ] @@ -238,9 +238,9 @@ [[package]] name = "getrandom" -version = "0.2.14" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -249,15 +249,15 @@ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" [[package]] name = "hermit-abi" @@ -292,9 +292,9 @@ [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" @@ -304,9 +304,9 @@ [[package]] name = "log" -version = "0.4.21" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "md-5" @@ -320,15 +320,15 @@ [[package]] name = "memchr" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "miniz_oxide" -version = "0.7.2" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] @@ -346,7 +346,7 @@ [[package]] name = "ntp-proto" -version = "1.2.0" +version = "1.2.2" dependencies = [ "aead", "aes-siv", @@ -363,7 +363,7 @@ [[package]] name = "ntpd" -version = "1.2.0" +version = "1.2.2" dependencies = [ "async-trait", "clock-steering", @@ -385,7 +385,7 @@ [[package]] name = "nts-pool-ke" -version = "1.2.0" +version = "1.2.2" dependencies = [ "ntp-proto", "rustls", @@ -421,9 +421,9 @@ [[package]] name = "object" -version = "0.32.2" +version = "0.36.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "081b846d1d56ddfc18fdf1a922e4f6e07a11768ea1b92dec44e42b72712ccfce" dependencies = [ "memchr", ] @@ -460,9 +460,9 @@ [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] @@ -523,15 +523,15 @@ [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustls" -version = "0.23.7" +version = "0.23.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebbbdb961df0ad3f2652da8f3fdc4b36122f568f968f45ad3316f26c025c677b" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" dependencies = [ "log", "once_cell", @@ -567,15 +567,15 @@ [[package]] name = "rustls-pki-types" -version = "1.4.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" dependencies = [ "ring", "rustls-pki-types", @@ -584,9 +584,9 @@ [[package]] name = "ryu" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" [[package]] name = "schannel" @@ -599,9 +599,9 @@ [[package]] name = "security-framework" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6" +checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0" dependencies = [ "bitflags", "core-foundation", @@ -612,9 +612,9 @@ [[package]] name = "security-framework-sys" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef" +checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7" dependencies = [ "core-foundation-sys", "libc", @@ -680,9 +680,9 @@ [[package]] name = "socket2" -version = "0.5.6" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", "windows-sys 0.52.0", @@ -696,15 +696,15 @@ [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.60" +version = "2.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" dependencies = [ "proc-macro2", "quote", @@ -723,9 +723,9 @@ [[package]] name = "timestamped-socket" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "145a47b252af2c28b6a957c3cc3f0db382a2024728fd6deb511f5ea5201d949b" +checksum = "97fb9c05205fbac74629b661a8fb356882d7e540fbc66511b12d569701f241b1" dependencies = [ "libc", "serde", @@ -735,9 +735,9 @@ [[package]] name = "tokio" -version = "1.38.0" +version = "1.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" dependencies = [ "backtrace", "bytes", @@ -774,9 +774,9 @@ [[package]] name = "toml" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335" +checksum = "ac2caab0bf757388c6c0ae23b3293fdb463fee59434529014f85e3263b995c28" dependencies = [ "serde", "serde_spanned", @@ -795,9 +795,9 @@ [[package]] name = "toml_edit" -version = "0.22.14" +version = "0.22.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38" +checksum = "278f3d518e152219c994ce877758516bca5e118eaed6996192a774fb9fbf0788" dependencies = [ "indexmap", "serde", @@ -917,7 +917,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.5", + "windows-targets 0.52.6", ] [[package]] @@ -937,18 +937,18 @@ [[package]] name = "windows-targets" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.52.5", - "windows_aarch64_msvc 0.52.5", - "windows_i686_gnu 0.52.5", + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", "windows_i686_gnullvm", - "windows_i686_msvc 0.52.5", - "windows_x86_64_gnu 0.52.5", - "windows_x86_64_gnullvm 0.52.5", - "windows_x86_64_msvc 0.52.5", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", ] [[package]] @@ -959,9 +959,9 @@ [[package]] name = "windows_aarch64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" @@ -971,9 +971,9 @@ [[package]] name = "windows_aarch64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" @@ -983,15 +983,15 @@ [[package]] name = "windows_i686_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] name = "windows_i686_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" @@ -1001,9 +1001,9 @@ [[package]] name = "windows_i686_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" @@ -1013,9 +1013,9 @@ [[package]] name = "windows_x86_64_gnu" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" @@ -1025,9 +1025,9 @@ [[package]] name = "windows_x86_64_gnullvm" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" @@ -1037,15 +1037,15 @@ [[package]] name = "windows_x86_64_msvc" -version = "0.52.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.6" +version = "0.6.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c976aaaa0e1f90dbb21e9587cdaf1d9679a1cde8875c0d6bd83ab96a208352" +checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1" dependencies = [ "memchr", ] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/Cargo.toml new/ntpd-rs-1.2.2/Cargo.toml --- old/ntpd-rs-1.2.0/Cargo.toml 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/Cargo.toml 2024-07-18 16:49:55.000000000 +0200 @@ -12,7 +12,7 @@ # Global settings for our crates [workspace.package] -version = "1.2.0" +version = "1.2.2" edition = "2021" license = "Apache-2.0 OR MIT" repository = "https://github.com/pendulum-project/ntpd-rs" @@ -44,8 +44,8 @@ tokio = "1.32" toml = { version = ">=0.6.0,<0.9.0", default-features = false, features = ["parse"] } async-trait = "0.1.67" -timestamped-socket = "0.2.1" -clock-steering = "0.2.0" +timestamped-socket = "0.2.2" +clock-steering = "0.2.1" # TLS rustls = { version = "0.23.0", default-features = false, features = ["ring", "logging", "std", "tls12"] } @@ -62,4 +62,4 @@ # our own crates used as dependencies, same version as the workspace version # NOTE: keep this part at the bottom of the file, do not change this line -ntp-proto = { version = "1.2.0", path = "./ntp-proto", features = ["__internal-api"] } +ntp-proto = { version = "1.2.2", path = "./ntp-proto", features = ["__internal-api"] } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/man/ntp-ctl.8.md new/ntpd-rs-1.2.2/docs/man/ntp-ctl.8.md --- old/ntpd-rs-1.2.0/docs/man/ntp-ctl.8.md 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/man/ntp-ctl.8.md 2024-07-18 16:49:55.000000000 +0200 @@ -1,5 +1,5 @@ <!-- --- -title: NTP-CTL(8) ntpd-rs 1.2.0 | ntpd-rs +title: NTP-CTL(8) ntpd-rs 1.2.2 | ntpd-rs --- --> # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/man/ntp-daemon.8.md new/ntpd-rs-1.2.2/docs/man/ntp-daemon.8.md --- old/ntpd-rs-1.2.0/docs/man/ntp-daemon.8.md 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/man/ntp-daemon.8.md 2024-07-18 16:49:55.000000000 +0200 @@ -1,5 +1,5 @@ <!-- --- -title: NTP-DAEMON(8) ntpd-rs 1.2.0 | ntpd-rs +title: NTP-DAEMON(8) ntpd-rs 1.2.2 | ntpd-rs --- --> # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/man/ntp-metrics-exporter.8.md new/ntpd-rs-1.2.2/docs/man/ntp-metrics-exporter.8.md --- old/ntpd-rs-1.2.0/docs/man/ntp-metrics-exporter.8.md 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/man/ntp-metrics-exporter.8.md 2024-07-18 16:49:55.000000000 +0200 @@ -1,5 +1,5 @@ <!-- --- -title: NTP-METRICS-EXPORTER(8) ntpd-rs 1.2.0 | ntpd-rs +title: NTP-METRICS-EXPORTER(8) ntpd-rs 1.2.2 | ntpd-rs --- --> # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/man/ntp.toml.5.md new/ntpd-rs-1.2.2/docs/man/ntp.toml.5.md --- old/ntpd-rs-1.2.0/docs/man/ntp.toml.5.md 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/man/ntp.toml.5.md 2024-07-18 16:49:55.000000000 +0200 @@ -1,5 +1,5 @@ <!-- --- -title: NTP.TOML(5) ntpd-rs 1.2.0 | ntpd-rs +title: NTP.TOML(5) ntpd-rs 1.2.2 | ntpd-rs --- --> # NAME diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-ctl.8 new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-ctl.8 --- old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-ctl.8 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-ctl.8 2024-07-18 16:49:55.000000000 +0200 @@ -14,7 +14,7 @@ . ftr VB CB . ftr VBI CBI .\} -.TH "NTP-CTL" "8" "" "ntpd-rs 1.2.0" "ntpd-rs" +.TH "NTP-CTL" "8" "" "ntpd-rs 1.2.2" "ntpd-rs" .hy .SH NAME .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-daemon.8 new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-daemon.8 --- old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-daemon.8 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-daemon.8 2024-07-18 16:49:55.000000000 +0200 @@ -14,7 +14,7 @@ . ftr VB CB . ftr VBI CBI .\} -.TH "NTP-DAEMON" "8" "" "ntpd-rs 1.2.0" "ntpd-rs" +.TH "NTP-DAEMON" "8" "" "ntpd-rs 1.2.2" "ntpd-rs" .hy .SH NAME .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-metrics-exporter.8 new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-metrics-exporter.8 --- old/ntpd-rs-1.2.0/docs/precompiled/man/ntp-metrics-exporter.8 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/precompiled/man/ntp-metrics-exporter.8 2024-07-18 16:49:55.000000000 +0200 @@ -14,7 +14,7 @@ . ftr VB CB . ftr VBI CBI .\} -.TH "NTP-METRICS-EXPORTER" "8" "" "ntpd-rs 1.2.0" "ntpd-rs" +.TH "NTP-METRICS-EXPORTER" "8" "" "ntpd-rs 1.2.2" "ntpd-rs" .hy .SH NAME .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/docs/precompiled/man/ntp.toml.5 new/ntpd-rs-1.2.2/docs/precompiled/man/ntp.toml.5 --- old/ntpd-rs-1.2.0/docs/precompiled/man/ntp.toml.5 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/docs/precompiled/man/ntp.toml.5 2024-07-18 16:49:55.000000000 +0200 @@ -14,7 +14,7 @@ . ftr VB CB . ftr VBI CBI .\} -.TH "NTP.TOML" "5" "" "ntpd-rs 1.2.0" "ntpd-rs" +.TH "NTP.TOML" "5" "" "ntpd-rs 1.2.2" "ntpd-rs" .hy .SH NAME .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/fuzz/Cargo.lock new/ntpd-rs-1.2.2/fuzz/Cargo.lock --- old/ntpd-rs-1.2.0/fuzz/Cargo.lock 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/fuzz/Cargo.lock 2024-07-18 16:49:55.000000000 +0200 @@ -14,9 +14,9 @@ [[package]] name = "aes" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac1f845298e95f983ff1944b728ae08b8cebab80d684f0a832ed0fc74dfa27e2" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", @@ -41,9 +41,9 @@ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ "derive_arbitrary", ] @@ -59,12 +59,13 @@ [[package]] name = "cc" -version = "1.0.83" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "eaff6f8ce506b9773fa786672d63fc7a191ffea1be33f72bbd4aeacefca9ffc8" dependencies = [ "jobserver", "libc", + "once_cell", ] [[package]] @@ -96,9 +97,9 @@ [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -134,9 +135,9 @@ [[package]] name = "derive_arbitrary" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", @@ -166,9 +167,9 @@ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "libc", @@ -186,18 +187,18 @@ [[package]] name = "jobserver" -version = "0.1.26" +version = "0.1.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e" dependencies = [ "libc", ] [[package]] name = "libc" -version = "0.2.153" +version = "0.2.155" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" +checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c" [[package]] name = "libfuzzer-sys" @@ -212,22 +213,23 @@ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "md-5" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" dependencies = [ + "cfg-if", "digest", ] [[package]] name = "ntp-proto" -version = "1.1.2" +version = "1.2.0" dependencies = [ "aead", "aes-siv", @@ -251,15 +253,15 @@ [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "pin-project-lite" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "ppv-lite86" @@ -269,18 +271,18 @@ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -321,11 +323,12 @@ [[package]] name = "ring" -version = "0.17.3" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babe80d5c16becf6594aa32ad2be8fe08498e7ae60b77de8df700e67f191d7e" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", @@ -335,11 +338,12 @@ [[package]] name = "rustls" -version = "0.22.4" +version = "0.23.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "4828ea528154ae444e5a642dbb7d5623354030dc9822b83fd9bb79683c7399d0" dependencies = [ "log", + "once_cell", "ring", "rustls-pki-types", "rustls-webpki", @@ -349,15 +353,15 @@ [[package]] name = "rustls-pki-types" -version = "1.3.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ede67b28608b4c60685c7d54122d4400d90f62b40caee7700e700380a390fa8" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] name = "rustls-webpki" -version = "0.102.2" +version = "0.102.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610" +checksum = "f9a6fccd794a42c2c105b513a2f62bc3fd8f3ba57a4593677ceb0bd035164d78" dependencies = [ "ring", "rustls-pki-types", @@ -366,18 +370,18 @@ [[package]] name = "serde" -version = "1.0.185" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.185" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", @@ -392,15 +396,15 @@ [[package]] name = "subtle" -version = "2.5.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" -version = "2.0.29" +version = "2.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16" dependencies = [ "proc-macro2", "quote", @@ -409,11 +413,10 @@ [[package]] name = "tracing" -version = "0.1.37" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "cfg-if", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -421,9 +424,9 @@ [[package]] name = "tracing-attributes" -version = "0.1.26" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", @@ -432,24 +435,24 @@ [[package]] name = "tracing-core" -version = "0.1.31" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ "once_cell", ] [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "untrusted" @@ -471,22 +474,23 @@ [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ "windows_aarch64_gnullvm", "windows_aarch64_msvc", "windows_i686_gnu", + "windows_i686_gnullvm", "windows_i686_msvc", "windows_x86_64_gnu", "windows_x86_64_gnullvm", @@ -495,48 +499,54 @@ [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/ntp-proto/src/nts_record.rs new/ntpd-rs-1.2.2/ntp-proto/src/nts_record.rs --- old/ntpd-rs-1.2.0/ntp-proto/src/nts_record.rs 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/ntp-proto/src/nts_record.rs 2024-07-18 16:49:55.000000000 +0200 @@ -1529,6 +1529,7 @@ #[derive(Debug)] enum State { Active { decoder: KeyExchangeServerDecoder }, + PendingError { error: KeyExchangeError }, Done, } @@ -1564,7 +1565,7 @@ Ok(()) } - fn send_error_record(mut tls_connection: rustls::ServerConnection, error: &KeyExchangeError) { + fn send_error_record(tls_connection: &mut rustls::ServerConnection, error: &KeyExchangeError) { let error_records = [ NtsRecord::Error { errorcode: error.to_error_code(), @@ -1575,7 +1576,7 @@ NtsRecord::EndOfMessage, ]; - if let Err(io) = Self::send_records(&mut tls_connection, &error_records) { + if let Err(io) = Self::send_records(tls_connection, &error_records) { tracing::debug!(key_exchange_error = ?error, io_error = ?io, "sending error record failed"); } } @@ -1589,64 +1590,65 @@ } let mut buf = [0; 512]; - match self.tls_connection.reader().read(&mut buf) { - Ok(0) => { - // the connection was closed cleanly by the client - // see https://docs.rs/rustls/latest/rustls/struct.Reader.html#method.read - ControlFlow::Break(self.end_of_file()) - } - Ok(n) => { - match self.state { - State::Active { decoder } => match decoder.step_with_slice(&buf[..n]) { - ControlFlow::Continue(decoder) => { - // more bytes are needed - self.state = State::Active { decoder }; - - // recursively invoke the progress function. This is very unlikely! - // - // Normally, all records are written with a single write call, and - // received as one unit. Using many write calls does not really make - // sense for a client. - // - // So then, the other reason we could end up here is if the buffer is - // full. But 512 bytes is a lot of space for this interaction, and - // should be sufficient in most cases. - ControlFlow::Continue(self) - } - ControlFlow::Break(Ok(data)) => { - // all records have been decoded; send a response - // continues for a clean shutdown of the connection by the client - self.state = State::Done; - self.decoder_done(data) - } - ControlFlow::Break(Err(error)) => { - Self::send_error_record(self.tls_connection, &error); - ControlFlow::Break(Err(error)) + loop { + match self.tls_connection.reader().read(&mut buf) { + Ok(0) => { + // the connection was closed cleanly by the client + // see https://docs.rs/rustls/latest/rustls/struct.Reader.html#method.read + if self.wants_write() { + return ControlFlow::Continue(self); + } else { + return ControlFlow::Break(self.end_of_file()); + } + } + Ok(n) => { + match self.state { + State::Active { decoder } => match decoder.step_with_slice(&buf[..n]) { + ControlFlow::Continue(decoder) => { + // more bytes are needed + self.state = State::Active { decoder }; + } + ControlFlow::Break(Ok(data)) => { + // all records have been decoded; send a response + // continues for a clean shutdown of the connection by the client + self.state = State::Done; + return self.decoder_done(data); + } + ControlFlow::Break(Err(error)) => { + Self::send_error_record(&mut self.tls_connection, &error); + self.state = State::PendingError { error }; + return ControlFlow::Continue(self); + } + }, + State::PendingError { .. } | State::Done => { + // client is sending more bytes, but we don't expect any more + // these extra bytes are ignored + return ControlFlow::Continue(self); } - }, - State::Done => { - // client is sending more bytes, but we don't expect any more - // these extra bytes are ignored - ControlFlow::Continue(self) } } + Err(e) => match e.kind() { + std::io::ErrorKind::WouldBlock => { + // basically an await; give other tasks a chance + return ControlFlow::Continue(self); + } + std::io::ErrorKind::UnexpectedEof => { + // the connection was closed uncleanly by the client + // see https://docs.rs/rustls/latest/rustls/struct.Reader.html#method.read + if self.wants_write() { + return ControlFlow::Continue(self); + } else { + return ControlFlow::Break(self.end_of_file()); + } + } + _ => { + let error = KeyExchangeError::Io(e); + Self::send_error_record(&mut self.tls_connection, &error); + self.state = State::PendingError { error }; + return ControlFlow::Continue(self); + } + }, } - Err(e) => match e.kind() { - std::io::ErrorKind::WouldBlock => { - // basically an await; give other tasks a chance - ControlFlow::Continue(self) - } - std::io::ErrorKind::UnexpectedEof => { - // the connection was closed uncleanly by the client - // see https://docs.rs/rustls/latest/rustls/struct.Reader.html#method.read - ControlFlow::Break(self.end_of_file()) - } - _ => { - let error = KeyExchangeError::Io(e); - Self::send_error_record(self.tls_connection, &error); - ControlFlow::Break(Err(error)) - } - }, } } @@ -1656,6 +1658,10 @@ // there are no more client bytes, but decoding was not finished yet Err(KeyExchangeError::IncompleteResponse) } + State::PendingError { error } => { + // We can now return the error + Err(error) + } State::Done => { // we're all done Ok(self.tls_connection) @@ -1736,8 +1742,11 @@ } } Err(key_extract_error) => { - Self::send_error_record(self.tls_connection, &key_extract_error); - ControlFlow::Break(Err(key_extract_error)) + Self::send_error_record(&mut self.tls_connection, &key_extract_error); + self.state = State::PendingError { + error: key_extract_error, + }; + ControlFlow::Continue(self) } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/ntpd/src/daemon/keyexchange.rs new/ntpd-rs-1.2.2/ntpd/src/daemon/keyexchange.rs --- old/ntpd-rs-1.2.0/ntpd/src/daemon/keyexchange.rs 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/ntpd/src/daemon/keyexchange.rs 2024-07-18 16:49:55.000000000 +0200 @@ -12,7 +12,10 @@ use ntp_proto::{ KeyExchangeClient, KeyExchangeError, KeyExchangeResult, KeyExchangeServer, KeySet, }; -use rustls::pki_types::{CertificateDer, PrivateKeyDer}; +use rustls::{ + pki_types::{CertificateDer, PrivateKeyDer}, + version::TLS13, +}; use tokio::{ io::{AsyncRead, AsyncWrite, ReadBuf}, net::TcpListener, @@ -42,9 +45,11 @@ .map_err(KeyExchangeError::Certificate)?; } - Ok(rustls::ClientConfig::builder() - .with_root_certificates(roots) - .with_no_client_auth()) + Ok( + rustls::ClientConfig::builder_with_protocol_versions(&[&TLS13]) + .with_root_certificates(roots) + .with_no_client_auth(), + ) } pub(crate) async fn key_exchange_client( @@ -149,7 +154,7 @@ certificate_chain: Vec<CertificateDer<'static>>, private_key: PrivateKeyDer<'static>, ) -> std::io::Result<Arc<rustls::ServerConfig>> { - let mut config = rustls::ServerConfig::builder() + let mut config = rustls::ServerConfig::builder_with_protocol_versions(&[&TLS13]) .with_client_cert_verifier(Arc::new( #[cfg(not(feature = "unstable_nts-pool"))] rustls::server::NoClientAuth, @@ -528,6 +533,12 @@ let no_write = write_blocks || !this.server.wants_write(); let no_read = read_blocks || !this.server.wants_read(); if no_write && no_read { + // Do any final processing needed + this.server = match this.server.progress() { + ControlFlow::Continue(client) => client, + ControlFlow::Break(Err(e)) => return Poll::Ready(Err(e)), + ControlFlow::Break(Ok(_)) => return Poll::Ready(Ok(())), + }; outer.inner = Some(this); return Poll::Pending; } @@ -691,6 +702,76 @@ assert_eq!(result.port, 123); } + #[tokio::test] + async fn key_exchange_weird_packet() { + let provider = KeySetProvider::new(1); + let keyset = provider.get(); + #[cfg(feature = "unstable_nts-pool")] + let pool_certs = ["testdata/certificates/nos-nl.pem"]; + + let (_sender, keyset) = tokio::sync::watch::channel(keyset); + let nts_ke_config = NtsKeConfig { + certificate_chain_path: PathBuf::from("test-keys/end.fullchain.pem"), + private_key_path: PathBuf::from("test-keys/end.key"), + #[cfg(feature = "unstable_nts-pool")] + authorized_pool_server_certificates: pool_certs.iter().map(PathBuf::from).collect(), + key_exchange_timeout_ms: 1000, + concurrent_connections: 512, + listen: "0.0.0.0:5436".parse().unwrap(), + ntp_port: None, + ntp_server: None, + }; + + let _join_handle = spawn(nts_ke_config, keyset); + + // give the server some time to make the port available + tokio::time::sleep(std::time::Duration::from_millis(20)).await; + + let mut stream = client_tls_stream("localhost", 5436).await; + + stream.write_all(b"\x80\x01\x00\x02\x00\x00\x80\x04\x00\x02\x00\x0f\x00\x64\x03\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00").await.unwrap(); + stream.flush().await.unwrap(); + + let mut buf = [0u8; 2048]; + let len = stream.read(&mut buf).await.unwrap(); + assert_eq!(len, 880); + } + + #[tokio::test] + async fn key_exchange_bad_request() { + let provider = KeySetProvider::new(1); + let keyset = provider.get(); + #[cfg(feature = "unstable_nts-pool")] + let pool_certs = ["testdata/certificates/nos-nl.pem"]; + + let (_sender, keyset) = tokio::sync::watch::channel(keyset); + let nts_ke_config = NtsKeConfig { + certificate_chain_path: PathBuf::from("test-keys/end.fullchain.pem"), + private_key_path: PathBuf::from("test-keys/end.key"), + #[cfg(feature = "unstable_nts-pool")] + authorized_pool_server_certificates: pool_certs.iter().map(PathBuf::from).collect(), + key_exchange_timeout_ms: 1000, + concurrent_connections: 512, + listen: "0.0.0.0:5436".parse().unwrap(), + ntp_port: None, + ntp_server: None, + }; + + let _join_handle = spawn(nts_ke_config, keyset); + + // give the server some time to make the port available + tokio::time::sleep(std::time::Duration::from_millis(20)).await; + + let mut stream = client_tls_stream("localhost", 5436).await; + + stream.write_all(b"\x80\x01\x00\x02\x00\x01\x80\x04\x00\x02\x00\x0f\x00\x64\x03\xec\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00").await.unwrap(); + stream.flush().await.unwrap(); + + let mut buf = [0u8; 2048]; + let len = stream.read(&mut buf).await.unwrap(); + assert_eq!(len, 16); + } + #[cfg(not(target_os = "macos"))] #[tokio::test] async fn key_exchange_connection_limiter() { @@ -1174,6 +1255,7 @@ } #[tokio::test] + #[ignore = "Flaky on macos and not that interesting"] async fn client_sends_no_records_dirty_shutdown() { let listener = TcpListener::bind(&("localhost", 0)).await.unwrap(); let port = listener.local_addr().unwrap().port(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ntpd-rs-1.2.0/nts-pool-ke/src/lib.rs new/ntpd-rs-1.2.2/nts-pool-ke/src/lib.rs --- old/ntpd-rs-1.2.0/nts-pool-ke/src/lib.rs 2024-07-11 10:10:46.000000000 +0200 +++ new/ntpd-rs-1.2.2/nts-pool-ke/src/lib.rs 2024-07-18 16:49:55.000000000 +0200 @@ -12,7 +12,10 @@ AeadAlgorithm, ClientToPoolData, KeyExchangeError, NtsRecord, PoolToServerData, PoolToServerDecoder, SupportedAlgorithmsDecoder, }; -use rustls::pki_types::{CertificateDer, ServerName}; +use rustls::{ + pki_types::{CertificateDer, ServerName}, + version::TLS13, +}; use tokio::{ io::{AsyncReadExt, AsyncWriteExt}, net::{TcpListener, ToSocketAddrs}, @@ -179,7 +182,7 @@ ) -> std::io::Result<()> { let listener = TcpListener::bind(address).await?; - let mut config = rustls::ServerConfig::builder() + let mut config = rustls::ServerConfig::builder_with_protocol_versions(&[&TLS13]) .with_no_client_auth() .with_single_cert(certificate_chain.clone(), private_key.clone_key()) .map_err(|err| std::io::Error::new(std::io::ErrorKind::InvalidInput, err))?; @@ -459,7 +462,7 @@ .map_err(KeyExchangeError::Certificate)?; } - let config = rustls::ClientConfig::builder() + let config = rustls::ClientConfig::builder_with_protocol_versions(&[&TLS13]) .with_root_certificates(roots) .with_client_auth_cert(certificate_chain, private_key) .unwrap(); ++++++ vendor.tar.zst ++++++ /work/SRC/openSUSE:Factory/ntpd-rs/vendor.tar.zst /work/SRC/openSUSE:Factory/.ntpd-rs.new.17339/vendor.tar.zst differ: char 368114, line 1590