Gets the actual esp_netif pointer from the internal network interface list The supplied ordinal number could - point to a predef netif -> "STA", "AP", "ETH" - if no entry in the list (NULL) -> check if the system added this netif - point to a custom netif -> just return the entry in the list - users is responsible for the lifetime of this netif (to be valid between mdns-init -> deinit)
Duplicate a string with length limit.
Query mDNS for host or service Note that querying PTR types sends Multicast query, all other types send Unicast queries
Allocate and zero memory.
Allocate new answer and add it to answer list (destination)
Set/Add TXT item for service TXT record with hostname and txt value length
Set the hostname for mDNS server required if you want to advertise services
Set the default instance name for mDNS server
appends uint16_t in a packet, incrementing the index
Remove service from mDNS server with hostname
Set instance name for service with hostname
Set service port with hostname
Remove and free all services from mDNS server
Add service to mDNS server with a delegated hostname
Replace all TXT items for service with hostname
Remove TXT item for service TXT record with hostname
Free allocated memory for mDNS task.
Initialize mDNS on given interface
Browse mDNS for a service `_service._proto`.
Stop the `_service._proto` browse.
Add multiple subtypes for service at once.
Generic mDNS query All following query methods are derived from this one
Query mDNS for SRV record
Query mDNS for TXT record
Look up delegated services.
Look up self hosted services.
Stop and free mDNS server
Adds a hostname and address to be delegated A/AAAA queries will be replied for the hostname and services can be added to this host.
Remove a delegated hostname All the services added to this host will also be removed.
Set/Add TXT item for service TXT record with hostname
Add a subtype for service.
Query mDNS for A record Please note that hostname must not contain domain name, as mDNS uses '.local' domain.
Allocate memory for mDNS task.
Gets data pointer to the mDNS packet
sets uint16_t value in a packet
Remove service from mDNS server
appends byte in a packet, incrementing the index
read uint16_t from a packet
Add service to mDNS server
Set/Add TXT item for service TXT record
appends FQDN to a packet, incrementing the index and compressing the output if previous occurrence of the string (or part of it) has been found
Set/Add TXT item for service TXT record
Check whether a service has been added.
Check whether a service has been added.
Set instance name for service
Replace all TXT items for service
Remove a subtype for service.
Update subtype for service.
Deletes the finished query. Call this only after the search has ended!
Get results from search pointer. Results available as a pointer to the output parameter. Pointer to search object has to be deleted via `mdns_query_async_delete` once the query has finished. The results although have to be freed manually.
Query mDNS for host or service asynchronousely. Search has to be tested for progress and deleted manually!
Get the hostname for mDNS server
Set the address to a delegated hostname
Query whether a hostname has been added
Remove TXT item for service TXT record
Register custom esp_netif with mDNS functionality mDNS service runs by default on preconfigured interfaces (STA, AP, ETH). This API enables running the service on any customized interface, either using standard WiFi or Ethernet driver or any kind of user defined driver.
Unregister esp-netif already registered in mDNS service
Set esp_netif to a desired state, or perform a desired action, such as enable/disable this interface or send announcement packets to this netif * This function is used to enable (probe, resolve conflicts and announce), announce, or disable (send bye) mDNS services on the specified network interface. * This function must be called if users registers a specific interface using mdns_register_netif() to enable mDNS services on that interface. * This function could be used in IP/connection event handlers to automatically enable/announce mDNS services when network properties change and/or disable them on disconnection.
Free a browse item (Not free the list).
Get the service name of a service
Free search structure (except the results)
Send probe for particular services on particular PCB Tests possible duplication on probing service structure and probes only for new entries. - If pcb probing then add only non-probing services and restarts probing - If pcb not probing, run probing for all specified services
Helper to get either ETH or STA if the other is provided Used when two interfaces are on the same subnet
Allocate new packet for sending
appends answer type, class, ttl and data length to a packet, incrementing the index
Add result to browse, only add when the result is a new one.
Removes saved question from parsed data
schedules a packet to be sent after given milliseconds
Find, remove and free answer from the scheduled packets
Dispatch interface changes based on system events
Send probe on all active PCBs
Send announcement on all active PCBs
Send by for particular services
finds service from given service type
Convert Predefined interface to esp-netif handle
Restart the responder on all active PCBs
Duplicate string or return error
Called from parser to add PTR data to search result
Called from packet parser to find matching running search
Find, remove and free answers and scheduled packets for service
Check if the parsed name is self-hosted, i.e. we should resolve conflicts
reads and formats MDNS FQDN into mdns_name_t structure
Send announcement on particular PCB
Convert Predefined interface to the netif id from the internal netif list
Send PTR query packet to all available interfaces for browsing.
Called from parser to add A/AAAA data to search result
reads MDNS FQDN into mdns_name_t structure FQDN is in format: [hostname.|[instance.]_service._proto.]local.
Create TXT result array from parsed TXT data
Check if IPv6 address is NULL
clear packets scheduled for sending on a specific interface
Create linked IP (copy) from parsed one
Called from parser to add A/AAAA data to search result
Remove and free service answer from answer list (destination)
Check if the parsed name is ours (matches service or host name)
appends A record to a packet, incrementing the index
appends AAAA record to a packet, incrementing the index
Browse sync result action
Allocate new browse structure
Mark browse as finished, remove and free it from browse chain
Add new browse to the browse chain
Called from packet parser to find matching running search
Called from parser to add TXT data to search result
Called from parser to add SRV data to search result
Restart the responder on all services without instance
creates/allocates new text item list
Check if interface is duplicate (two interfaces on the same subnet)
free all packets scheduled for sending
Remove and free answer from answer list (destination)
Check if question is already in the list
Allocate new search structure
Mark search as finished and remove it from search chain
Called from parser to finish any searches that have reached maximum results
Chain new IP to search result
Called from parser to add SRV data to search result
Called from parser to add TXT data to search result
Send search packet to particular interface
Stop the responder on all services without instance
Deallocate the txt linked list
Set interface as duplicate if another is found on the same subnet
Check if parsed name is discovery
Called from parser to check if question matches particular service
appends one TXT record ("key=value" or "key")
appends PTR record for service to a packet, incrementing the index
appends PTR record for a subtype to a packet, incrementing the index
Send by for particular services on particular PCB
Send probe for additional services on particular PCB
Send bye for particular subtypes
the receive callback of the raw udp api. Packets are received here
Low level UDP Multicast membership control
Handler functions for responding to control requests / commands ********
Get number of items in TXT parsed data
Get the length of TXT item's key name
Append PTR answers to packet
get the next packet scheduled for sending on a specific interface
Create answer packet to questions from parsed packet
Performs interface changes based on system events or custom commands
Add new search to the search chain
Called from timer task to run active searches
the main MDNS service task. Packets are received and parsed here
Start the service thread if not running
Create search packet for particular interface
Send search packet to all available interfaces
Called from service thread to execute given action
Called from timer task to run mDNS responder periodically checks first unqueued packet (from tx head). if it is scheduled to be transmitted, then pushes the packet to action queue to be handled.
Restart the responder on all active PCBs
creates/allocates new service
Detect IPv4 address collision
Detect IPv6 address collision
Adds a delegated hostname to the linked list
read uint32_t from a packet
Create probe packet for particular services on particular PCB
appends uint32_t in a packet, incrementing the index
appends single string to a packet, incrementing the index
appends DNS-SD PTR record for service to a packet, incrementing the index
appends TXT record for service to a packet, incrementing the index
appends SRV record for service to a packet, incrementing the index
Append question to packet
Create announce packet for particular services on particular PCB
Convert probe packet to announce
Restart the responder on particular PCB
Check if any of the interfaces is up
Start PCB from LwIP thread
Stop PCB from LwIP thread
Low level UDP PCB Initialize