Struct libmdns::Responder

source ·
pub struct Responder { /* private fields */ }

Implementations§

source§

impl Responder

source

pub fn new() -> Result<Responder>

Spawn a Responder task on an new os thread.

source

pub fn new_with_ip_list(allowed_ips: Vec<IpAddr>) -> Result<Responder>

Spawn a Responder task on an new os thread. DNS response records will have the reported IPs limited to those passed in here. This can be particularly useful on machines with lots of networks created by tools such as docker.

source

pub fn spawn(handle: &Handle) -> Result<Responder>

Spawn a Responder with the provided tokio Handle.

Example
use libmdns::Responder;

let rt = tokio::runtime::Builder::new_current_thread().build().unwrap();
let handle = rt.handle().clone();
let responder = Responder::spawn(&handle)?;
source

pub fn spawn_with_ip_list( handle: &Handle, allowed_ips: Vec<IpAddr> ) -> Result<Responder>

Spawn a Responder task with the provided tokio Handle. DNS response records will have the reported IPs limited to those passed in here. This can be particularly useful on machines with lots of networks created by tools such as docker.

source

pub fn with_default_handle( ) -> Result<(Responder, Box<dyn Future<Output = ()> + Send + Unpin>)>

Spawn a Responder on the default tokio handle.

source

pub fn with_default_handle_and_ip_list( allowed_ips: Vec<IpAddr> ) -> Result<(Responder, Box<dyn Future<Output = ()> + Send + Unpin>)>

Spawn a Responder on the default tokio handle. DNS response records will have the reported IPs limited to those passed in here. This can be particularly useful on machines with lots of networks created by tools such as docker.

source§

impl Responder

source

pub fn register( &self, svc_type: String, svc_name: String, port: u16, txt: &[&str] ) -> Service

Register a service to be advertised by the Responder. The service is unregistered on drop.

example
use libmdns::Responder;

let responder = Responder::new()?;
// bind service
let _http_svc = responder.register(
         "_http._tcp".into(),
         "my http server".into(),
         80,
         &["path=/"]
     );

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V