Files
David Cermak bed116d98b feat(mdns): Refactor mdns library (stage #1)
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
2025-11-25 17:30:27 +01:00

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