mirror of
https://github.com/espressif/esp-protocols.git
synced 2025-12-04 16:19:20 +01:00
The MDNS component has been refactored from a single monolithic file mdns.c into a set of focused modules with clear responsibilities. This restructuring maintains the same functionality while improving code organization, maintainability, and testability. In the stage#2 we will focus on module based tests In the stage#3 we will focus on small scale refators and optimizations
79 lines
2.5 KiB
C
79 lines
2.5 KiB
C
/*
|
|
* SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
|
|
*
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
#pragma once
|
|
|
|
#include <stddef.h>
|
|
#include "mdns_private.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @brief Free browse item queue
|
|
*
|
|
* @note Called from mdns_free()
|
|
*/
|
|
void mdns_priv_browse_free(void);
|
|
|
|
/**
|
|
* @brief Looks for the name/type in active browse items
|
|
*
|
|
* @note Called from the packet parser (mdns_receive.c)
|
|
*
|
|
* @return browse results
|
|
*/
|
|
mdns_browse_t *mdns_priv_browse_find(mdns_name_t *name, uint16_t type, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol);
|
|
|
|
/**
|
|
* @brief Send out all browse queries
|
|
*
|
|
* @note Called from the network events (mdns_netif.c)
|
|
* @note Calls (indirectly) search-send from mdns_querier.c, which sends out the query
|
|
*/
|
|
void mdns_priv_browse_send_all(mdns_if_t mdns_if);
|
|
|
|
/**
|
|
* @brief Sync browse results
|
|
*
|
|
* @note Called from the packet parser
|
|
* @note Calls mdns_priv_queue_action() from mdns_engine
|
|
*/
|
|
esp_err_t mdns_priv_browse_sync(mdns_browse_sync_t *browse_sync);
|
|
|
|
/**
|
|
* @brief Perform action from mdns service queue
|
|
*
|
|
* @note Called from the _mdns_service_task() in mdns.c
|
|
*/
|
|
void mdns_priv_browse_action(mdns_action_t *action, mdns_action_subtype_t type);
|
|
|
|
/**
|
|
* @brief Add a TXT record to the browse result
|
|
*
|
|
* @note Called from the packet parser (mdns_receive.c)
|
|
*/
|
|
void mdns_priv_browse_result_add_txt(mdns_browse_t *browse, const char *instance, const char *service, const char *proto,
|
|
mdns_txt_item_t *txt, uint8_t *txt_value_len, size_t txt_count, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol,
|
|
uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
|
|
/**
|
|
* @brief Add an IP record to the browse result
|
|
*
|
|
* @note Called from the packet parser (mdns_receive.c)
|
|
*/
|
|
void mdns_priv_browse_result_add_ip(mdns_browse_t *browse, const char *hostname, esp_ip_addr_t *ip,
|
|
mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
|
|
/**
|
|
* @brief Add a SRV record to the browse result
|
|
*
|
|
* @note Called from the packet parser (mdns_receive.c)
|
|
*/
|
|
void mdns_priv_browse_result_add_srv(mdns_browse_t *browse, const char *hostname, const char *instance, const char *service, const char *proto,
|
|
uint16_t port, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|