Handle this corner case with TCP connection closing: 1) Client A connects, it is accepted and can send data to us 2) Client B connects, the application needs to call accept() before we will receive any data from client A to the application. The app has not yet called accept() at this point (for whatever reason). 3) Client B then disconnects and we receive FIN. The connection cleanup is a bit tricky as the client is in half-connected state meaning that the connection is in established state but the accept_q in socket queue contains still data which needs to be cleared. 4) Client A then disconnects, all data is sent etc The above was not working correctly as the system did not handle the step 3) properly. The client B was accepted in the application even if the connection was closing. After this commit, the commit called "net: tcp: Accept connections only in LISTENING state" and related other commits are no longer needed and are reverted. Signed-off-by: Jukka Rissanen <jukka.rissanen@linux.intel.com> |
||
|---|---|---|
| .. | ||
| bt.h | ||
| buf.h | ||
| can.h | ||
| coap_link_format.h | ||
| coap.h | ||
| dhcpv4.h | ||
| dns_resolve.h | ||
| dummy.h | ||
| ethernet_mgmt.h | ||
| ethernet_vlan.h | ||
| ethernet.h | ||
| gptp.h | ||
| hostname.h | ||
| http_client.h | ||
| http_parser_state.h | ||
| http_parser_url.h | ||
| http_parser.h | ||
| ieee802154_mgmt.h | ||
| ieee802154_radio.h | ||
| ieee802154.h | ||
| ipv4_autoconf.h | ||
| lldp.h | ||
| lwm2m.h | ||
| mii.h | ||
| mqtt.h | ||
| net_config.h | ||
| net_conn_mgr.h | ||
| net_context.h | ||
| net_core.h | ||
| net_event.h | ||
| net_if.h | ||
| net_ip.h | ||
| net_l2.h | ||
| net_linkaddr.h | ||
| net_mgmt.h | ||
| net_offload.h | ||
| net_pkt.h | ||
| net_stats.h | ||
| net_timeout.h | ||
| openthread.h | ||
| ppp.h | ||
| promiscuous.h | ||
| ptp_time.h | ||
| sntp.h | ||
| socket_can.h | ||
| socket_net_mgmt.h | ||
| socket_offload_ops.h | ||
| socket_offload.h | ||
| socket_select.h | ||
| socket.h | ||
| socketutils.h | ||
| tls_credentials.h | ||
| trickle.h | ||
| udp.h | ||
| websocket.h | ||
| wifi_mgmt.h | ||
| wifi.h | ||