| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686 |
- // Copyright 2015-2016 Espressif Systems (Shanghai) PTE LTD
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- #ifndef ESP_MDNS_H_
- #define ESP_MDNS_H_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #include <esp_netif.h>
- #include "esp_event.h"
- #define MDNS_TYPE_A 0x0001
- #define MDNS_TYPE_PTR 0x000C
- #define MDNS_TYPE_TXT 0x0010
- #define MDNS_TYPE_AAAA 0x001C
- #define MDNS_TYPE_SRV 0x0021
- #define MDNS_TYPE_OPT 0x0029
- #define MDNS_TYPE_NSEC 0x002F
- #define MDNS_TYPE_ANY 0x00FF
- /**
- * @brief Asynchronous query handle
- */
- typedef struct mdns_search_once_s mdns_search_once_t;
- /**
- * @brief mDNS enum to specify the ip_protocol type
- */
- typedef enum {
- MDNS_IP_PROTOCOL_V4,
- MDNS_IP_PROTOCOL_V6,
- MDNS_IP_PROTOCOL_MAX
- } mdns_ip_protocol_t;
- /**
- * @brief mDNS basic text item structure
- * Used in mdns_service_add()
- */
- typedef struct {
- const char * key; /*!< item key name */
- const char * value; /*!< item value string */
- } mdns_txt_item_t;
- /**
- * @brief mDNS query linked list IP item
- */
- typedef struct mdns_ip_addr_s {
- esp_ip_addr_t addr; /*!< IP address */
- struct mdns_ip_addr_s * next; /*!< next IP, or NULL for the last IP in the list */
- } mdns_ip_addr_t;
- typedef enum mdns_if_internal {
- MDNS_IF_STA = 0,
- MDNS_IF_AP = 1,
- MDNS_IF_ETH = 2,
- MDNS_IF_MAX
- } mdns_if_t;
- /**
- * @brief mDNS query result structure
- */
- typedef struct mdns_result_s {
- struct mdns_result_s * next; /*!< next result, or NULL for the last result in the list */
- mdns_if_t tcpip_if; /*!< interface index */
- uint32_t ttl; /*!< time to live */
- mdns_ip_protocol_t ip_protocol; /*!< ip_protocol type of the interface (v4/v6) */
- // PTR
- char * instance_name; /*!< instance name */
- char * service_type; /*!< service type */
- char * proto; /*!< srevice protocol */
- // SRV
- char * hostname; /*!< hostname */
- uint16_t port; /*!< service port */
- // TXT
- mdns_txt_item_t * txt; /*!< txt record */
- uint8_t *txt_value_len; /*!< array of txt value len of each record */
- size_t txt_count; /*!< number of txt items */
- // A and AAAA
- mdns_ip_addr_t * addr; /*!< linked list of IP addresses found */
- } mdns_result_t;
- typedef void (*mdns_query_notify_t)(mdns_search_once_t *search);
- /**
- * @brief Initialize mDNS on given interface
- *
- * @return
- * - ESP_OK on success
- * - ESP_ERR_INVALID_STATE when failed to register event handler
- * - ESP_ERR_NO_MEM on memory error
- * - ESP_FAIL when failed to start mdns task
- */
- esp_err_t mdns_init(void);
- /**
- * @brief Stop and free mDNS server
- *
- */
- void mdns_free(void);
- /**
- * @brief Set the hostname for mDNS server
- * required if you want to advertise services
- *
- * @param hostname Hostname to set
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_hostname_set(const char * hostname);
- /**
- * @brief 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.
- *
- * @param hostname Hostname to add
- * @param address_list The IP address list of the host
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- *
- */
- esp_err_t mdns_delegate_hostname_add(const char * hostname, const mdns_ip_addr_t *address_list);
- /**
- * @brief Remove a delegated hostname
- * All the services added to this host will also be removed.
- *
- * @param hostname Hostname to remove
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- *
- */
- esp_err_t mdns_delegate_hostname_remove(const char * hostname);
- /**
- * @brief Query whether a hostname has been added
- *
- * @param hostname Hostname to query
- *
- * @return
- * - true The hostname has been added.
- * - false The hostname has not been added.
- *
- */
- bool mdns_hostname_exists(const char * hostname);
- /**
- * @brief Set the default instance name for mDNS server
- *
- * @param instance_name Instance name to set
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_instance_name_set(const char * instance_name);
- /**
- * @brief Add service to mDNS server
- *
- * @note The value length of txt items will be automatically decided by strlen
- *
- * @param instance_name instance name to set. If NULL,
- * global instance name or hostname will be used.
- * Note that MDNS_MULTIPLE_INSTANCE config option
- * needs to be enabled for adding multiple instances
- * with the same instance type.
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param port service port
- * @param txt string array of TXT data (eg. {{"var","val"},{"other","2"}})
- * @param num_items number of items in TXT data
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- * - ESP_FAIL failed to add service
- */
- esp_err_t mdns_service_add(const char * instance_name, const char * service_type, const char * proto, uint16_t port, mdns_txt_item_t txt[], size_t num_items);
- /**
- * @brief Add service to mDNS server with a delegated hostname
- *
- * @note The value length of txt items will be automatically decided by strlen
- *
- * @param instance_name instance name to set. If NULL,
- * global instance name or hostname will be used
- * Note that MDNS_MULTIPLE_INSTANCE config option
- * needs to be enabled for adding multiple instances
- * with the same instance type.
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param port service port
- * @param txt string array of TXT data (eg. {{"var","val"},{"other","2"}})
- * @param num_items number of items in TXT data
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NO_MEM memory error
- * - ESP_FAIL failed to add service
- */
- esp_err_t mdns_service_add_for_host(const char * instance_name, const char * service_type, const char * proto,
- const char * hostname, uint16_t port, mdns_txt_item_t txt[], size_t num_items);
- /**
- * @brief Check whether a service has been added.
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, checks for the local hostname.
- *
- * @return
- * - true Correspondding service has been added.
- * - false Service not found.
- */
- bool mdns_service_exists(const char * service_type, const char * proto, const char * hostname);
- /**
- * @brief Check whether a service has been added.
- *
- * @param instance instance name
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, checks for the local hostname.
- *
- * @return
- * - true Correspondding service has been added.
- * - false Service not found.
- */
- bool mdns_service_exists_with_instance(const char *instance, const char *service_type, const char *proto,
- const char *hostname);
- /**
- * @brief Remove service from mDNS server
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_remove(const char * service_type, const char * proto);
- /**
- * @brief Remove service from mDNS server with hostname
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_remove_for_host(const char * service_type, const char * proto, const char *hostname);
- /**
- * @brief Set instance name for service
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param instance_name instance name to set
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_instance_name_set(const char * service_type, const char * proto, const char * instance_name);
- /**
- * @brief Set instance name for service with hostname
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param instance_name instance name to set
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_instance_name_set_for_host(const char * service_type, const char * proto, const char * hostname,
- const char * instance_name);
- /**
- * @brief Set service port
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param port service port
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_port_set(const char * service_type, const char * proto, uint16_t port);
- /**
- * @brief Set service port with hostname
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param port service port
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_port_set_for_host(const char * service_type, const char * proto, const char * hostname,
- uint16_t port);
- /**
- * @brief Replace all TXT items for service
- *
- * @note The value length of txt items will be automatically decided by strlen
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param txt array of TXT data (eg. {{"var","val"},{"other","2"}})
- * @param num_items number of items in TXT data
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_set(const char * service_type, const char * proto, mdns_txt_item_t txt[], uint8_t num_items);
- /**
- * @brief Replace all TXT items for service with hostname
- *
- * @note The value length of txt items will be automatically decided by strlen
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param txt array of TXT data (eg. {{"var","val"},{"other","2"}})
- * @param num_items number of items in TXT data
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_set_for_host(const char * service_type, const char * proto, const char * hostname,
- mdns_txt_item_t txt[], uint8_t num_items);
- /**
- * @brief Set/Add TXT item for service TXT record
- *
- * @note The value length will be automatically decided by strlen
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param key the key that you want to add/update
- * @param value the new value of the key
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_set(const char * service_type, const char * proto, const char * key, const char * value);
- /**
- * @brief Set/Add TXT item for service TXT record
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param key the key that you want to add/update
- * @param value the new value of the key
- * @param value_len the length of the value
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_set_with_explicit_value_len(const char *service_type, const char *proto,
- const char *key, const char *value, uint8_t value_len);
- /**
- * @brief Set/Add TXT item for service TXT record with hostname
- *
- * @note The value length will be automatically decided by strlen
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param key the key that you want to add/update
- * @param value the new value of the key
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_set_for_host(const char * service_type, const char * proto, const char * hostname,
- const char * key, const char * value);
- /**
- * @brief Set/Add TXT item for service TXT record with hostname and txt value length
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param key the key that you want to add/update
- * @param value the new value of the key
- * @param value_len the length of the value
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_set_for_host_with_explicit_value_len(const char *service_type, const char *proto,
- const char *hostname, const char *key,
- const char *value, uint8_t value_len);
- /**
- * @brief Remove TXT item for service TXT record
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param key the key that you want to remove
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_remove(const char * service_type, const char * proto, const char * key);
- /**
- * @brief Remove TXT item for service TXT record with hostname
- *
- * @param service_type service type (_http, _ftp, etc)
- * @param proto service protocol (_tcp, _udp)
- * @param hostname service hostname. If NULL, local hostname will be used.
- * @param key the key that you want to remove
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- * - ESP_ERR_NOT_FOUND Service not found
- * - ESP_ERR_NO_MEM memory error
- */
- esp_err_t mdns_service_txt_item_remove_for_host(const char * service_type, const char * proto, const char * hostname,
- const char * key);
- /**
- * @brief Remove and free all services from mDNS server
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_ARG Parameter error
- */
- esp_err_t mdns_service_remove_all(void);
- /**
- * @brief Deletes the finished query. Call this only after the search has ended!
- *
- * @param search pointer to search object
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE search has not finished
- * - ESP_ERR_INVALID_ARG pointer to search object is NULL
- */
- esp_err_t mdns_query_async_delete(mdns_search_once_t* search);
- /**
- * @brief 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.
- *
- * @param search pointer to search object
- * @param timeout time in milliseconds to wait for answers
- * @param results pointer to the results of the query
- *
- * @return
- * True if search has finished before or at timeout
- * False if search timeout is over
- */
- bool mdns_query_async_get_results(mdns_search_once_t* search, uint32_t timeout, mdns_result_t ** results);
- /**
- * @brief Query mDNS for host or service asynchronousely.
- * Search has to be tested for progress and deleted manually!
- *
- * @param name service instance or host name (NULL for PTR queries)
- * @param service_type service type (_http, _arduino, _ftp etc.) (NULL for host queries)
- * @param proto service protocol (_tcp, _udp, etc.) (NULL for host queries)
- * @param type type of query (MDNS_TYPE_*)
- * @param timeout time in milliseconds during which mDNS query is active
- * @param max_results maximum results to be collected
- * @param notifier Notification function to be called when the result is ready, can be NULL
- *
- * @return mdns_search_once_s pointer to new search object if query initiated successfully.
- * NULL otherwise.
- */
- mdns_search_once_t *mdns_query_async_new(const char *name, const char *service_type, const char *proto, uint16_t type,
- uint32_t timeout, size_t max_results, mdns_query_notify_t notifier);
- /**
- * @brief Query mDNS for host or service
- * All following query methods are derived from this one
- *
- * @param name service instance or host name (NULL for PTR queries)
- * @param service_type service type (_http, _arduino, _ftp etc.) (NULL for host queries)
- * @param proto service protocol (_tcp, _udp, etc.) (NULL for host queries)
- * @param type type of query (MDNS_TYPE_*)
- * @param timeout time in milliseconds to wait for answers.
- * @param max_results maximum results to be collected
- * @param results pointer to the results of the query
- * results must be freed using mdns_query_results_free below
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG timeout was not given
- */
- esp_err_t mdns_query(const char * name, const char * service_type, const char * proto, uint16_t type, uint32_t timeout, size_t max_results, mdns_result_t ** results);
- /**
- * @brief Free query results
- *
- * @param results linked list of results to be freed
- */
- void mdns_query_results_free(mdns_result_t * results);
- /**
- * @brief Query mDNS for service
- *
- * @param service_type service type (_http, _arduino, _ftp etc.)
- * @param proto service protocol (_tcp, _udp, etc.)
- * @param timeout time in milliseconds to wait for answer.
- * @param max_results maximum results to be collected
- * @param results pointer to the results of the query
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG parameter error
- */
- esp_err_t mdns_query_ptr(const char * service_type, const char * proto, uint32_t timeout, size_t max_results, mdns_result_t ** results);
- /**
- * @brief Query mDNS for SRV record
- *
- * @param instance_name service instance name
- * @param service_type service type (_http, _arduino, _ftp etc.)
- * @param proto service protocol (_tcp, _udp, etc.)
- * @param timeout time in milliseconds to wait for answer.
- * @param result pointer to the result of the query
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG parameter error
- */
- esp_err_t mdns_query_srv(const char * instance_name, const char * service_type, const char * proto, uint32_t timeout, mdns_result_t ** result);
- /**
- * @brief Query mDNS for TXT record
- *
- * @param instance_name service instance name
- * @param service_type service type (_http, _arduino, _ftp etc.)
- * @param proto service protocol (_tcp, _udp, etc.)
- * @param timeout time in milliseconds to wait for answer.
- * @param result pointer to the result of the query
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG parameter error
- */
- esp_err_t mdns_query_txt(const char * instance_name, const char * service_type, const char * proto, uint32_t timeout, mdns_result_t ** result);
- /**
- * @brief Query mDNS for A record
- *
- * @param host_name host name to look for
- * @param timeout time in milliseconds to wait for answer.
- * @param addr pointer to the resulting IP4 address
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG parameter error
- */
- esp_err_t mdns_query_a(const char * host_name, uint32_t timeout, esp_ip4_addr_t * addr);
- #if CONFIG_LWIP_IPV6
- /**
- * @brief Query mDNS for A record
- *
- * Please note that hostname must not contain domain name, as mDNS uses '.local' domain.
- *
- * @param host_name host name to look for
- * @param timeout time in milliseconds to wait for answer. If 0, max_results needs to be defined
- * @param addr pointer to the resulting IP6 address
- *
- * @return
- * - ESP_OK success
- * - ESP_ERR_INVALID_STATE mDNS is not running
- * - ESP_ERR_NO_MEM memory error
- * - ESP_ERR_INVALID_ARG parameter error
- */
- esp_err_t mdns_query_aaaa(const char * host_name, uint32_t timeout, esp_ip6_addr_t * addr);
- #endif
- /**
- * @brief System event handler
- * This method controls the service state on all active interfaces and applications are required
- * to call it from the system event handler for normal operation of mDNS service.
- *
- * Please note that hostname must not contain domain name, as mDNS uses '.local' domain.
- *
- * @param ctx The system event context
- * @param event The system event
- */
- esp_err_t mdns_handle_system_event(void *ctx, system_event_t *event) __attribute__((deprecated));
- #ifdef __cplusplus
- }
- #endif
- #endif /* ESP_MDNS_H_ */
|