net: context: let tcp_established() handle more TCP states
Due to commit fece8569 ("net: tcp: Clean up FIN handling") the tcp_established() callback now handles TCP connections which are in various ending/closing states other than TCP_ESTABLISHED. Currently, these states are generating the following error and not being processed: Context 0x123456778 in wrong state 6. (Shown when TCP is in LAST_ACK state). This commit also fixes a memory leak issue discribed in Jira: ZEP-1658 Analysis of the memory leak issue is here: When TCP connection is established, tcp context is in NET_TCP_ESTABLISHED state. Once it receives FIN message from client it goes to NET_TCP_CLOSE_WAIT and then it turns to NET_TCP_LAST_ACK after connection closing request from server. Now server gets final ack from client, but tcp_established() will reject it because current state is not in NET_TCP_ESTABLISHED. Even if server receives proper ack, it is not handled by server. Hence 'sent_list' is not freed. Change-Id: I41c8af2e6851809f87a02c271a4290cf3d823ebb Signed-off-by:Michael Scott <michael.scott@linaro.org>
Loading
Please sign in to comment