mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-08-06 15:15:15 +08:00
Merge branch 'bugfix/fix_udp_send_more_than_1472' into 'master'
Fix UDP send more than 1472 bytes See merge request sdk/ESP8266_RTOS_SDK!446
This commit is contained in:
@ -516,6 +516,19 @@ udp_sendto_chksum(struct udp_pcb *pcb, struct pbuf *p, const ip_addr_t *dst_ip,
|
|||||||
struct netif *netif;
|
struct netif *netif;
|
||||||
const ip_addr_t *dst_ip_route = dst_ip;
|
const ip_addr_t *dst_ip_route = dst_ip;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UDP max payload = MTU(1500 now) - IP head(20) - UDP head(8) = 1472
|
||||||
|
*
|
||||||
|
* We test that LWIP send 1473 bytes data, linux can cacth these but windows can't.
|
||||||
|
*
|
||||||
|
* If enable IP_FRAG option, these data should be fragmented at IP layer..
|
||||||
|
*/
|
||||||
|
#if ESP_LWIP && !IP_FRAG
|
||||||
|
if (p && p->tot_len > 1472) {
|
||||||
|
return ERR_VAL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if ((pcb == NULL) || (dst_ip == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) {
|
if ((pcb == NULL) || (dst_ip == NULL) || !IP_ADDR_PCB_VERSION_MATCH(pcb, dst_ip)) {
|
||||||
return ERR_VAL;
|
return ERR_VAL;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user