Files
esp-protocols/components/mdns/private_include/mdns_responder.h
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

99 lines
2.1 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 Perform action from mdns responder
*
* @note Called from the _mdns_service_task() in mdns.c
*/
void mdns_priv_responder_action(mdns_action_t *action, mdns_action_subtype_t type);
/**
* @brief Initializes responder storage
*/
esp_err_t mdns_priv_responder_init(void);
/**
* @brief Frees responder storage
*/
void mdns_priv_responder_free(void);
/**
* @brief get global (mdns_server->hostname) hostname
*/
const char *mdns_priv_get_global_hostname(void);
/**
* @brief get service list
*/
mdns_srv_item_t *mdns_priv_get_services(void);
/**
* @brief get host list
*/
mdns_host_item_t *mdns_priv_get_hosts(void);
/**
* @brief get self host
*/
mdns_host_item_t *mdns_priv_get_self_host(void);
/**
* @brief set global hostname
*/
void mdns_priv_set_global_hostname(const char *hostname);
/**
* @brief get mdns_server->instance
*/
const char *mdns_priv_get_instance(void);
/**
* @brief set mdns_server->instance
*/
void mdns_priv_set_instance(const char *instance);
/**
* @brief Returns true if the mdns server is initialized
*/
bool mdns_priv_is_server_init(void);
/**
* @brief Restart the responder on all services without instance
*/
void mdns_priv_restart_all_pcbs_no_instance(void);
/**
* @brief Restart the responder on all active PCBs
*/
void mdns_priv_restart_all_pcbs(void);
/**
* @brief Adds a delegated hostname to the linked list
* @param hostname Host name pointer
* @param address_list Address list
* @return true on success
* false if the host wasn't attached (this is our hostname, or alloc failure) so we have to free the structs
*/
bool mdns_priv_delegate_hostname_add(const char *hostname, mdns_ip_addr_t *address_list);
/**
* @brief Remaps hostname of self service
*/
void mdns_priv_remap_self_service_hostname(const char *old_hostname, const char *new_hostname);
#ifdef __cplusplus
}
#endif