mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-01 04:12:07 +00:00
* sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
(patch #3574).
This commit is contained in:
parent
eb28133b1f
commit
e895aa71a4
@ -117,6 +117,10 @@ HISTORY
|
|||||||
|
|
||||||
++ Bug fixes:
|
++ Bug fixes:
|
||||||
|
|
||||||
|
2007-05-03 "maq"
|
||||||
|
* sockets.c: Fix ioctl FIONREAD when some data remains from last recv.
|
||||||
|
(patch #3574).
|
||||||
|
|
||||||
2007-04-23 Simon Goldschmidt
|
2007-04-23 Simon Goldschmidt
|
||||||
* loopif.c, loopif.h, opt.h, src/netif/FILES: fix bug #2595: "loopif results
|
* loopif.c, loopif.h, opt.h, src/netif/FILES: fix bug #2595: "loopif results
|
||||||
in NULL reference for incoming TCP packets". Loopif has to be configured
|
in NULL reference for incoming TCP packets". Loopif has to be configured
|
||||||
|
@ -1406,6 +1406,7 @@ int lwip_setsockopt (int s, int level, int optname, const void *optval, socklen_
|
|||||||
int lwip_ioctl(int s, long cmd, void *argp)
|
int lwip_ioctl(int s, long cmd, void *argp)
|
||||||
{
|
{
|
||||||
struct lwip_socket *sock = get_socket(s);
|
struct lwip_socket *sock = get_socket(s);
|
||||||
|
u16_t buflen = 0;
|
||||||
|
|
||||||
if (!sock)
|
if (!sock)
|
||||||
return -1;
|
return -1;
|
||||||
@ -1419,7 +1420,15 @@ int lwip_ioctl(int s, long cmd, void *argp)
|
|||||||
|
|
||||||
*((u16_t*)argp) = sock->conn->recv_avail;
|
*((u16_t*)argp) = sock->conn->recv_avail;
|
||||||
|
|
||||||
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONREAD, %p) = %u\n", s, argp, *((u16_t*)argp)));
|
/* Check if there is data left from the last recv operation. /maq 041215 */
|
||||||
|
if (sock->lastdata) {
|
||||||
|
buflen = netbuf_len(sock->lastdata);
|
||||||
|
buflen -= sock->lastoffset;
|
||||||
|
|
||||||
|
*((u16_t*)argp) += buflen;
|
||||||
|
}
|
||||||
|
|
||||||
|
LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_ioctl(%d, FIONREAD, %p) = %u\n", s, argp, *((u16_t*)argp)));
|
||||||
sock_set_errno(sock, 0);
|
sock_set_errno(sock, 0);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user