wip(inventory-agent): local presence advertisement and discovery using mdns almost working

This commit is contained in:
2025-08-29 01:10:43 -04:00
parent 8cc7adf196
commit 6ac0e095a3
18 changed files with 624 additions and 63 deletions

252
Cargo.lock generated
View File

@@ -65,7 +65,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb"
dependencies = [
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -182,7 +182,7 @@ dependencies = [
"actix-router",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -249,6 +249,15 @@ dependencies = [
"zerocopy",
]
[[package]]
name = "aho-corasick"
version = "0.6.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
dependencies = [
"memchr",
]
[[package]]
name = "aho-corasick"
version = "1.1.3"
@@ -389,7 +398,7 @@ dependencies = [
"rustc-hash",
"serde",
"serde_derive",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -451,7 +460,7 @@ checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -462,7 +471,7 @@ checksum = "e539d3fca749fcee5236ab05e93a52867dd549cc157c8cb7f99595f3cedffdb5"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -849,9 +858,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.40"
version = "4.5.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f"
checksum = "2c5e4fcf9c21d2e544ca1ee9d8552de13019a42aa7dbf32747fa7aaf1df76e57"
dependencies = [
"clap_builder",
"clap_derive",
@@ -859,9 +868,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.40"
version = "4.5.46"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e"
checksum = "fecb53a0e6fcfb055f686001bc2e2592fa527efaf38dbe81a6a9563562e57d41"
dependencies = [
"anstream",
"anstyle",
@@ -871,14 +880,14 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.40"
version = "4.5.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce"
checksum = "14cb31bb0a7d536caef2639baa7fad459e15c3144efefa6dbd1c84562c4739f6"
dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1190,7 +1199,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1214,7 +1223,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1225,7 +1234,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead"
dependencies = [
"darling_core",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1263,7 +1272,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1283,7 +1292,7 @@ checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
"unicode-xid",
]
@@ -1349,7 +1358,20 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
name = "dmidecode"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e529c1bd93d69804dc1e0a0c73aacd12bb13c7a18c659497411abdc6acf5e5f"
dependencies = [
"aho-corasick 0.6.10",
"bitflags 1.3.2",
"failure",
"failure_derive",
"lazy_static",
]
[[package]]
@@ -1378,7 +1400,7 @@ dependencies = [
"anyhow",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1435,7 +1457,7 @@ dependencies = [
"enum-ordinalize",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1506,7 +1528,7 @@ checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -1777,6 +1799,28 @@ dependencies = [
"once_cell",
]
[[package]]
name = "failure"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
dependencies = [
"backtrace",
"failure_derive",
]
[[package]]
name = "failure_derive"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"synstructure 0.12.6",
]
[[package]]
name = "fastrand"
version = "2.3.0"
@@ -1821,6 +1865,17 @@ dependencies = [
"miniz_oxide",
]
[[package]]
name = "flume"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da0e4dd2a88388a1f4ccc7c9ce104604dab68d9f408dc34cd45823d5a9069095"
dependencies = [
"futures-core",
"futures-sink",
"spin",
]
[[package]]
name = "flurry"
version = "0.5.2"
@@ -1941,7 +1996,7 @@ checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -2126,6 +2181,7 @@ dependencies = [
"fqdn",
"futures-util",
"harmony-secret-derive",
"harmony_inventory_agent",
"harmony_macros",
"harmony_types",
"helm-wrapper-rs",
@@ -2192,7 +2248,7 @@ dependencies = [
"proc-macro-crate",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -2242,9 +2298,12 @@ dependencies = [
"actix-web",
"env_logger",
"log",
"mdns-sd",
"serde",
"serde_json",
"sysinfo",
"thiserror 2.0.14",
"tokio",
]
[[package]]
@@ -2256,7 +2315,7 @@ dependencies = [
"quote",
"serde",
"serde_yaml",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -2811,6 +2870,16 @@ dependencies = [
"icu_properties",
]
[[package]]
name = "if-addrs"
version = "0.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf39cc0423ee66021dc5eccface85580e4a001e0c5288bae8bea7ecb69225e90"
dependencies = [
"libc",
"windows-sys 0.59.0",
]
[[package]]
name = "impl-more"
version = "0.1.9"
@@ -2926,7 +2995,7 @@ dependencies = [
"indoc",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -2998,7 +3067,7 @@ checksum = "03343451ff899767262ec32146f6d559dd759fdadf42ff0e227c7c48f72594b4"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -3183,7 +3252,7 @@ dependencies = [
"quote",
"serde",
"serde_json",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -3354,6 +3423,34 @@ version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
[[package]]
name = "mdns"
version = "0.1.0"
dependencies = [
"clap",
"dmidecode",
"env_logger",
"futures",
"log",
"mdns-sd",
"tokio",
]
[[package]]
name = "mdns-sd"
version = "0.14.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e0a59b04e17a195b0674198b3182931801c4759d00f36acad51b5a97210a692"
dependencies = [
"fastrand",
"flume",
"if-addrs",
"log",
"mio 1.0.4",
"socket-pktinfo",
"socket2 0.6.0",
]
[[package]]
name = "memchr"
version = "2.7.5"
@@ -3607,7 +3704,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -3851,7 +3948,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -3881,7 +3978,7 @@ checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4285,7 +4382,7 @@ checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4294,7 +4391,7 @@ version = "1.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b544ef1b4eac5dc2db33ea63606ae9ffcfac26c1416a2806ae0bf5f56b201191"
dependencies = [
"aho-corasick",
"aho-corasick 1.1.3",
"memchr",
"regex-automata",
"regex-syntax",
@@ -4306,7 +4403,7 @@ version = "0.4.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
dependencies = [
"aho-corasick",
"aho-corasick 1.1.3",
"memchr",
"regex-syntax",
]
@@ -4793,7 +4890,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4925,7 +5022,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4936,7 +5033,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4969,7 +5066,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -4990,7 +5087,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5034,7 +5131,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5176,7 +5273,18 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
name = "socket-pktinfo"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "927136cc2ae6a1b0e66ac6b1210902b75c3f726db004a73bc18686dcd0dcd22f"
dependencies = [
"libc",
"socket2 0.6.0",
"windows-sys 0.60.2",
]
[[package]]
@@ -5204,6 +5312,9 @@ name = "spin"
version = "0.9.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
dependencies = [
"lock_api",
]
[[package]]
name = "spki"
@@ -5312,7 +5423,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5325,7 +5436,7 @@ dependencies = [
"proc-macro2",
"quote",
"rustversion",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5334,6 +5445,17 @@ version = "2.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "1.0.109"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
dependencies = [
"proc-macro2",
"quote",
"unicode-ident",
]
[[package]]
name = "syn"
version = "2.0.105"
@@ -5360,6 +5482,18 @@ dependencies = [
"futures-core",
]
[[package]]
name = "synstructure"
version = "0.12.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.109",
"unicode-xid",
]
[[package]]
name = "synstructure"
version = "0.13.2"
@@ -5368,7 +5502,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5502,7 +5636,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5513,7 +5647,7 @@ checksum = "cc5b44b4ab9c2fdd0e0512e6bece8388e214c0749f5862b114cc5b7a25daf227"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5618,7 +5752,7 @@ checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5789,7 +5923,7 @@ checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -5999,7 +6133,7 @@ checksum = "26b682e8c381995ea03130e381928e0e005b7c9eb483c6c8682f50e07b33c2b7"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -6075,7 +6209,7 @@ dependencies = [
"log",
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
"wasm-bindgen-shared",
]
@@ -6110,7 +6244,7 @@ checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@@ -6229,7 +6363,7 @@ checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -6240,7 +6374,7 @@ checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -6584,7 +6718,7 @@ dependencies = [
"quote",
"serde",
"serde_tokenstream",
"syn",
"syn 2.0.105",
"xml-rs",
]
@@ -6608,8 +6742,8 @@ checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
"syn 2.0.105",
"synstructure 0.13.2",
]
[[package]]
@@ -6629,7 +6763,7 @@ checksum = "9ecf5b4cc5364572d7f4c329661bcc82724222973f2cab6f050a4e5c22f75181"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]
@@ -6649,8 +6783,8 @@ checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502"
dependencies = [
"proc-macro2",
"quote",
"syn",
"synstructure",
"syn 2.0.105",
"synstructure 0.13.2",
]
[[package]]
@@ -6689,7 +6823,7 @@ checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
dependencies = [
"proc-macro2",
"quote",
"syn",
"syn 2.0.105",
]
[[package]]