mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-04 13:34:38 +08:00
work on -Wconversion...
This commit is contained in:
parent
197166d906
commit
5b15234833
@ -653,7 +653,7 @@ dns_compare_name(const char *query, struct pbuf* p, u16_t start_offset)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
n = pbuf_try_get_at(p, response_offset++);
|
n = pbuf_try_get_at(p, response_offset++);
|
||||||
if (n < 0) {
|
if ((n < 0) || (response_offset == 0)) {
|
||||||
return 0xFFFF;
|
return 0xFFFF;
|
||||||
}
|
}
|
||||||
/** @see RFC 1035 - 4.1.4. Message compression */
|
/** @see RFC 1035 - 4.1.4. Message compression */
|
||||||
@ -671,6 +671,9 @@ dns_compare_name(const char *query, struct pbuf* p, u16_t start_offset)
|
|||||||
return 0xFFFF;
|
return 0xFFFF;
|
||||||
}
|
}
|
||||||
++response_offset;
|
++response_offset;
|
||||||
|
if (response_offset == 0) {
|
||||||
|
return 0xFFFF;
|
||||||
|
}
|
||||||
++query;
|
++query;
|
||||||
--n;
|
--n;
|
||||||
}
|
}
|
||||||
@ -682,7 +685,10 @@ dns_compare_name(const char *query, struct pbuf* p, u16_t start_offset)
|
|||||||
}
|
}
|
||||||
} while (n != 0);
|
} while (n != 0);
|
||||||
|
|
||||||
return response_offset + 1;
|
if (response_offset == 0xFFFF) {
|
||||||
|
return 0xFFFF;
|
||||||
|
}
|
||||||
|
return (u16_t)(response_offset + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -700,7 +706,7 @@ dns_skip_name(struct pbuf* p, u16_t query_idx)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
n = pbuf_try_get_at(p, offset++);
|
n = pbuf_try_get_at(p, offset++);
|
||||||
if (n < 0) {
|
if ((n < 0) || (offset == 0)) {
|
||||||
return 0xFFFF;
|
return 0xFFFF;
|
||||||
}
|
}
|
||||||
/** @see RFC 1035 - 4.1.4. Message compression */
|
/** @see RFC 1035 - 4.1.4. Message compression */
|
||||||
@ -720,7 +726,10 @@ dns_skip_name(struct pbuf* p, u16_t query_idx)
|
|||||||
}
|
}
|
||||||
} while (n != 0);
|
} while (n != 0);
|
||||||
|
|
||||||
return offset + 1;
|
if (offset == 0xFFFF) {
|
||||||
|
return 0xFFFF;
|
||||||
|
}
|
||||||
|
return (u16_t)(offset + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -782,9 +791,13 @@ dns_send(u8_t idx)
|
|||||||
++n;
|
++n;
|
||||||
}
|
}
|
||||||
copy_len = (u16_t)(hostname - hostname_part);
|
copy_len = (u16_t)(hostname - hostname_part);
|
||||||
|
if (query_idx + n + 1 > 0xFFFF) {
|
||||||
|
/* u16_t overflow */
|
||||||
|
goto overflow_return;
|
||||||
|
}
|
||||||
pbuf_put_at(p, query_idx, n);
|
pbuf_put_at(p, query_idx, n);
|
||||||
pbuf_take_at(p, hostname_part, copy_len, query_idx + 1);
|
pbuf_take_at(p, hostname_part, copy_len, (u16_t)(query_idx + 1));
|
||||||
query_idx += n + 1;
|
query_idx = (u16_t)(query_idx + n + 1);
|
||||||
} while (*hostname != 0);
|
} while (*hostname != 0);
|
||||||
pbuf_put_at(p, query_idx, 0);
|
pbuf_put_at(p, query_idx, 0);
|
||||||
query_idx++;
|
query_idx++;
|
||||||
@ -838,6 +851,9 @@ dns_send(u8_t idx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
|
overflow_return:
|
||||||
|
pbuf_free(p);
|
||||||
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ((LWIP_DNS_SECURE & LWIP_DNS_SECURE_RAND_SRC_PORT) != 0)
|
#if ((LWIP_DNS_SECURE & LWIP_DNS_SECURE_RAND_SRC_PORT) != 0)
|
||||||
@ -895,9 +911,9 @@ dns_alloc_pcb(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* if we come here, creating a new UDP pcb failed, so we have to use
|
/* if we come here, creating a new UDP pcb failed, so we have to use
|
||||||
an already existing one */
|
an already existing one (so overflow is no issue) */
|
||||||
for (i = 0, idx = dns_last_pcb_idx + 1; i < DNS_MAX_SOURCE_PORTS; i++, idx++) {
|
for (i = 0, idx = (u8_t)(dns_last_pcb_idx + 1); i < DNS_MAX_SOURCE_PORTS; i++, idx++) {
|
||||||
if (idx >= DNS_MAX_SOURCE_PORTS) {
|
if (idx >= LWIP_MAX(0xFF, DNS_MAX_SOURCE_PORTS)) {
|
||||||
idx = 0;
|
idx = 0;
|
||||||
}
|
}
|
||||||
if (dns_pcbs[idx] != NULL) {
|
if (dns_pcbs[idx] != NULL) {
|
||||||
@ -1203,7 +1219,10 @@ dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr,
|
|||||||
goto memerr; /* ignore this packet */
|
goto memerr; /* ignore this packet */
|
||||||
}
|
}
|
||||||
/* skip the rest of the "question" part */
|
/* skip the rest of the "question" part */
|
||||||
res_idx += SIZEOF_DNS_QUERY;
|
if (res_idx + SIZEOF_DNS_QUERY > 0xFFFF) {
|
||||||
|
goto memerr;
|
||||||
|
}
|
||||||
|
res_idx = (u16_t)(res_idx + SIZEOF_DNS_QUERY);
|
||||||
|
|
||||||
/* Check for error. If so, call callback to inform. */
|
/* Check for error. If so, call callback to inform. */
|
||||||
if (hdr.flags2 & DNS_FLAG2_ERR_MASK) {
|
if (hdr.flags2 & DNS_FLAG2_ERR_MASK) {
|
||||||
@ -1220,7 +1239,10 @@ dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr,
|
|||||||
if (pbuf_copy_partial(p, &ans, SIZEOF_DNS_ANSWER, res_idx) != SIZEOF_DNS_ANSWER) {
|
if (pbuf_copy_partial(p, &ans, SIZEOF_DNS_ANSWER, res_idx) != SIZEOF_DNS_ANSWER) {
|
||||||
goto memerr; /* ignore this packet */
|
goto memerr; /* ignore this packet */
|
||||||
}
|
}
|
||||||
res_idx += SIZEOF_DNS_ANSWER;
|
if (res_idx + SIZEOF_DNS_ANSWER > 0xFFFF) {
|
||||||
|
goto memerr;
|
||||||
|
}
|
||||||
|
res_idx = (u16_t)(res_idx + SIZEOF_DNS_ANSWER);
|
||||||
|
|
||||||
if (ans.cls == PP_HTONS(DNS_RRCLASS_IN)) {
|
if (ans.cls == PP_HTONS(DNS_RRCLASS_IN)) {
|
||||||
#if LWIP_IPV4
|
#if LWIP_IPV4
|
||||||
@ -1266,7 +1288,7 @@ dns_recv(void *arg, struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *addr,
|
|||||||
if ((int)(res_idx + lwip_htons(ans.len)) > 0xFFFF) {
|
if ((int)(res_idx + lwip_htons(ans.len)) > 0xFFFF) {
|
||||||
goto memerr; /* ignore this packet */
|
goto memerr; /* ignore this packet */
|
||||||
}
|
}
|
||||||
res_idx += lwip_htons(ans.len);
|
res_idx = (u16_t)(res_idx + lwip_htons(ans.len));
|
||||||
--nanswers;
|
--nanswers;
|
||||||
}
|
}
|
||||||
#if LWIP_IPV4 && LWIP_IPV6
|
#if LWIP_IPV4 && LWIP_IPV6
|
||||||
@ -1362,7 +1384,7 @@ dns_enqueue(const char *name, size_t hostnamelen, dns_found_callback found,
|
|||||||
}
|
}
|
||||||
/* check if this is the oldest completed entry */
|
/* check if this is the oldest completed entry */
|
||||||
if (entry->state == DNS_STATE_DONE) {
|
if (entry->state == DNS_STATE_DONE) {
|
||||||
u8_t age = dns_seqno - entry->seqno;
|
u8_t age = (u8_t)(dns_seqno - entry->seqno);
|
||||||
if (age > lseq) {
|
if (age > lseq) {
|
||||||
lseq = age;
|
lseq = age;
|
||||||
lseqi = i;
|
lseqi = i;
|
||||||
|
@ -161,7 +161,7 @@ netif_loopif_init(struct netif *netif)
|
|||||||
netif->output_ip6 = netif_loop_output_ipv6;
|
netif->output_ip6 = netif_loop_output_ipv6;
|
||||||
#endif
|
#endif
|
||||||
#if LWIP_LOOPIF_MULTICAST
|
#if LWIP_LOOPIF_MULTICAST
|
||||||
netif->flags |= NETIF_FLAG_IGMP;
|
netif_set_flags(netif, NETIF_FLAG_IGMP);
|
||||||
#endif
|
#endif
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
@ -380,7 +380,11 @@ netif_add(struct netif *netif,
|
|||||||
}
|
}
|
||||||
} while (netif2 != NULL);
|
} while (netif2 != NULL);
|
||||||
}
|
}
|
||||||
netif_num = netif->num + 1;
|
if (netif->num == 254) {
|
||||||
|
netif_num = 0;
|
||||||
|
} else {
|
||||||
|
netif_num = (u8_t)(netif->num + 1);
|
||||||
|
}
|
||||||
|
|
||||||
/* add this netif to the list */
|
/* add this netif to the list */
|
||||||
netif->next = netif_list;
|
netif->next = netif_list;
|
||||||
@ -724,7 +728,7 @@ void
|
|||||||
netif_set_up(struct netif *netif)
|
netif_set_up(struct netif *netif)
|
||||||
{
|
{
|
||||||
if (!(netif->flags & NETIF_FLAG_UP)) {
|
if (!(netif->flags & NETIF_FLAG_UP)) {
|
||||||
netif->flags |= NETIF_FLAG_UP;
|
netif_set_flags(netif, NETIF_FLAG_UP);
|
||||||
|
|
||||||
MIB2_COPY_SYSUPTIME_TO(&netif->ts);
|
MIB2_COPY_SYSUPTIME_TO(&netif->ts);
|
||||||
|
|
||||||
@ -798,7 +802,7 @@ netif_set_down(struct netif *netif)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
netif->flags &= ~NETIF_FLAG_UP;
|
netif_clear_flags(netif, NETIF_FLAG_UP);
|
||||||
MIB2_COPY_SYSUPTIME_TO(&netif->ts);
|
MIB2_COPY_SYSUPTIME_TO(&netif->ts);
|
||||||
|
|
||||||
#if LWIP_IPV4 && LWIP_ARP
|
#if LWIP_IPV4 && LWIP_ARP
|
||||||
@ -851,7 +855,7 @@ void
|
|||||||
netif_set_link_up(struct netif *netif)
|
netif_set_link_up(struct netif *netif)
|
||||||
{
|
{
|
||||||
if (!(netif->flags & NETIF_FLAG_LINK_UP)) {
|
if (!(netif->flags & NETIF_FLAG_LINK_UP)) {
|
||||||
netif->flags |= NETIF_FLAG_LINK_UP;
|
netif_set_flags(netif, NETIF_FLAG_LINK_UP);
|
||||||
|
|
||||||
#if LWIP_DHCP
|
#if LWIP_DHCP
|
||||||
dhcp_network_changed(netif);
|
dhcp_network_changed(netif);
|
||||||
@ -883,7 +887,7 @@ void
|
|||||||
netif_set_link_down(struct netif *netif )
|
netif_set_link_down(struct netif *netif )
|
||||||
{
|
{
|
||||||
if (netif->flags & NETIF_FLAG_LINK_UP) {
|
if (netif->flags & NETIF_FLAG_LINK_UP) {
|
||||||
netif->flags &= ~NETIF_FLAG_LINK_UP;
|
netif_clear_flags(netif, NETIF_FLAG_LINK_UP);
|
||||||
NETIF_LINK_CALLBACK(netif);
|
NETIF_LINK_CALLBACK(netif);
|
||||||
#if LWIP_NETIF_EXT_STATUS_CALLBACK
|
#if LWIP_NETIF_EXT_STATUS_CALLBACK
|
||||||
{
|
{
|
||||||
@ -963,7 +967,7 @@ netif_loop_output(struct netif *netif, struct pbuf *p)
|
|||||||
MIB2_STATS_NETIF_INC(stats_if, ifoutdiscards);
|
MIB2_STATS_NETIF_INC(stats_if, ifoutdiscards);
|
||||||
return ERR_MEM;
|
return ERR_MEM;
|
||||||
}
|
}
|
||||||
netif->loop_cnt_current += clen;
|
netif->loop_cnt_current = (u16_t)(netif->loop_cnt_current + clen);
|
||||||
#endif /* LWIP_LOOPBACK_MAX_PBUFS */
|
#endif /* LWIP_LOOPBACK_MAX_PBUFS */
|
||||||
|
|
||||||
/* Copy the whole pbuf queue p into the single pbuf r */
|
/* Copy the whole pbuf queue p into the single pbuf r */
|
||||||
@ -1067,7 +1071,7 @@ netif_poll(struct netif *netif)
|
|||||||
/* adjust the number of pbufs on queue */
|
/* adjust the number of pbufs on queue */
|
||||||
LWIP_ASSERT("netif->loop_cnt_current underflow",
|
LWIP_ASSERT("netif->loop_cnt_current underflow",
|
||||||
((netif->loop_cnt_current - clen) < netif->loop_cnt_current));
|
((netif->loop_cnt_current - clen) < netif->loop_cnt_current));
|
||||||
netif->loop_cnt_current -= clen;
|
netif->loop_cnt_current = (u16_t)(netif->loop_cnt_current - clen);
|
||||||
#endif /* LWIP_LOOPBACK_MAX_PBUFS */
|
#endif /* LWIP_LOOPBACK_MAX_PBUFS */
|
||||||
|
|
||||||
/* 'in_end' now points to the last pbuf from 'in' */
|
/* 'in_end' now points to the last pbuf from 'in' */
|
||||||
@ -1126,8 +1130,11 @@ netif_alloc_client_data_id(void)
|
|||||||
u8_t result = netif_client_id;
|
u8_t result = netif_client_id;
|
||||||
netif_client_id++;
|
netif_client_id++;
|
||||||
|
|
||||||
|
#if LWIP_NUM_NETIF_CLIENT_DATA > 256
|
||||||
|
#error LWIP_NUM_NETIF_CLIENT_DATA must be <= 256
|
||||||
|
#endif
|
||||||
LWIP_ASSERT("Increase LWIP_NUM_NETIF_CLIENT_DATA in lwipopts.h", result < LWIP_NUM_NETIF_CLIENT_DATA);
|
LWIP_ASSERT("Increase LWIP_NUM_NETIF_CLIENT_DATA in lwipopts.h", result < LWIP_NUM_NETIF_CLIENT_DATA);
|
||||||
return result + LWIP_NETIF_CLIENT_DATA_INDEX_MAX;
|
return (u8_t)(result + LWIP_NETIF_CLIENT_DATA_INDEX_MAX);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -427,6 +427,10 @@ void netif_set_gw(struct netif *netif, const ip4_addr_t *gw);
|
|||||||
#define netif_ip_gw4(netif) ((const ip_addr_t*)&((netif)->gw))
|
#define netif_ip_gw4(netif) ((const ip_addr_t*)&((netif)->gw))
|
||||||
#endif /* LWIP_IPV4 */
|
#endif /* LWIP_IPV4 */
|
||||||
|
|
||||||
|
#define netif_set_flags(netif, set_flags) do { (netif)->flags = (u8_t)((netif)->flags | (set_flags)); } while(0)
|
||||||
|
#define netif_clear_flags(netif, set_flags) do { (netif)->flags = (u8_t)((netif)->flags & ~(set_flags)); } while(0)
|
||||||
|
#define netif_is_flag_set(nefif, flag) (((netif)->flags & (flag)) != 0)
|
||||||
|
|
||||||
void netif_set_up(struct netif *netif);
|
void netif_set_up(struct netif *netif);
|
||||||
void netif_set_down(struct netif *netif);
|
void netif_set_down(struct netif *netif);
|
||||||
/** @ingroup netif
|
/** @ingroup netif
|
||||||
@ -521,8 +525,8 @@ u8_t netif_name_to_index(const char *name);
|
|||||||
char * netif_index_to_name(u8_t idx, char *name);
|
char * netif_index_to_name(u8_t idx, char *name);
|
||||||
struct netif* netif_get_by_index(u8_t idx);
|
struct netif* netif_get_by_index(u8_t idx);
|
||||||
|
|
||||||
/* Interface indexes always start at 1 per RFC 3493, section 4, num starts at 0 */
|
/* Interface indexes always start at 1 per RFC 3493, section 4, num starts at 0 (internal index is 0..254)*/
|
||||||
#define netif_get_index(netif) ((netif)->num + 1)
|
#define netif_get_index(netif) ((u8_t)((netif)->num + 1))
|
||||||
#define NETIF_NO_INDEX (0)
|
#define NETIF_NO_INDEX (0)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1546,7 +1546,7 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* LWIP_NUM_NETIF_CLIENT_DATA: Number of clients that may store
|
* LWIP_NUM_NETIF_CLIENT_DATA: Number of clients that may store
|
||||||
* data in client_data member array of struct netif.
|
* data in client_data member array of struct netif (max. 256).
|
||||||
*/
|
*/
|
||||||
#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
|
#if !defined LWIP_NUM_NETIF_CLIENT_DATA || defined __DOXYGEN__
|
||||||
#define LWIP_NUM_NETIF_CLIENT_DATA 0
|
#define LWIP_NUM_NETIF_CLIENT_DATA 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user