feat(inventory agent): Local presence advertisement and discovery now works! Must be within the same LAN to share the multicast address though

This commit is contained in:
2025-08-29 11:22:44 -04:00
parent b857412151
commit 05e7b8075c
10 changed files with 154 additions and 30 deletions

112
Cargo.lock generated
View File

@@ -641,7 +641,7 @@ dependencies = [
"tokio-util",
"tower-service",
"url",
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -715,6 +715,12 @@ dependencies = [
"bytes",
]
[[package]]
name = "c_linked_list"
version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b"
[[package]]
name = "camino"
version = "1.1.10"
@@ -1102,7 +1108,7 @@ dependencies = [
"parking_lot",
"signal-hook",
"signal-hook-mio",
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -1119,7 +1125,7 @@ dependencies = [
"rustix 0.38.44",
"signal-hook",
"signal-hook-mio",
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -1128,7 +1134,7 @@ version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "acdd7c62a3665c7f6830a51635d9ac9b23ed385797f70a83bb8bafe9c572ab2b"
dependencies = [
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -2049,6 +2055,12 @@ dependencies = [
"byteorder",
]
[[package]]
name = "gcc"
version = "0.3.55"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
[[package]]
name = "generic-array"
version = "0.14.7"
@@ -2060,6 +2072,28 @@ dependencies = [
"zeroize",
]
[[package]]
name = "get_if_addrs"
version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abddb55a898d32925f3148bd281174a68eeb68bbfd9a5938a57b18f506ee4ef7"
dependencies = [
"c_linked_list",
"get_if_addrs-sys",
"libc",
"winapi 0.2.8",
]
[[package]]
name = "get_if_addrs-sys"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d04f9fb746cf36b191c00f3ede8bde9c8e64f9f4b05ae2694a9ccf5e3f5ab48"
dependencies = [
"gcc",
"libc",
]
[[package]]
name = "getrandom"
version = "0.2.16"
@@ -2271,8 +2305,9 @@ version = "0.1.0"
dependencies = [
"actix-web",
"env_logger",
"local-ip-address",
"log",
"mdns-sd",
"mdns-sd 0.14.1 (git+https://github.com/jggc/mdns-sd.git?branch=patch-1)",
"serde",
"serde_json",
"sysinfo",
@@ -2631,7 +2666,7 @@ dependencies = [
"pin-project-lite",
"tokio",
"tower-service",
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -3365,6 +3400,18 @@ dependencies = [
"local-waker",
]
[[package]]
name = "local-ip-address"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "656b3b27f8893f7bbf9485148ff9a65f019e3f33bd5cdc87c83cab16b3fd9ec8"
dependencies = [
"libc",
"neli",
"thiserror 2.0.14",
"windows-sys 0.59.0",
]
[[package]]
name = "local-waker"
version = "0.1.4"
@@ -3434,8 +3481,10 @@ dependencies = [
"dmidecode",
"env_logger",
"futures",
"get_if_addrs",
"local-ip-address",
"log",
"mdns-sd",
"mdns-sd 0.14.1 (registry+https://github.com/rust-lang/crates.io-index)",
"tokio",
]
@@ -3454,6 +3503,20 @@ dependencies = [
"socket2 0.6.0",
]
[[package]]
name = "mdns-sd"
version = "0.14.1"
source = "git+https://github.com/jggc/mdns-sd.git?branch=patch-1#9e4619599d1493ec15395d62d82d40a43fbef9e7"
dependencies = [
"fastrand",
"flume",
"if-addrs",
"log",
"mio 1.0.4",
"socket-pktinfo",
"socket2 0.6.0",
]
[[package]]
name = "memchr"
version = "2.7.5"
@@ -3516,6 +3579,31 @@ dependencies = [
"tempfile",
]
[[package]]
name = "neli"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93062a0dce6da2517ea35f301dfc88184ce18d3601ec786a727a87bf535deca9"
dependencies = [
"byteorder",
"libc",
"log",
"neli-proc-macros",
]
[[package]]
name = "neli-proc-macros"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0c8034b7fbb6f9455b2a96c19e6edf8dc9fc34c70449938d8ee3b4df363f61fe"
dependencies = [
"either",
"proc-macro2",
"quote",
"serde",
"syn 1.0.109",
]
[[package]]
name = "newline-converter"
version = "0.3.0"
@@ -3540,7 +3628,7 @@ version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4"
dependencies = [
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -4606,7 +4694,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fadd2c0ab350e21c66556f94ee06f766d8bdae3213857ba7610bfd8e10e51880"
dependencies = [
"libc",
"winapi",
"winapi 0.3.9",
]
[[package]]
@@ -6304,6 +6392,12 @@ dependencies = [
"rustls-pki-types",
]
[[package]]
name = "winapi"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
[[package]]
name = "winapi"
version = "0.3.9"