limit mdns addresses

This commit is contained in:
Robin Appelman 2022-08-25 18:52:04 +02:00
commit 70bba8ed2c
3 changed files with 11 additions and 2 deletions

View file

@ -11,7 +11,7 @@ use std::time::Duration;
use tokio::runtime::Handle;
use tokio::spawn;
use tokio::time::sleep;
use tracing::warn;
use tracing::{info, warn};
use warp::reject::Reject;
use warp::{Filter, Rejection};
@ -88,8 +88,15 @@ async fn main() -> Result<()> {
}
async fn setup_mdns(hostname: String, port: u16) {
let interfaces = if_addrs::get_if_addrs().unwrap_or_default();
let ip_list: Vec<_> = interfaces
.into_iter()
.filter(|interface| !interface.name.contains("docker") && !interface.name.contains("br-"))
.map(|interface| interface.addr.ip())
.collect();
let mdns = loop {
match Responder::spawn(&Handle::current()) {
match Responder::spawn_with_ip_list(&Handle::current(), ip_list.clone()) {
Ok(mdns) => break mdns,
Err(e) => {
warn!(error = display(e), "Failed to register mdns responder");