mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-04 21:44:38 +08:00
mdns: fix compiler errors and coding style
This commit is contained in:
parent
b4be0d8808
commit
8e86555f93
@ -36,6 +36,15 @@
|
|||||||
#include "lwipopts_test.h"
|
#include "lwipopts_test.h"
|
||||||
#else /* LWIP_OPTTEST_FILE */
|
#else /* LWIP_OPTTEST_FILE */
|
||||||
|
|
||||||
|
//#define LWIP_HAVE_MBEDTLS
|
||||||
|
#define ALTCP_MBEDTLS_USE_SESSION_TICKETS 1
|
||||||
|
#define ALTCP_MBEDTLS_USE_SESSION_CACHE 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
* struct lwip_sock *tryget_socket_unconn_nouse(int fd);
|
||||||
|
*/
|
||||||
|
#define LWIP_SOCKET_EXTERNAL_ALLOC 0//1
|
||||||
|
|
||||||
#define LWIP_IPV4 1
|
#define LWIP_IPV4 1
|
||||||
#define LWIP_IPV6 1
|
#define LWIP_IPV6 1
|
||||||
|
|
||||||
@ -47,7 +56,7 @@
|
|||||||
#define LWIP_IGMP LWIP_IPV4
|
#define LWIP_IGMP LWIP_IPV4
|
||||||
#define LWIP_ICMP LWIP_IPV4
|
#define LWIP_ICMP LWIP_IPV4
|
||||||
|
|
||||||
#define LWIP_SNMP LWIP_UDP
|
#define LWIP_SNMP 0//LWIP_UDP
|
||||||
#define MIB2_STATS LWIP_SNMP
|
#define MIB2_STATS LWIP_SNMP
|
||||||
#ifdef LWIP_HAVE_MBEDTLS
|
#ifdef LWIP_HAVE_MBEDTLS
|
||||||
#define LWIP_SNMP_V3 (LWIP_SNMP)
|
#define LWIP_SNMP_V3 (LWIP_SNMP)
|
||||||
|
@ -1800,6 +1800,8 @@ mdns_handle_response(struct mdns_packet *pkt, struct netif *netif)
|
|||||||
req = mdns_lookup_request(&ans.info);
|
req = mdns_lookup_request(&ans.info);
|
||||||
}
|
}
|
||||||
if (req && req->result_fn) {
|
if (req && req->result_fn) {
|
||||||
|
u16_t offset;
|
||||||
|
struct pbuf *p;
|
||||||
int flags = (first ? MDNS_SEARCH_RESULT_FIRST : 0) |
|
int flags = (first ? MDNS_SEARCH_RESULT_FIRST : 0) |
|
||||||
(!total_answers_left ? MDNS_SEARCH_RESULT_LAST : 0);
|
(!total_answers_left ? MDNS_SEARCH_RESULT_LAST : 0);
|
||||||
if (req->only_ptr) {
|
if (req->only_ptr) {
|
||||||
@ -1807,10 +1809,8 @@ mdns_handle_response(struct mdns_packet *pkt, struct netif *netif)
|
|||||||
continue; /* Ignore non matching answer type */
|
continue; /* Ignore non matching answer type */
|
||||||
flags = MDNS_SEARCH_RESULT_FIRST | MDNS_SEARCH_RESULT_LAST;
|
flags = MDNS_SEARCH_RESULT_FIRST | MDNS_SEARCH_RESULT_LAST;
|
||||||
}
|
}
|
||||||
u16_t offset;
|
p = pbuf_skip(pkt->pbuf, ans.rd_offset, &offset);
|
||||||
struct pbuf *p = pbuf_skip(pkt->pbuf, ans.rd_offset, &offset);
|
if (ans.info.type == DNS_RRTYPE_PTR || ans.info.type == DNS_RRTYPE_SRV) {
|
||||||
if (ans.info.type == DNS_RRTYPE_PTR || ans.info.type == DNS_RRTYPE_SRV)
|
|
||||||
{
|
|
||||||
/* Those RR types have compressed domain name. Must uncompress here,
|
/* Those RR types have compressed domain name. Must uncompress here,
|
||||||
since cannot be done without pbuf. */
|
since cannot be done without pbuf. */
|
||||||
struct {
|
struct {
|
||||||
@ -1825,21 +1825,16 @@ mdns_handle_response(struct mdns_packet *pkt, struct netif *netif)
|
|||||||
memcpy(&data.dom, (const char *)p->payload + offset + off, data.dom.length);
|
memcpy(&data.dom, (const char *)p->payload + offset + off, data.dom.length);
|
||||||
}
|
}
|
||||||
/* Adjust len/off according RR type */
|
/* Adjust len/off according RR type */
|
||||||
if (ans.info.type == DNS_RRTYPE_SRV)
|
if (ans.info.type == DNS_RRTYPE_SRV) {
|
||||||
{
|
|
||||||
memcpy(&data, (const char *)p->payload + offset, 6);
|
memcpy(&data, (const char *)p->payload + offset, 6);
|
||||||
len = data.dom.length + 6;
|
len = data.dom.length + 6;
|
||||||
off = 0;
|
off = 0;
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
len = data.dom.length;
|
len = data.dom.length;
|
||||||
off = 6;
|
off = 6;
|
||||||
}
|
}
|
||||||
req->result_fn(&ans, (const char *)&data + off, len, flags, req->arg);
|
req->result_fn(&ans, (const char *)&data + off, len, flags, req->arg);
|
||||||
}
|
} else {
|
||||||
else
|
|
||||||
{
|
|
||||||
/* Direct call result_fn with varpart pointing in pbuf payload */
|
/* Direct call result_fn with varpart pointing in pbuf payload */
|
||||||
req->result_fn(&ans, (const char *)p->payload + offset, ans.rd_length, flags, req->arg);
|
req->result_fn(&ans, (const char *)p->payload + offset, ans.rd_length, flags, req->arg);
|
||||||
}
|
}
|
||||||
@ -2513,10 +2508,12 @@ mdns_resp_add_service_txtitem(struct mdns_service *service, const char *txt, u8_
|
|||||||
void
|
void
|
||||||
mdns_search_stop(s8_t request_id)
|
mdns_search_stop(s8_t request_id)
|
||||||
{
|
{
|
||||||
|
struct mdns_request *req;
|
||||||
LWIP_ASSERT("mdns_search_stop: bad request_id", (request_id >= 0) && (request_id < MDNS_MAX_REQUESTS));
|
LWIP_ASSERT("mdns_search_stop: bad request_id", (request_id >= 0) && (request_id < MDNS_MAX_REQUESTS));
|
||||||
struct mdns_request *req = &mdns_requests[request_id];
|
req = &mdns_requests[request_id];
|
||||||
if (req && req->result_fn)
|
if (req && req->result_fn) {
|
||||||
req->result_fn = NULL;
|
req->result_fn = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2538,11 +2535,11 @@ mdns_search_service(const char *name, const char *service, enum mdns_sd_proto pr
|
|||||||
struct netif *netif, search_result_fn_t result_fn, void *arg,
|
struct netif *netif, search_result_fn_t result_fn, void *arg,
|
||||||
s8_t *request_id)
|
s8_t *request_id)
|
||||||
{
|
{
|
||||||
int i;
|
s8_t i, slot = -1;
|
||||||
s8_t slot = -1;
|
|
||||||
struct mdns_request *req;
|
struct mdns_request *req;
|
||||||
if (name)
|
if (name) {
|
||||||
LWIP_ERROR("mdns_search_service: Name too long", (strlen(name) <= MDNS_LABEL_MAXLEN), return ERR_VAL);
|
LWIP_ERROR("mdns_search_service: Name too long", (strlen(name) <= MDNS_LABEL_MAXLEN), return ERR_VAL);
|
||||||
|
}
|
||||||
LWIP_ERROR("mdns_search_service: Service too long", (strlen(service) < MDNS_DOMAIN_MAXLEN), return ERR_VAL);
|
LWIP_ERROR("mdns_search_service: Service too long", (strlen(service) < MDNS_DOMAIN_MAXLEN), return ERR_VAL);
|
||||||
LWIP_ERROR("mdns_search_service: Bad reqid pointer", request_id, return ERR_VAL);
|
LWIP_ERROR("mdns_search_service: Bad reqid pointer", request_id, return ERR_VAL);
|
||||||
LWIP_ERROR("mdns_search_service: Bad proto (need TCP or UDP)", (proto == DNSSD_PROTO_TCP || proto == DNSSD_PROTO_UDP), return ERR_VAL);
|
LWIP_ERROR("mdns_search_service: Bad proto (need TCP or UDP)", (proto == DNSSD_PROTO_TCP || proto == DNSSD_PROTO_UDP), return ERR_VAL);
|
||||||
@ -2552,9 +2549,10 @@ mdns_search_service(const char *name, const char *service, enum mdns_sd_proto pr
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (slot < 0)
|
if (slot < 0) {
|
||||||
/* Don't assert if no more space in mdns_request table. Just return an error. */
|
/* Don't assert if no more space in mdns_request table. Just return an error. */
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
|
}
|
||||||
|
|
||||||
req = &mdns_requests[slot];
|
req = &mdns_requests[slot];
|
||||||
memset(req, 0, sizeof(struct mdns_request));
|
memset(req, 0, sizeof(struct mdns_request));
|
||||||
@ -2562,11 +2560,13 @@ mdns_search_service(const char *name, const char *service, enum mdns_sd_proto pr
|
|||||||
req->arg = arg;
|
req->arg = arg;
|
||||||
req->proto = (u16_t)proto;
|
req->proto = (u16_t)proto;
|
||||||
req->qtype = DNS_RRTYPE_PTR;
|
req->qtype = DNS_RRTYPE_PTR;
|
||||||
if (proto == DNSSD_PROTO_UDP && strcmp(service, "_services._dns-sd") == 0)
|
if (proto == DNSSD_PROTO_UDP && strcmp(service, "_services._dns-sd") == 0) {
|
||||||
req->only_ptr = 1; /* don't check other answers */
|
req->only_ptr = 1; /* don't check other answers */
|
||||||
|
}
|
||||||
mdns_domain_add_string(&req->service, service);
|
mdns_domain_add_string(&req->service, service);
|
||||||
if (name)
|
if (name) {
|
||||||
MEMCPY(&req->name, name, LWIP_MIN(MDNS_LABEL_MAXLEN, strlen(name)));
|
MEMCPY(&req->name, name, LWIP_MIN(MDNS_LABEL_MAXLEN, strlen(name)));
|
||||||
|
}
|
||||||
/* save request id (slot) in pointer provided by caller */
|
/* save request id (slot) in pointer provided by caller */
|
||||||
*request_id = slot;
|
*request_id = slot;
|
||||||
/* now prepare a MDNS request and send it (on specified interface) */
|
/* now prepare a MDNS request and send it (on specified interface) */
|
||||||
|
@ -145,7 +145,7 @@ mdns_domain_add_label_pbuf(struct mdns_domain *domain, const struct pbuf *p, u16
|
|||||||
err_t
|
err_t
|
||||||
mdns_domain_add_domain(struct mdns_domain *domain, struct mdns_domain *source)
|
mdns_domain_add_domain(struct mdns_domain *domain, struct mdns_domain *source)
|
||||||
{
|
{
|
||||||
u8_t len = source->length;
|
u16_t len = source->length;
|
||||||
if (len > 0 && (1 + len + domain->length >= MDNS_DOMAIN_MAXLEN)) {
|
if (len > 0 && (1 + len + domain->length >= MDNS_DOMAIN_MAXLEN)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
@ -157,10 +157,9 @@ mdns_domain_add_domain(struct mdns_domain *domain, struct mdns_domain *source)
|
|||||||
/* Copy partial domain */
|
/* Copy partial domain */
|
||||||
MEMCPY(&domain->name[domain->length], source->name, len);
|
MEMCPY(&domain->name[domain->length], source->name, len);
|
||||||
domain->length += len;
|
domain->length += len;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
/* Add zero marker */
|
/* Add zero marker */
|
||||||
domain->name[domain->length] = len;
|
domain->name[domain->length] = 0;
|
||||||
domain->length++;
|
domain->length++;
|
||||||
}
|
}
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
@ -184,15 +183,15 @@ mdns_domain_add_string(struct mdns_domain *domain, const char *source)
|
|||||||
len = start++;
|
len = start++;
|
||||||
*len = 0;
|
*len = 0;
|
||||||
source++;
|
source++;
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
*start++ = *source++;
|
*start++ = *source++;
|
||||||
*len = *len + 1;
|
*len = *len + 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (start == end)
|
if (start == end) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
domain->length = start - &domain->name[0];
|
}
|
||||||
|
domain->length = (u16_t)(start - &domain->name[0]);
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -62,8 +62,7 @@ enum mdns_sd_proto {
|
|||||||
struct mdns_host;
|
struct mdns_host;
|
||||||
struct mdns_service;
|
struct mdns_service;
|
||||||
|
|
||||||
/* Domain structs - also visible for unit tests */
|
/* Domain structs */
|
||||||
|
|
||||||
struct mdns_domain {
|
struct mdns_domain {
|
||||||
/* Encoded domain name */
|
/* Encoded domain name */
|
||||||
u8_t name[MDNS_DOMAIN_MAXLEN];
|
u8_t name[MDNS_DOMAIN_MAXLEN];
|
||||||
|
Loading…
x
Reference in New Issue
Block a user