quick_file_transfer/
mdns.rs

1use anyhow::Result;
2
3use crate::config::mdns::{
4    discover::MdnsDiscoverArgs, register::MdnsRegisterArgs, resolve::MdnsResolveArgs, MdnsCommand,
5};
6
7pub mod resolve;
8
9mod discover;
10mod register;
11mod util;
12
13pub fn handle_mdns_command(cmd: &MdnsCommand) -> Result<()> {
14    match cmd {
15        MdnsCommand::Discover(MdnsDiscoverArgs {
16            timeout_ms,
17            service_type,
18        }) => {
19            discover::discover_service_type(&service_type.label, service_type.protocol, *timeout_ms)
20        }
21        MdnsCommand::Resolve(MdnsResolveArgs {
22            hostname,
23            timeout_ms,
24            short_circuit,
25        }) => resolve::resolve_hostname_print_stdout(hostname, *timeout_ms, *short_circuit),
26        MdnsCommand::Register(MdnsRegisterArgs {
27            hostname,
28            instance_name,
29            keep_alive_ms,
30            ip,
31            port,
32            service_type,
33        }) => register::start_mdns_service(
34            hostname,
35            &service_type.label,
36            service_type.protocol,
37            instance_name,
38            *keep_alive_ms,
39            ip.as_deref(),
40            *port,
41        ),
42    }
43}