From 19324951e3ab3cb80ab24dbc30462fe881bd9c3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Sep 2025 05:08:09 +0000 Subject: [PATCH 1/7] Bump actix-rt from 2.10.0 to 2.11.0 in the minor group Bumps the minor group with 1 update: [actix-rt](https://github.com/actix/actix-net). Updates `actix-rt` from 2.10.0 to 2.11.0 - [Release notes](https://github.com/actix/actix-net/releases) - [Commits](https://github.com/actix/actix-net/compare/rt-v2.10.0...rt-v2.11.0) --- updated-dependencies: - dependency-name: actix-rt dependency-version: 2.11.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor ... Signed-off-by: dependabot[bot] --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a017a0d..ae6a16f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -110,9 +110,9 @@ dependencies = [ [[package]] name = "actix-rt" -version = "2.10.0" +version = "2.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eda4e2a6e042aa4e55ac438a2ae052d3b5da0ecf83d7411e1a368946925208" +checksum = "92589714878ca59a7626ea19734f0e07a6a875197eec751bb5d3f99e64998c63" dependencies = [ "actix-macros", "futures-core", From 3a7b383915f2d2ab8ef0e06cf6dc643013ebdebe Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 10:32:09 -0600 Subject: [PATCH 2/7] Updating actix-service --- Cargo.lock | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae6a16f..dd67892 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -138,12 +138,11 @@ dependencies = [ [[package]] name = "actix-service" -version = "2.0.2" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b894941f818cfdc7ccc4b9e60fa7e53b5042a2e8567270f9147d5591893373a" +checksum = "9e46f36bf0e5af44bdc4bdb36fbbd421aa98c79a9bce724e1edeb3894e10dc7f" dependencies = [ "futures-core", - "paste", "pin-project-lite", ] @@ -1426,12 +1425,6 @@ dependencies = [ "windows-targets 0.52.5", ] -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - [[package]] name = "pem-rfc7468" version = "0.7.0" From 31932127ae755fd8195b93d5677ceabc6c787043 Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 10:59:45 -0600 Subject: [PATCH 3/7] updating rust to 1.89 --- Cargo.toml | 4 ++-- Dockerfile | 2 +- src/settings.rs | 8 +++++--- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 00cfed6..489fca1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,8 +4,8 @@ authors = [ "Michael Cooper ", "Mathieu Leplatre " ] -edition = "2021" -rust-version = "1.87" +edition = "2024" +rust-version = "1.89" name = "classify-client" version = "0.3.0" diff --git a/Dockerfile b/Dockerfile index f2a8f71..666aba9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM rust:1.87-slim-bookworm as build +FROM rust:1.89-slim-bookworm as build RUN apt-get update && \ apt-get install -y --no-install-recommends \ pkg-config curl libssl-dev diff --git a/src/settings.rs b/src/settings.rs index f520f51..32affe1 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -124,9 +124,11 @@ mod tests { #[test] fn test_override_via_env_vars() { - env::set_var("DEBUG", "true"); - env::set_var("PORT", "8888"); - env::set_var("TRUSTED_PROXY_LIST", "2001:db8::/48,192.168.100.14/24"); + unsafe { + env::set_var("DEBUG", "true"); + env::set_var("PORT", "8888"); + env::set_var("TRUSTED_PROXY_LIST", "2001:db8::/48,192.168.100.14/24"); + } let settings = Settings::load().unwrap(); From 18d445e49f82ee4013bdd6d1133a4aaf85d12a0c Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 11:03:10 -0600 Subject: [PATCH 4/7] Upgrading other packages --- Cargo.lock | 222 ++++++++++++++++++++++++----------------------------- Cargo.toml | 4 +- 2 files changed, 101 insertions(+), 125 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dd67892..8b47d36 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,7 +90,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" dependencies = [ "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -208,7 +208,7 @@ dependencies = [ "actix-router", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -219,7 +219,7 @@ checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -553,7 +553,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", "unicode-xid", ] @@ -575,7 +575,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -678,9 +678,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "form_urlencoded" -version = "1.2.1" +version = "1.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" dependencies = [ "percent-encoding", ] @@ -741,7 +741,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -987,21 +987,22 @@ dependencies = [ [[package]] name = "icu_collections" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" dependencies = [ "displaydoc", + "potential_utf", "yoke", "zerofrom", "zerovec", ] [[package]] -name = "icu_locid" -version = "1.5.0" +name = "icu_locale_core" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" dependencies = [ "displaydoc", "litemap", @@ -1010,31 +1011,11 @@ dependencies = [ "zerovec", ] -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - [[package]] name = "icu_normalizer" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" dependencies = [ "displaydoc", "icu_collections", @@ -1042,72 +1023,59 @@ dependencies = [ "icu_properties", "icu_provider", "smallvec", - "utf16_iter", - "utf8_iter", - "write16", "zerovec", ] [[package]] name = "icu_normalizer_data" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" [[package]] name = "icu_properties" -version = "1.5.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93d6020766cfc6302c15dbbc9c8778c37e62c14427cb7f6e601d849e092aeef5" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" dependencies = [ "displaydoc", "icu_collections", - "icu_locid_transform", + "icu_locale_core", "icu_properties_data", "icu_provider", - "tinystr", + "potential_utf", + "zerotrie", "zerovec", ] [[package]] name = "icu_properties_data" -version = "1.5.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" [[package]] name = "icu_provider" -version = "1.5.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" dependencies = [ "displaydoc", - "icu_locid", - "icu_provider_macros", + "icu_locale_core", "stable_deref_trait", "tinystr", "writeable", "yoke", "zerofrom", + "zerotrie", "zerovec", ] -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.87", -] - [[package]] name = "idna" -version = "1.0.3" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" dependencies = [ "idna_adapter", "smallvec", @@ -1116,9 +1084,9 @@ dependencies = [ [[package]] name = "idna_adapter" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daca1df1c957320b2cf139ac61e7bd64fed304c5040df000a745aa1de3b4ef71" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" dependencies = [ "icu_normalizer", "icu_properties", @@ -1216,9 +1184,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89" [[package]] name = "litemap" -version = "0.7.3" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" [[package]] name = "local-channel" @@ -1370,7 +1338,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -1436,9 +1404,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.3.1" +version = "2.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "pin-project" @@ -1457,7 +1425,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -1478,6 +1446,15 @@ version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +[[package]] +name = "potential_utf" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1492,18 +1469,18 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "proc-macro2" -version = "1.0.83" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b33eb56c327dec362a9e55b3ad14f9d2f0904fb5a5b03b513ab5465399e9f43" +checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.36" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -1857,7 +1834,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -1985,9 +1962,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.13.2" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" @@ -2018,9 +1995,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.87" +version = "2.0.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" +checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6" dependencies = [ "proc-macro2", "quote", @@ -2035,13 +2012,13 @@ checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" [[package]] name = "synstructure" -version = "0.13.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -2088,7 +2065,7 @@ checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -2134,9 +2111,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.7.6" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" dependencies = [ "displaydoc", "zerovec", @@ -2230,7 +2207,7 @@ checksum = "395ae124c09f9e6918a2310af6038fba074bcf474ac352496d5910dd59a2226d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] @@ -2275,9 +2252,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-xid" @@ -2317,9 +2294,9 @@ dependencies = [ [[package]] name = "url" -version = "2.5.4" +version = "2.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" dependencies = [ "form_urlencoded", "idna", @@ -2333,12 +2310,6 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - [[package]] name = "utf8_iter" version = "1.0.4" @@ -2417,7 +2388,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", "wasm-bindgen-shared", ] @@ -2451,7 +2422,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -2769,23 +2740,17 @@ dependencies = [ "bitflags", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - [[package]] name = "writeable" -version = "0.5.5" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" [[package]] name = "yoke" -version = "0.7.4" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" dependencies = [ "serde", "stable_deref_trait", @@ -2795,13 +2760,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.7.5" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380878cad4ac9aac1e2435f3eb4020e8374b5f13c296cb75b4620ff8e229154" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", "synstructure", ] @@ -2822,27 +2787,27 @@ checksum = "6352c01d0edd5db859a63e2605f4ea3183ddbd15e2c4a9e7d32184df75e4f154" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] name = "zerofrom" -version = "0.1.4" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "595eed982f7d355beb85837f651fa22e90b3c044842dc7f2c2842c086f295808" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", "synstructure", ] @@ -2852,11 +2817,22 @@ version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + [[package]] name = "zerovec" -version = "0.10.4" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa2b893d79df23bfb12d5461018d408ea19dfafe76c2c7ef6d4eba614f8ff079" +checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b" dependencies = [ "yoke", "zerofrom", @@ -2865,13 +2841,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.10.3" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6eafa6dfb17584ea3e2bd6e76e0cc15ad7af12b09abdd1ca55961bed9b1063c6" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.87", + "syn 2.0.106", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 489fca1..e01519b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -22,7 +22,7 @@ regex = "^1.11.2" sentry = "^0.42.0" sentry-actix = "^0.42.0" serde = "^1.0.219" -serde_derive = "^1.0.202" +serde_derive = "^1.0.219" serde_json = "^1.0.143" slog = "^2.7" slog-async = "2.8.0" @@ -31,7 +31,7 @@ slog-mozlog-json = "0.1.0" slog-term = "2.9.2" slog_derive = "0.2" once_cell = "1.21.3" -url = "2.5.4" +url = "2.5.7" [dependencies.chrono] features = ["serde"] From 29cf5f116cbcfa1455c99843fccca889f955957d Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 11:07:12 -0600 Subject: [PATCH 5/7] Updated tracing core and tracing provider crates --- Cargo.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8b47d36..cf85a35 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2212,9 +2212,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.32" +version = "0.1.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +checksum = "e672c95779cf947c5311f83787af4fa8fffd12fb27e4993211a84bdfd9610f9c" dependencies = [ "once_cell", "valuable", @@ -2222,9 +2222,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.19" +version = "0.3.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" +checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" dependencies = [ "tracing-core", ] From 242537bb0c255e22f30cc3497c80fb16334e428e Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 11:13:37 -0600 Subject: [PATCH 6/7] running crgo fmt --- src/endpoints/classify.rs | 7 +++---- src/endpoints/country.rs | 4 ++-- src/endpoints/debug.rs | 2 +- src/endpoints/dockerflow.rs | 5 ++--- src/endpoints/mod.rs | 2 +- src/geoip.rs | 4 ++-- src/keys.rs | 28 +++++++++++++++------------- src/logging.rs | 6 +++--- src/main.rs | 4 ++-- src/metrics.rs | 10 +++++----- src/utils.rs | 2 +- 11 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/endpoints/classify.rs b/src/endpoints/classify.rs index 929b9d8..52942cf 100644 --- a/src/endpoints/classify.rs +++ b/src/endpoints/classify.rs @@ -1,5 +1,5 @@ use crate::{endpoints::EndpointState, errors::ClassifyError, utils::RequestClientIp}; -use actix_web::{http, web::Data, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, http, web::Data}; use chrono::{DateTime, Utc}; use maxminddb::{self, geoip2}; use serde::Serializer; @@ -62,14 +62,13 @@ pub async fn classify_client( mod tests { use crate::{endpoints::EndpointState, geoip::GeoIp}; use actix_web::{ - http, + App, http, test::{self, TestRequest}, web::{self, Data}, - App, }; use chrono::DateTime; use maxminddb::geoip2; - use serde_json::{json, Value}; + use serde_json::{Value, json}; use std::{collections::HashSet, sync::Arc}; #[actix_rt::test] diff --git a/src/endpoints/country.rs b/src/endpoints/country.rs index 9319d26..ebab953 100644 --- a/src/endpoints/country.rs +++ b/src/endpoints/country.rs @@ -1,5 +1,5 @@ use crate::{endpoints::EndpointState, errors::ClassifyError, utils::RequestClientIp}; -use actix_web::{http, web::Data, web::Query, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, http, web::Data, web::Query}; use cadence::prelude::*; use once_cell::sync::Lazy; use regex::Regex; @@ -114,9 +114,9 @@ pub async fn get_country( mod tests { use crate::{endpoints::EndpointState, geoip::GeoIp, metrics::tests::TestMetricSink}; use actix_web::{ + App, test::{self, TestRequest}, web::{self, Data}, - App, }; use cadence::StatsdClient; use serde_json::{self, json}; diff --git a/src/endpoints/debug.rs b/src/endpoints/debug.rs index 8f673ae..88be481 100644 --- a/src/endpoints/debug.rs +++ b/src/endpoints/debug.rs @@ -1,5 +1,5 @@ use crate::{endpoints::EndpointState, utils::RequestClientIp}; -use actix_web::{web::Data, HttpRequest, HttpResponse}; +use actix_web::{HttpRequest, HttpResponse, web::Data}; /// Show debugging information about the server comprising: /// diff --git a/src/endpoints/dockerflow.rs b/src/endpoints/dockerflow.rs index 52ef685..e7376ab 100644 --- a/src/endpoints/dockerflow.rs +++ b/src/endpoints/dockerflow.rs @@ -1,5 +1,5 @@ use crate::{endpoints::EndpointState, errors::ClassifyError}; -use actix_web::{web::Data, HttpResponse}; +use actix_web::{HttpResponse, web::Data}; use serde_derive::Serialize; use std::{ fs::File, @@ -55,10 +55,9 @@ pub async fn version(app_data: Data) -> HttpResponse { mod tests { use crate::endpoints::EndpointState; use actix_web::{ - http, + App, http, test::{self, TestRequest}, web::{self, Data}, - App, }; #[actix_rt::test] diff --git a/src/endpoints/mod.rs b/src/endpoints/mod.rs index 85f8d8e..cafa443 100644 --- a/src/endpoints/mod.rs +++ b/src/endpoints/mod.rs @@ -3,7 +3,7 @@ pub mod classify; pub mod country; pub mod debug; pub mod dockerflow; -use crate::{geoip::GeoIp, APP_NAME}; +use crate::{APP_NAME, geoip::GeoIp}; use std::{collections::HashSet, default::Default, path::PathBuf, sync::Arc}; #[derive(Clone, Debug)] diff --git a/src/geoip.rs b/src/geoip.rs index b94724e..41182e1 100644 --- a/src/geoip.rs +++ b/src/geoip.rs @@ -1,6 +1,6 @@ use crate::errors::ClassifyError; -use cadence::{prelude::*, StatsdClient}; -use maxminddb::{self, geoip2, MaxMindDbError}; +use cadence::{StatsdClient, prelude::*}; +use maxminddb::{self, MaxMindDbError, geoip2}; use std::{fmt, net::IpAddr, path::PathBuf, sync::Arc}; pub struct GeoIp { diff --git a/src/keys.rs b/src/keys.rs index a35b87d..440b9ea 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -1,4 +1,4 @@ -use serde_json::{from_str, Value}; +use serde_json::{Value, from_str}; use slog::Logger; use std::collections::HashSet; use std::fs::read_to_string; @@ -75,21 +75,23 @@ mod tests { // tests let missing_set = load(missing_file.clone(), logger.clone()); assert!(missing_set.is_empty()); - assert!(logs - .lock() - .unwrap() - .pop() - .unwrap() - .starts_with("ERRO / Error reading api keys file")); + assert!( + logs.lock() + .unwrap() + .pop() + .unwrap() + .starts_with("ERRO / Error reading api keys file") + ); let corrupt_set = load(corrupt_file.clone(), logger.clone()); assert!(corrupt_set.is_empty()); - assert!(logs - .lock() - .unwrap() - .pop() - .unwrap() - .starts_with("ERRO / Error parsing api keys file")); + assert!( + logs.lock() + .unwrap() + .pop() + .unwrap() + .starts_with("ERRO / Error parsing api keys file") + ); let good_set = load(good_file.clone(), logger.clone()); assert!(good_set.len() == 1); diff --git a/src/logging.rs b/src/logging.rs index 83956a4..d0d19f0 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -1,9 +1,9 @@ use actix_web::{ + Error, HttpRequest, HttpResponse, dev::{Service, ServiceRequest, ServiceResponse, Transform}, web::Data, - Error, HttpRequest, HttpResponse, }; -use futures::{future, Future, FutureExt}; +use futures::{Future, FutureExt, future}; use slog::{self, Drain}; use slog_derive::KV; use slog_mozlog_json::MozLogJson; @@ -132,7 +132,7 @@ where #[cfg(test)] mod tests { use crate::logging::MozLogFields; - use actix_web::{http, test, HttpResponse}; + use actix_web::{HttpResponse, http, test}; #[test] async fn test_request_fields() { diff --git a/src/main.rs b/src/main.rs index d61dfc6..5558f39 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,14 +12,14 @@ pub mod settings; pub mod utils; use crate::{ - endpoints::{canned, classify, country, debug, dockerflow, EndpointState}, + endpoints::{EndpointState, canned, classify, country, debug, dockerflow}, errors::ClassifyError, geoip::GeoIp, settings::Settings, }; use actix_web::{ - web::{self, Data}, App, + web::{self, Data}, }; use std::sync::Arc; diff --git a/src/metrics.rs b/src/metrics.rs index b592462..911ad6c 100644 --- a/src/metrics.rs +++ b/src/metrics.rs @@ -1,11 +1,11 @@ -use crate::{endpoints::EndpointState, errors::ClassifyError, APP_NAME}; +use crate::{APP_NAME, endpoints::EndpointState, errors::ClassifyError}; use actix_web::{ + Error, dev::{Service, ServiceRequest, ServiceResponse, Transform}, web::Data, - Error, }; -use cadence::{prelude::*, BufferedUdpMetricSink, StatsdClient}; -use futures::{future, Future, FutureExt}; +use cadence::{BufferedUdpMetricSink, StatsdClient, prelude::*}; +use futures::{Future, FutureExt, future}; use std::{ fmt::Display, net::{ToSocketAddrs, UdpSocket}, @@ -118,9 +118,9 @@ pub mod tests { use super::*; use crate::endpoints::EndpointState; use actix_web::{ + App, HttpResponse, test::{self, TestRequest}, web::{self, Data}, - App, HttpResponse, }; use cadence::StatsdClient; use regex::Regex; diff --git a/src/utils.rs b/src/utils.rs index 312a854..917fc26 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,5 +1,5 @@ use crate::{endpoints::EndpointState, errors::ClassifyError}; -use actix_web::{web::Data, HttpRequest}; +use actix_web::{HttpRequest, web::Data}; use std::net::IpAddr; pub trait RequestClientIp { From 772cd84d61a4afdff703449c8a805de41d2b6c6c Mon Sep 17 00:00:00 2001 From: Alex Cottner Date: Mon, 8 Sep 2025 11:22:28 -0600 Subject: [PATCH 7/7] Fixing clippy lint error --- src/utils.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/utils.rs b/src/utils.rs index 917fc26..a0f79ef 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -43,13 +43,13 @@ impl<'a> RequestTraceIps<'a> for HttpRequest { trace.push(peer_addr.ip()); } - if let Some(x_forwarded_for) = self.headers().get("X-Forwarded-For") { - if let Ok(header) = x_forwarded_for.to_str() { - let mut header_ips: Vec = - header.split(',').flat_map(|ip| ip.trim().parse()).collect(); - header_ips.reverse(); - trace.append(&mut header_ips); - } + if let Some(x_forwarded_for) = self.headers().get("X-Forwarded-For") + && let Ok(header) = x_forwarded_for.to_str() + { + let mut header_ips: Vec = + header.split(',').flat_map(|ip| ip.trim().parse()).collect(); + header_ips.reverse(); + trace.append(&mut header_ips); } trace