Buttplug sex toy control library
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}