[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #52471] Change in netconn_recv_data_tcp causing recv r
From: |
Joel Cunningham |
Subject: |
[lwip-devel] [bug #52471] Change in netconn_recv_data_tcp causing recv regression |
Date: |
Mon, 20 Nov 2017 14:45:10 -0500 (EST) |
User-agent: |
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0 |
URL:
<http://savannah.nongnu.org/bugs/?52471>
Summary: Change in netconn_recv_data_tcp causing recv
regression
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: jcunningham
Submitted on: Mon 20 Nov 2017 07:45:09 PM UTC
Category: sockets/netconn
Severity: 3 - Normal
Item Group: Faulty Behaviour
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
lwIP version: git head
_______________________________________________________
Details:
Found this after pulling up to include
db3a4e31586f8614b0a27b482406b0c212a4e08a, but recv no longer returns 0 during
a remote closure, instead it returns ENOTCONN.
I did a little debugging and what's happening is that in my application, it
reads the last pbuf from recvmbox, but calls netconn_recv_data_tcp() (from
lwip_recv_tcp) again since there is more buffer space. This processes the
close message, deallocates the recvmbox (via netconn_close_shutdown) and
returns ERR_CLSD back to lwip_recv_tcp, but since we did successfully read
data during this call, the 0 return is lost. Then during the next call to
recv(), we hit the case modified in db3a4e3 and now return ERR_CONN
_______________________________________________________
Reply to this item at:
<http://savannah.nongnu.org/bugs/?52471>
_______________________________________________
Message sent via/by Savannah
http://savannah.nongnu.org/
- [lwip-devel] [bug #52471] Change in netconn_recv_data_tcp causing recv regression,
Joel Cunningham <=