Embed: (wiki syntax)

« Back to documentation index

Fnet_mdns

Data Structures

struct  fnet_mdns_params
 Initialization parameters for the fnet_mdns_init() function. More...
struct  fnet_mdns_service
 The mDNS Service structure defining application-specific service, advertised by the mDNS server. More...

Typedefs

typedef struct fnet_mdns_service fnet_mdns_service_t
 The mDNS Service structure defining application-specific service, advertised by the mDNS server.
typedef void * fnet_mdns_desc_t
 mDNS server descriptor.
typedef void * fnet_mdns_service_desc_t
 mDNS advertised-service descriptor.

Functions

fnet_mdns_desc_t fnet_mdns_init (struct fnet_mdns_params *params)
 Initializes Multicast DNS (mDNS) server/responder.
void fnet_mdns_release (fnet_mdns_desc_t mdns_desc)
 Releases the Multicast DNS (mDNS) server/responder.
fnet_mdns_service_desc_t fnet_mdns_service_register (fnet_mdns_desc_t mdns_desc, const fnet_mdns_service_t *service)
 Registers application-specific service in the mDNS server.
void fnet_mdns_service_unregister (fnet_mdns_service_desc_t service_desc)
 Unregisters application service from the mDNS server.
void fnet_mdns_announce (fnet_mdns_desc_t mdns_desc)
 Sends unsolicited mDNS announcement.
fnet_bool_t fnet_mdns_is_enabled (fnet_mdns_desc_t desc)
 Detects if the mDNS Server is enabled or disabled.

Detailed Description

Multicast DNS (mDNS) is used to enable DNS-like name resolution in scenarios in which conventional Unicast DNS name resolution is not possible. It allows both IPv4 and IPv6 hosts to perform name resolution for hosts on the same local link.
The protocol specification is defined by RFC6762.
It is natively supported by Apple OSs, and named Bonjour.

After the MDNS server is initialized by calling the fnet_mdns_init() function, the user application should call the main service-polling function fnet_poll_service() periodically in background.

For the MDNS-server service example, refer to the FNET Shell demo source code.

Configuration parameters:

  • FNET_CFG_MDNS
  • FNET_CFG_MDNS_MAX
  • FNET_CFG_MDNS_PORT
  • FNET_CFG_MDNS_RR_TTL
  • FNET_CFG_MDNS_SERVICE_MAX

Typedef Documentation

typedef void* fnet_mdns_desc_t

mDNS server descriptor.

See also:
fnet_mdns_init(), fnet_mdns_release()

Definition at line 89 of file fnet_mdns.h.

typedef void* fnet_mdns_service_desc_t

mDNS advertised-service descriptor.

See also:
fnet_mdns_service_register(), fnet_mdns_service_unregister()

Definition at line 95 of file fnet_mdns.h.

The mDNS Service structure defining application-specific service, advertised by the mDNS server.

See also:
fnet_mdns_service_register()

Function Documentation

void fnet_mdns_announce ( fnet_mdns_desc_t  mdns_desc )

Sends unsolicited mDNS announcement.

Parameters:
mdns_descmDNS server descriptor.
See also:
fnet_mdns_init()

This function sends unsolicited mDNS announcement.
Application may call it when any advertised application-specific parameter has changed (e.g. network interface IP address or service TXT-record content).
RFC 6762: "At any time, if the rdata of any of a host's Multicast DNS records changes, the host MUST repeat the Announcing step to update neighboring caches. For example, if any of a host's IP addresses change, it MUST re-announce those address records".

Definition at line 503 of file fnet_mdns.c.

fnet_mdns_desc_t fnet_mdns_init ( struct fnet_mdns_params params )

Initializes Multicast DNS (mDNS) server/responder.

Parameters:
paramsInitialization parameters defined by fnet_mdns_params.
Returns:
This function returns:
  • mDNS server descriptor if no error occurs.
  • 0 if an error occurs.
See also:
fnet_mdns_release(), fnet_mdns_params

This function initializes the Multicast DNS (mDMS)server/responder.
It allocates all needed resources and registers the mDNS service in the polling list.
After the initialization, the user application should call the main polling function fnet_poll_service() periodically to run the mDNS service routine in the background.

Definition at line 285 of file fnet_mdns.c.

fnet_bool_t fnet_mdns_is_enabled ( fnet_mdns_desc_t  desc )

Detects if the mDNS Server is enabled or disabled.

Parameters:
descmDNS server descriptor
Returns:
This function returns:
  • FNET_TRUE if the mDNS Server is successfully initialized.
  • FNET_FALSE if the mDNS Server is not initialized or is released.

This function detects if the mDNS Server is initialized or is released.

Definition at line 545 of file fnet_mdns.c.

void fnet_mdns_release ( fnet_mdns_desc_t  mdns_desc )

Releases the Multicast DNS (mDNS) server/responder.

Parameters:
mdns_descmDNS server descriptor to be unregistered.
See also:
fnet_mdns_init()

This function releases the mDNS Server assigned to the desc descriptor.
It releases all occupied resources, and unregisters the mDNS service from the polling list.

Definition at line 526 of file fnet_mdns.c.

fnet_mdns_service_desc_t fnet_mdns_service_register ( fnet_mdns_desc_t  mdns_desc,
const fnet_mdns_service_t service 
)

Registers application-specific service in the mDNS server.

Parameters:
mdns_descmDNS server descriptor.
serviceService parameters to be advertised by the mDNS server.
Returns:
This function returns:
  • service descriptor if no error occurs.
  • 0 if an error occurs.
See also:
fnet_mdns_service_unregister(), fnet_mdns_service_t

This function registers an application service and starts its advertisement by the mDNS server.

Definition at line 445 of file fnet_mdns.c.

void fnet_mdns_service_unregister ( fnet_mdns_service_desc_t  service_desc )

Unregisters application service from the mDNS server.

Parameters:
service_descService descriptor to be unregistered.
See also:
fnet_mdns_service_register()

This function unregisters application service, assigned to the service_desc descriptor, and stops its advertisement by the mDNS server.

Definition at line 489 of file fnet_mdns.c.