DNS-SD Server

This module includes APIs for DNS-SD server.

Summary

Enumerations

otDnssdQueryType{
  OT_DNSSD_QUERY_TYPE_NONE = 0,
  OT_DNSSD_QUERY_TYPE_BROWSE = 1,
  OT_DNSSD_QUERY_TYPE_RESOLVE = 2,
  OT_DNSSD_QUERY_TYPE_RESOLVE_HOST = 3
}
enum
This enumeration specifies a DNS-SD query type.

Typedefs

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

Functions

otDnssdGetNextQuery(otInstance *aInstance, const otDnssdQuery *aQuery)
const otDnssdQuery *
This function acquires the next query in the DNS-SD server.
otDnssdGetQueryTypeAndName(const otDnssdQuery *aQuery, char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE])
This function acquires the DNS-SD query type and name for a specific query.
otDnssdQueryHandleDiscoveredHost(otInstance *aInstance, const char *aHostFullName, otDnssdHostInfo *aHostInfo)
void
This function notifies a discovered host.
otDnssdQueryHandleDiscoveredServiceInstance(otInstance *aInstance, const char *aServiceFullName, otDnssdServiceInstanceInfo *aInstanceInfo)
void
This function notifies a discovered service instance.
otDnssdQuerySetCallbacks(otInstance *aInstance, otDnssdQuerySubscribeCallback aSubscribe, otDnssdQueryUnsubscribeCallback aUnsubscribe, void *aContext)
void
This function sets DNS-SD server query callbacks.

Structs

otDnssdHostInfo

This structure represents information of a discovered host for a DNS-SD query.

otDnssdServiceInstanceInfo

This structure represents information of a discovered service instance for a DNS-SD query.

Enumerations

otDnssdQueryType

 otDnssdQueryType

This enumeration specifies a DNS-SD query type.

Properties
OT_DNSSD_QUERY_TYPE_BROWSE

Service type browse service.

OT_DNSSD_QUERY_TYPE_NONE

Service type unspecified.

OT_DNSSD_QUERY_TYPE_RESOLVE

Service type resolve service instance.

OT_DNSSD_QUERY_TYPE_RESOLVE_HOST

Service type resolve hostname.

Typedefs

otDnssdHostInfo

struct otDnssdHostInfo otDnssdHostInfo

This structure represents information of a discovered host for a DNS-SD query.

otDnssdQuery

void otDnssdQuery

This opaque type represents a DNS-SD query.

otDnssdQuerySubscribeCallback

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.

Details
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

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.

Details
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.").

otDnssdServiceInstanceInfo

struct otDnssdServiceInstanceInfo otDnssdServiceInstanceInfo

This structure represents information of a discovered service instance for a DNS-SD query.

Functions

otDnssdGetNextQuery

const otDnssdQuery * otDnssdGetNextQuery(
  otInstance *aInstance,
  const otDnssdQuery *aQuery
)

This function acquires the next query in the DNS-SD server.

Details
Parameters
[in] aInstance
The OpenThread instance structure.
[in] aQuery
The query pointer. Pass NULL to get the first query.
Returns
A pointer to the query or NULL if no more queries.

otDnssdGetQueryTypeAndName

otDnssdQueryType otDnssdGetQueryTypeAndName(
  const otDnssdQuery *aQuery,
  char(*) aNameOutput[OT_DNS_MAX_NAME_SIZE]
)

This function acquires the DNS-SD query type and name for a specific query.

Details
Parameters
[in] aQuery
The query pointer acquired from otDnssdGetNextQuery.
[out] aNameOutput
The name output buffer, which should be OT_DNS_MAX_NAME_SIZE bytes long.
Returns
The DNS-SD query type.

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.

Details
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.

Details
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.

Details
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.