Skip to content

Commit 37b8749

Browse files
committed
feat(mdns): Make mdns-debug a separate module
1 parent 6443c81 commit 37b8749

File tree

6 files changed

+374
-361
lines changed

6 files changed

+374
-361
lines changed

components/mdns/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ endif()
1212

1313
set(MDNS_MEMORY "mdns_mem_caps.c")
1414

15-
set(MDNS_CORE "mdns.c" "mdns_packet.c" "mdns_utils.c")
15+
set(MDNS_CORE "mdns.c" "mdns_packet.c" "mdns_utils.c" "mdns_debug.c")
1616
#set(MDNS_CORE "mdns.c" )
1717

1818
idf_build_get_property(target IDF_TARGET)

components/mdns/mdns.c

+5-327
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "mdns_networking.h"
1919
#include "mdns_mem_caps.h"
2020
#include "mdns_utils.h"
21+
#include "mdns_debug.h"
2122

2223
static void _mdns_browse_item_free(mdns_browse_t *browse);
2324
static esp_err_t _mdns_send_browse_action(mdns_action_type_t type, mdns_browse_t *browse);
@@ -41,10 +42,6 @@ static void _mdns_browse_send(mdns_browse_t *browse, mdns_if_t interface);
4142
#include "esp_wifi.h"
4243
#endif
4344

44-
#ifdef MDNS_ENABLE_DEBUG
45-
void mdns_debug_packet(const uint8_t *data, size_t len);
46-
#endif
47-
4845
#ifndef ARRAY_SIZE
4946
#define ARRAY_SIZE(array) (sizeof(array) / sizeof((array)[0]))
5047
#endif
@@ -66,30 +63,6 @@ static volatile TaskHandle_t _mdns_service_task_handle = NULL;
6663
static SemaphoreHandle_t _mdns_service_semaphore = NULL;
6764
static StackType_t *_mdns_stack_buffer;
6865

69-
//static void _mdns_search_finish_done(void);
70-
//static mdns_search_once_t *_mdns_search_find_from(mdns_search_once_t *search, mdns_name_t *name, uint16_t type, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol);
71-
//static mdns_browse_t *_mdns_browse_find_from(mdns_browse_t *b, mdns_name_t *name, uint16_t type, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol);
72-
//static void _mdns_browse_result_add_srv(mdns_browse_t *browse, const char *hostname, const char *instance, const char *service, const char *proto,
73-
// uint16_t port, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
74-
//static void _mdns_browse_result_add_ip(mdns_browse_t *browse, const char *hostname, esp_ip_addr_t *ip,
75-
// mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
76-
//static void _mdns_browse_result_add_txt(mdns_browse_t *browse, const char *instance, const char *service, const char *proto,
77-
// 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,
78-
// uint32_t ttl, mdns_browse_sync_t *out_sync_browse);
79-
#ifdef MDNS_ENABLE_DEBUG
80-
void debug_printf_browse_result(mdns_result_t *r_t, mdns_browse_t *b_t);
81-
void debug_printf_browse_result_all(mdns_result_t *r_t);
82-
#endif // MDNS_ENABLE_DEBUG
83-
//static void _mdns_search_result_add_ip(mdns_search_once_t *search, const char *hostname, esp_ip_addr_t *ip,
84-
// mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl);
85-
//static void _mdns_search_result_add_srv(mdns_search_once_t *search, const char *hostname, uint16_t port,
86-
// mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol, uint32_t ttl);
87-
//static void _mdns_search_result_add_txt(mdns_search_once_t *search, mdns_txt_item_t *txt, uint8_t *txt_value_len,
88-
// size_t txt_count, mdns_if_t tcpip_if, mdns_ip_protocol_t ip_protocol,
89-
// uint32_t ttl);
90-
//static mdns_result_t *_mdns_search_result_add_ptr(mdns_search_once_t *search, const char *instance,
91-
// const char *service_type, const char *proto, mdns_if_t tcpip_if,
92-
// mdns_ip_protocol_t ip_protocol, uint32_t ttl);
9366
static bool _mdns_append_host_list_in_services(mdns_out_answer_t **destination, mdns_srv_item_t *services[], size_t services_len, bool flush, bool bye);
9467
static bool _mdns_append_host_list(mdns_out_answer_t **destination, bool flush, bool bye);
9568

@@ -1228,20 +1201,7 @@ static void _mdns_dispatch_tx_packet(mdns_tx_packet_t *p)
12281201
}
12291202
_mdns_set_u16(packet, MDNS_HEAD_ADDITIONAL_OFFSET, count);
12301203

1231-
#ifdef MDNS_ENABLE_DEBUG
1232-
_mdns_dbg_printf("\nTX[%lu][%lu]: ", (unsigned long)p->tcpip_if, (unsigned long)p->ip_protocol);
1233-
#ifdef CONFIG_LWIP_IPV4
1234-
if (p->dst.type == ESP_IPADDR_TYPE_V4) {
1235-
_mdns_dbg_printf("To: " IPSTR ":%u, ", IP2STR(&p->dst.u_addr.ip4), p->port);
1236-
}
1237-
#endif
1238-
#ifdef CONFIG_LWIP_IPV6
1239-
if (p->dst.type == ESP_IPADDR_TYPE_V6) {
1240-
_mdns_dbg_printf("To: " IPV6STR ":%u, ", IPV62STR(p->dst.u_addr.ip6), p->port);
1241-
}
1242-
#endif
1243-
mdns_debug_packet(packet, index);
1244-
#endif
1204+
DBG_TX_PACKET(p, packet, index);
12451205

12461206
_mdns_udp_pcb_write(p->tcpip_if, p->ip_protocol, &p->dst, p->port, packet, index);
12471207
}
@@ -3575,14 +3535,12 @@ static esp_err_t _mdns_service_task_start(void)
35753535

35763536
if (!_mdns_service_task_handle) {
35773537
ESP_GOTO_ON_ERROR(_mdns_task_create_with_caps(), err_stop_timer, TAG, "Failed to start the mDNS service task");
3578-
#ifdef MDNS_ENABLE_DEBUG
3579-
#if !CONFIG_IDF_TARGET_LINUX
3538+
#if ESP_IDF_VERSION >= ESP_IDF_VERSION_VAL(5, 1, 0) && !CONFIG_IDF_TARGET_LINUX
35803539
StackType_t *mdns_debug_stack_buffer;
35813540
StaticTask_t *mdns_debug_task_buffer;
35823541
xTaskGetStaticBuffers(_mdns_service_task_handle, &mdns_debug_stack_buffer, &mdns_debug_task_buffer);
3583-
_mdns_dbg_printf("mdns_debug_stack_buffer:%p mdns_debug_task_buffer:%p\n", mdns_debug_stack_buffer, mdns_debug_task_buffer);
3542+
ESP_LOGD(TAG, "mdns_debug_stack_buffer:%p mdns_debug_task_buffer:%p\n", mdns_debug_stack_buffer, mdns_debug_task_buffer);
35843543
#endif // CONFIG_IDF_TARGET_LINUX
3585-
#endif // MDNS_ENABLE_DEBUG
35863544
}
35873545
MDNS_SERVICE_UNLOCK();
35883546
return ret;
@@ -5088,234 +5046,6 @@ esp_err_t mdns_query_aaaa(const char *name, uint32_t timeout, esp_ip6_addr_t *ad
50885046
}
50895047
#endif /* CONFIG_LWIP_IPV6 */
50905048

5091-
#ifdef MDNS_ENABLE_DEBUG
5092-
5093-
void mdns_debug_packet(const uint8_t *data, size_t len)
5094-
{
5095-
static mdns_name_t n;
5096-
mdns_header_t header;
5097-
const uint8_t *content = data + MDNS_HEAD_LEN;
5098-
uint32_t t = xTaskGetTickCount() * portTICK_PERIOD_MS;
5099-
mdns_name_t *name = &n;
5100-
memset(name, 0, sizeof(mdns_name_t));
5101-
5102-
_mdns_dbg_printf("Packet[%" PRIu32 "]: ", t);
5103-
5104-
header.id = mdns_utils_read_u16(data, MDNS_HEAD_ID_OFFSET);
5105-
header.flags = mdns_utils_read_u16(data, MDNS_HEAD_FLAGS_OFFSET);
5106-
header.questions = mdns_utils_read_u16(data, MDNS_HEAD_QUESTIONS_OFFSET);
5107-
header.answers = mdns_utils_read_u16(data, MDNS_HEAD_ANSWERS_OFFSET);
5108-
header.servers = mdns_utils_read_u16(data, MDNS_HEAD_SERVERS_OFFSET);
5109-
header.additional = mdns_utils_read_u16(data, MDNS_HEAD_ADDITIONAL_OFFSET);
5110-
5111-
_mdns_dbg_printf("%s",
5112-
(header.flags == MDNS_FLAGS_QR_AUTHORITATIVE) ? "AUTHORITATIVE\n" :
5113-
(header.flags == MDNS_FLAGS_DISTRIBUTED) ? "DISTRIBUTED\n" :
5114-
(header.flags == 0) ? "\n" : " "
5115-
);
5116-
if (header.flags && header.flags != MDNS_FLAGS_QR_AUTHORITATIVE) {
5117-
_mdns_dbg_printf("0x%04X\n", header.flags);
5118-
}
5119-
5120-
if (header.questions) {
5121-
uint8_t qs = header.questions;
5122-
5123-
while (qs--) {
5124-
content = _mdns_parse_fqdn(data, content, name, len);
5125-
if (!content || content + MDNS_CLASS_OFFSET + 1 >= data + len) {
5126-
header.answers = 0;
5127-
header.additional = 0;
5128-
header.servers = 0;
5129-
_mdns_dbg_printf("ERROR: parse header questions\n");
5130-
break;
5131-
}
5132-
5133-
uint16_t type = mdns_utils_read_u16(content, MDNS_TYPE_OFFSET);
5134-
uint16_t mdns_class = mdns_utils_read_u16(content, MDNS_CLASS_OFFSET);
5135-
bool unicast = !!(mdns_class & 0x8000);
5136-
mdns_class &= 0x7FFF;
5137-
content = content + 4;
5138-
5139-
_mdns_dbg_printf(" Q: ");
5140-
if (unicast) {
5141-
_mdns_dbg_printf("*U* ");
5142-
}
5143-
if (type == MDNS_TYPE_PTR) {
5144-
_mdns_dbg_printf("%s.%s%s.%s.%s. PTR ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain);
5145-
} else if (type == MDNS_TYPE_SRV) {
5146-
_mdns_dbg_printf("%s.%s%s.%s.%s. SRV ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain);
5147-
} else if (type == MDNS_TYPE_TXT) {
5148-
_mdns_dbg_printf("%s.%s%s.%s.%s. TXT ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain);
5149-
} else if (type == MDNS_TYPE_A) {
5150-
_mdns_dbg_printf("%s.%s. A ", name->host, name->domain);
5151-
} else if (type == MDNS_TYPE_AAAA) {
5152-
_mdns_dbg_printf("%s.%s. AAAA ", name->host, name->domain);
5153-
} else if (type == MDNS_TYPE_NSEC) {
5154-
_mdns_dbg_printf("%s.%s%s.%s.%s. NSEC ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain);
5155-
} else if (type == MDNS_TYPE_ANY) {
5156-
_mdns_dbg_printf("%s.%s%s.%s.%s. ANY ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain);
5157-
} else {
5158-
_mdns_dbg_printf("%s.%s%s.%s.%s. %04X ", name->host, name->sub ? "_sub." : "", name->service, name->proto, name->domain, type);
5159-
}
5160-
5161-
if (mdns_class == 0x0001) {
5162-
_mdns_dbg_printf("IN");
5163-
} else {
5164-
_mdns_dbg_printf("%04X", mdns_class);
5165-
}
5166-
_mdns_dbg_printf("\n");
5167-
}
5168-
}
5169-
5170-
if (header.answers || header.servers || header.additional) {
5171-
uint16_t recordIndex = 0;
5172-
5173-
while (content < (data + len)) {
5174-
5175-
content = _mdns_parse_fqdn(data, content, name, len);
5176-
if (!content) {
5177-
_mdns_dbg_printf("ERROR: parse mdns records\n");
5178-
break;
5179-
}
5180-
5181-
uint16_t type = mdns_utils_read_u16(content, MDNS_TYPE_OFFSET);
5182-
uint16_t mdns_class = mdns_utils_read_u16(content, MDNS_CLASS_OFFSET);
5183-
uint32_t ttl = mdns_utils_read_u32(content, MDNS_TTL_OFFSET);
5184-
uint16_t data_len = mdns_utils_read_u16(content, MDNS_LEN_OFFSET);
5185-
const uint8_t *data_ptr = content + MDNS_DATA_OFFSET;
5186-
bool flush = !!(mdns_class & 0x8000);
5187-
mdns_class &= 0x7FFF;
5188-
5189-
content = data_ptr + data_len;
5190-
if (content > (data + len)) {
5191-
_mdns_dbg_printf("ERROR: content length overflow\n");
5192-
break;
5193-
}
5194-
5195-
mdns_parsed_record_type_t record_type = MDNS_ANSWER;
5196-
5197-
if (recordIndex >= (header.answers + header.servers)) {
5198-
record_type = MDNS_EXTRA;
5199-
} else if (recordIndex >= (header.answers)) {
5200-
record_type = MDNS_NS;
5201-
}
5202-
recordIndex++;
5203-
5204-
if (record_type == MDNS_EXTRA) {
5205-
_mdns_dbg_printf(" X");
5206-
} else if (record_type == MDNS_NS) {
5207-
_mdns_dbg_printf(" S");
5208-
} else {
5209-
_mdns_dbg_printf(" A");
5210-
}
5211-
5212-
if (type == MDNS_TYPE_PTR) {
5213-
_mdns_dbg_printf(": %s%s%s.%s.%s. PTR ", name->host, name->host[0] ? "." : "", name->service, name->proto, name->domain);
5214-
} else if (type == MDNS_TYPE_SRV) {
5215-
_mdns_dbg_printf(": %s.%s.%s.%s. SRV ", name->host, name->service, name->proto, name->domain);
5216-
} else if (type == MDNS_TYPE_TXT) {
5217-
_mdns_dbg_printf(": %s.%s.%s.%s. TXT ", name->host, name->service, name->proto, name->domain);
5218-
} else if (type == MDNS_TYPE_A) {
5219-
_mdns_dbg_printf(": %s.%s. A ", name->host, name->domain);
5220-
} else if (type == MDNS_TYPE_AAAA) {
5221-
_mdns_dbg_printf(": %s.%s. AAAA ", name->host, name->domain);
5222-
} else if (type == MDNS_TYPE_NSEC) {
5223-
_mdns_dbg_printf(": %s.%s.%s.%s. NSEC ", name->host, name->service, name->proto, name->domain);
5224-
} else if (type == MDNS_TYPE_ANY) {
5225-
_mdns_dbg_printf(": %s.%s.%s.%s. ANY ", name->host, name->service, name->proto, name->domain);
5226-
} else if (type == MDNS_TYPE_OPT) {
5227-
_mdns_dbg_printf(": . OPT ");
5228-
} else {
5229-
_mdns_dbg_printf(": %s.%s.%s.%s. %04X ", name->host, name->service, name->proto, name->domain, type);
5230-
}
5231-
5232-
if (mdns_class == 0x0001) {
5233-
_mdns_dbg_printf("IN ");
5234-
} else {
5235-
_mdns_dbg_printf("%04X ", mdns_class);
5236-
}
5237-
if (flush) {
5238-
_mdns_dbg_printf("FLUSH ");
5239-
}
5240-
_mdns_dbg_printf("%" PRIu32, ttl);
5241-
_mdns_dbg_printf("[%u] ", data_len);
5242-
if (type == MDNS_TYPE_PTR) {
5243-
if (!_mdns_parse_fqdn(data, data_ptr, name, len)) {
5244-
_mdns_dbg_printf("ERROR: parse PTR\n");
5245-
continue;
5246-
}
5247-
_mdns_dbg_printf("%s.%s.%s.%s.\n", name->host, name->service, name->proto, name->domain);
5248-
} else if (type == MDNS_TYPE_SRV) {
5249-
if (!_mdns_parse_fqdn(data, data_ptr + MDNS_SRV_FQDN_OFFSET, name, len)) {
5250-
_mdns_dbg_printf("ERROR: parse SRV\n");
5251-
continue;
5252-
}
5253-
uint16_t priority = mdns_utils_read_u16(data_ptr, MDNS_SRV_PRIORITY_OFFSET);
5254-
uint16_t weight = mdns_utils_read_u16(data_ptr, MDNS_SRV_WEIGHT_OFFSET);
5255-
uint16_t port = mdns_utils_read_u16(data_ptr, MDNS_SRV_PORT_OFFSET);
5256-
_mdns_dbg_printf("%u %u %u %s.%s.\n", priority, weight, port, name->host, name->domain);
5257-
} else if (type == MDNS_TYPE_TXT) {
5258-
uint16_t i = 0, y;
5259-
while (i < data_len) {
5260-
uint8_t partLen = data_ptr[i++];
5261-
if ((i + partLen) > data_len) {
5262-
_mdns_dbg_printf("ERROR: parse TXT\n");
5263-
break;
5264-
}
5265-
char txt[partLen + 1];
5266-
for (y = 0; y < partLen; y++) {
5267-
char d = data_ptr[i++];
5268-
txt[y] = d;
5269-
}
5270-
txt[partLen] = 0;
5271-
_mdns_dbg_printf("%s", txt);
5272-
if (i < data_len) {
5273-
_mdns_dbg_printf("; ");
5274-
}
5275-
}
5276-
_mdns_dbg_printf("\n");
5277-
} else if (type == MDNS_TYPE_AAAA) {
5278-
esp_ip6_addr_t ip6;
5279-
memcpy(&ip6, data_ptr, sizeof(esp_ip6_addr_t));
5280-
_mdns_dbg_printf(IPV6STR "\n", IPV62STR(ip6));
5281-
} else if (type == MDNS_TYPE_A) {
5282-
esp_ip4_addr_t ip;
5283-
memcpy(&ip, data_ptr, sizeof(esp_ip4_addr_t));
5284-
_mdns_dbg_printf(IPSTR "\n", IP2STR(&ip));
5285-
} else if (type == MDNS_TYPE_NSEC) {
5286-
const uint8_t *old_ptr = data_ptr;
5287-
const uint8_t *new_ptr = _mdns_parse_fqdn(data, data_ptr, name, len);
5288-
if (new_ptr) {
5289-
_mdns_dbg_printf("%s.%s.%s.%s. ", name->host, name->service, name->proto, name->domain);
5290-
size_t diff = new_ptr - old_ptr;
5291-
data_len -= diff;
5292-
data_ptr = new_ptr;
5293-
}
5294-
size_t i;
5295-
for (i = 0; i < data_len; i++) {
5296-
_mdns_dbg_printf(" %02x", data_ptr[i]);
5297-
}
5298-
_mdns_dbg_printf("\n");
5299-
} else if (type == MDNS_TYPE_OPT) {
5300-
uint16_t opCode = mdns_utils_read_u16(data_ptr, 0);
5301-
uint16_t opLen = mdns_utils_read_u16(data_ptr, 2);
5302-
_mdns_dbg_printf(" Code: %04x Data[%u]:", opCode, opLen);
5303-
size_t i;
5304-
for (i = 4; i < data_len; i++) {
5305-
_mdns_dbg_printf(" %02x", data_ptr[i]);
5306-
}
5307-
_mdns_dbg_printf("\n");
5308-
} else {
5309-
size_t i;
5310-
for (i = 0; i < data_len; i++) {
5311-
_mdns_dbg_printf(" %02x", data_ptr[i]);
5312-
}
5313-
_mdns_dbg_printf("\n");
5314-
}
5315-
}
5316-
}
5317-
}
5318-
#endif /* MDNS_ENABLE_DEBUG */
53195049

53205050
/**
53215051
* @brief Browse sync result action
@@ -5528,9 +5258,7 @@ static void _mdns_browse_sync(mdns_browse_sync_t *browse_sync)
55285258
mdns_browse_result_sync_t *sync_result = browse_sync->sync_result;
55295259
while (sync_result) {
55305260
mdns_result_t *result = sync_result->result;
5531-
#ifdef MDNS_ENABLE_DEBUG
5532-
debug_printf_browse_result(result, browse_sync->browse);
5533-
#endif
5261+
DBG_BROWSE_RESULTS(result, browse_sync->browse);
55345262
browse->notifier(result);
55355263
if (result->ttl == 0) {
55365264
queueDetach(mdns_result_t, browse->result, result);
@@ -5541,53 +5269,3 @@ static void _mdns_browse_sync(mdns_browse_sync_t *browse_sync)
55415269
sync_result = sync_result->next;
55425270
}
55435271
}
5544-
5545-
#ifdef MDNS_ENABLE_DEBUG
5546-
void _debug_printf_result(mdns_result_t *r_t)
5547-
{
5548-
mdns_ip_addr_t *r_a = NULL;
5549-
int addr_count = 0;
5550-
_mdns_dbg_printf("result esp_netif: %p\n", r_t->esp_netif);
5551-
_mdns_dbg_printf("result ip_protocol: %d\n", r_t->ip_protocol);
5552-
_mdns_dbg_printf("result hostname: %s\n", _str_null_or_empty(r_t->hostname) ? "NULL" : r_t->hostname);
5553-
_mdns_dbg_printf("result instance_name: %s\n", _str_null_or_empty(r_t->instance_name) ? "NULL" : r_t->instance_name);
5554-
_mdns_dbg_printf("result service_type: %s\n", _str_null_or_empty(r_t->service_type) ? "NULL" : r_t->service_type);
5555-
_mdns_dbg_printf("result proto: %s\n", _str_null_or_empty(r_t->proto) ? "NULL" : r_t->proto);
5556-
_mdns_dbg_printf("result port: %d\n", r_t->port);
5557-
_mdns_dbg_printf("result ttl: %" PRIu32 "\n", r_t->ttl);
5558-
for (int i = 0; i < r_t->txt_count; i++) {
5559-
_mdns_dbg_printf("result txt item%d, key: %s, value: %s\n", i, r_t->txt[i].key, r_t->txt[i].value);
5560-
}
5561-
r_a = r_t->addr;
5562-
while (r_a) {
5563-
#ifdef CONFIG_LWIP_IPV4
5564-
if (r_a->addr.type == ESP_IPADDR_TYPE_V4) {
5565-
_mdns_dbg_printf("Addr%d: " IPSTR "\n", addr_count++, IP2STR(&r_a->addr.u_addr.ip4));
5566-
}
5567-
#endif
5568-
#ifdef CONFIG_LWIP_IPV6
5569-
if (r_a->addr.type == ESP_IPADDR_TYPE_V6) {
5570-
_mdns_dbg_printf("Addr%d: " IPV6STR "\n", addr_count++, IPV62STR(r_a->addr.u_addr.ip6));
5571-
}
5572-
#endif
5573-
r_a = r_a->next;
5574-
}
5575-
}
5576-
5577-
void debug_printf_browse_result(mdns_result_t *r_t, mdns_browse_t *b_t)
5578-
{
5579-
_mdns_dbg_printf("----------------sync browse %s.%s result---------------\n", b_t->service, b_t->proto);
5580-
_mdns_dbg_printf("browse pointer: %p\n", b_t);
5581-
_debug_printf_result(r_t);
5582-
}
5583-
5584-
void debug_printf_browse_result_all(mdns_result_t *r_t)
5585-
{
5586-
int count = 0;
5587-
while (r_t) {
5588-
_mdns_dbg_printf("----------------result %d---------------\n", count++);
5589-
_debug_printf_result(r_t);
5590-
r_t = r_t->next;
5591-
}
5592-
}
5593-
#endif // MDNS_ENABLE_DEBUG

0 commit comments

Comments
 (0)