In the function net_tcp_queue_data. When an -ENOBUFS by tcp_send_queued_data is returned, it throws away the whole block of size len from the send_data. If the len is > MSS, it could happen that the first section is transmitted, but at the second an -ENOBUFS occurs. In that case the data is transmitted, but later on removed from the send_data. To circumvent this problem, check if the len + unacked_len is smaller then the send_data_total. If so, the data can safely be removed from send_data. Otherwise, just pretend the transmission went OK. The acknowledgment and retransmit path will eventually take care of it. Signed-off-by: Sjors Hettinga <s.a.hettinga@gmail.com> |
||
|---|---|---|
| .. | ||
| ip | ||
| l2 | ||
| lib | ||
| pkt_filter | ||
| buf.c | ||
| CMakeLists.txt | ||
| hostname.c | ||
| Kconfig | ||
| Kconfig.hostname | ||
| Kconfig.template.log_config.default.net | ||
| Kconfig.template.log_config.net | ||