quick-file-transfer 0.10.2

Transfer files quickly, safely, and painlessly between hosts on a local network
Documentation
use anyhow::Result;

use crate::config::mdns::{
    discover::MdnsDiscoverArgs, register::MdnsRegisterArgs, resolve::MdnsResolveArgs, MdnsCommand,
};

pub mod resolve;

mod discover;
mod register;
mod util;

pub fn handle_mdns_command(cmd: &MdnsCommand) -> Result<()> {
    match cmd {
        MdnsCommand::Discover(MdnsDiscoverArgs {
            timeout_ms,
            service_type,
        }) => {
            discover::discover_service_type(&service_type.label, service_type.protocol, *timeout_ms)
        }
        MdnsCommand::Resolve(MdnsResolveArgs {
            hostname,
            timeout_ms,
            short_circuit,
        }) => resolve::resolve_hostname_print_stdout(hostname, *timeout_ms, *short_circuit),
        MdnsCommand::Register(MdnsRegisterArgs {
            hostname,
            instance_name,
            keep_alive_ms,
            ip,
            port,
            service_type,
        }) => register::start_mdns_service(
            hostname,
            &service_type.label,
            service_type.protocol,
            instance_name,
            *keep_alive_ms,
            ip.as_deref(),
            *port,
        ),
    }
}