Buttplug sex toy control library
at dev 802 B view raw
1use rand::distr::{Alphanumeric, SampleString}; 2 3pub struct IntifaceMdns { 4 _responder: libmdns::Responder, 5 _svc: libmdns::Service, 6} 7 8impl IntifaceMdns { 9 pub fn new() -> Self { 10 let random_suffix = Alphanumeric.sample_string(&mut rand::rng(), 6); 11 let instance_name = format!("Intiface {}", random_suffix); 12 info!( 13 "Bringing up mDNS Advertisment using instance name {}", 14 instance_name 15 ); 16 17 let (_responder, task) = libmdns::Responder::with_default_handle().unwrap(); 18 let _svc = _responder.register( 19 "_intiface_engine._tcp".to_owned(), 20 instance_name, 21 12345, 22 &["path=/"], 23 ); 24 tokio::spawn(async move { 25 info!("Entering up mDNS task"); 26 task.await; 27 info!("Exiting mDNS task"); 28 }); 29 Self { _responder, _svc } 30 } 31}