DNS-SD Server

This module includes APIs for DNS-SD server.

Classes

struct otDnssdServiceInstanceInfo
This structure represents information of a discovered service instance for a DNS-SD query.
struct otDnssdHostInfo
This structure represents information of a discovered host for a DNS-SD query.

Typedefs

typedef void(* otDnssdQuerySubscribeCallback ) (void *aContext, const char *aFullName)
This function is called when a DNS-SD query subscribes one of:
typedef void(* otDnssdQueryUnsubscribeCallback ) (void *aContext, const char *aFullName)
This function is called when a DNS-SD query unsubscribes one of:
typedef struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo
This structure represents information of a discovered service instance for a DNS-SD query.
typedef struct otDnssdHostInfo otDnssdHostInfo
This structure represents information of a discovered host for a DNS-SD query.

Functions

void otDnssdQuerySetCallbacks ( otInstance *aInstance, otDnssdQuerySubscribeCallback aSubscribe, otDnssdQueryUnsubscribeCallback aUnsubscribe, void *aContext)
This function sets DNS-SD server query callbacks.
void otDnssdQueryHandleDiscoveredServiceInstance ( otInstance *aInstance, const char *aServiceFullName, otDnssdServiceInstanceInfo *aInstanceInfo)
This function notifies a discovered service instance.
void otDnssdQueryHandleDiscoveredHost ( otInstance *aInstance, const char *aHostFullName, otDnssdHostInfo *aHostInfo)
This function notifies a discovered host.

Detailed Description

This module includes APIs for DNS-SD server.

Typedef Documentation

otDnssdQuerySubscribeCallback

typedef void(* otDnssdQuerySubscribeCallback) (void *aContext, const char *aFullName)

This function is called when a DNS-SD query subscribes one of:

  1. a service name.
  2. a service instance name.
  3. a host name.

The DNS-SD query implementation is responsible for identifying what aFullName is. If aFullName is a service name or service instance name, the DNS-SD query implementation should discover corresponding service instance information and notify the DNS-SD server using otDnssdQueryHandleDiscoveredServiceInstance . If aFullName is a host name, the DNS-SD query implementation should discover the host information and notify the DNS-SD server using otDnssdQueryHandleDiscoveredHost .

Note
There can be multiple subscription to the same name. DNS-SD query implementation should record the number of active subscriptions and stop notifying when there is no active subscription for aFullName .
Parameters
[in] aContext A pointer to the application-specific context.
[in] aFullName The null-terminated full service name (e.g. "_ipps._tcp.default.service.arpa."), or full service instance name (e.g. "OpenThread._ipps._tcp.default.service.arpa."), or full host name (e.g. "ot-host.default.service.arpa.").
See also
otDnssdQueryHandleDiscoveredServiceInstance
otDnssdQueryHandleDiscoveredHost

otDnssdQueryUnsubscribeCallback

typedef void(* otDnssdQueryUnsubscribeCallback) (void *aContext, const char *aFullName)

This function is called when a DNS-SD query unsubscribes one of:

  1. a service name.
  2. a service instance name.
  3. a host name.

The DNS-SD query implementation is responsible for identifying what aFullName is.

Note
There can be multiple subscription to the same name. DNS-SD query implementation should record the number of active subscriptions and stop notifying when there is no active subscription for aFullName .
Parameters
[in] aContext A pointer to the application-specific context.
[in] aFullName The null-terminated full service name (e.g. "_ipps._tcp.default.service.arpa."), or full service instance name (e.g. "OpenThread._ipps._tcp.default.service.arpa.").

Function Documentation

otDnssdQueryHandleDiscoveredHost()

void otDnssdQueryHandleDiscoveredHost ( otInstance * aInstance,
const char * aHostFullName,
otDnssdHostInfo * aHostInfo
)

This function notifies a discovered host.

The external query resolver (e.g. Discovery Proxy) should call this function to notify OpenThread core of the subscribed hosts.

Note
aHostInfo must not contain unspecified or link-local or loop-back or multicast IP addresses.
Parameters
[in] aInstance The OpenThread instance structure.
[in] aHostFullName The null-terminated full host name.
[in] aHostInfo A pointer to the discovered service instance information.

otDnssdQueryHandleDiscoveredServiceInstance()

void otDnssdQueryHandleDiscoveredServiceInstance ( otInstance * aInstance,
const char * aServiceFullName,
otDnssdServiceInstanceInfo * aInstanceInfo
)

This function notifies a discovered service instance.

The external query resolver (e.g. Discovery Proxy) should call this function to notify OpenThread core of the subscribed services or service instances.

Note
aInstanceInfo must not contain unspecified or link-local or loop-back or multicast IP addresses.
Parameters
[in] aInstance The OpenThread instance structure.
[in] aServiceFullName The null-terminated full service name.
[in] aInstanceInfo A pointer to the discovered service instance information.

otDnssdQuerySetCallbacks()

void otDnssdQuerySetCallbacks ( otInstance * aInstance,
otDnssdQuerySubscribeCallback aSubscribe,
otDnssdQueryUnsubscribeCallback aUnsubscribe,
void * aContext
)

This function sets DNS-SD server query callbacks.

The DNS-SD server calls aSubscribe to subscribe to a service or service instance to resolve a DNS-SD query and aUnsubscribe to unsubscribe when the query is resolved or timeout.

Note
aSubscribe and aUnsubscribe must be both set or unset.
Parameters
[in] aInstance The OpenThread instance structure.
[in] aSubscribe A pointer to the callback function to subscribe a service or service instance.
[in] aUnsubscribe A pointer to the callback function to unsubscribe a service or service instance.
[in] aContext A pointer to the application-specific context.