quick_file_transfer/
mdns.rs1use 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}