mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-11-19 05:10:40 +00:00
Reverted invalid fix for invalid bug #34360 done yesterday...
This commit is contained in:
parent
1d125f55ba
commit
98274d2145
@ -69,10 +69,6 @@ HISTORY
|
|||||||
* pbuf.h, tcp.c, tcp_in.c: fixed bug #33871: rejecting TCP_EVENT_RECV() for
|
* pbuf.h, tcp.c, tcp_in.c: fixed bug #33871: rejecting TCP_EVENT_RECV() for
|
||||||
the last packet including FIN can lose data
|
the last packet including FIN can lose data
|
||||||
|
|
||||||
2011-09-22: Simon Goldschmidt
|
|
||||||
* tcp.c: fixed bug #34360 tcp_shutdown: RST on unacked is not send when
|
|
||||||
shutting down both rx AND tx
|
|
||||||
|
|
||||||
2011-09-22: Simon Goldschmidt
|
2011-09-22: Simon Goldschmidt
|
||||||
* tcp_impl.h: fixed bug #34355: nagle does not take snd_buf/snd_queuelen into
|
* tcp_impl.h: fixed bug #34355: nagle does not take snd_buf/snd_queuelen into
|
||||||
account
|
account
|
||||||
|
@ -305,7 +305,12 @@ tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx)
|
|||||||
return ERR_CONN;
|
return ERR_CONN;
|
||||||
}
|
}
|
||||||
if (shut_rx) {
|
if (shut_rx) {
|
||||||
/* shut down the receive side: set a flag not to receive any more data */
|
/* shut down the receive side: free buffered data... */
|
||||||
|
if (pcb->refused_data != NULL) {
|
||||||
|
pbuf_free(pcb->refused_data);
|
||||||
|
pcb->refused_data = NULL;
|
||||||
|
}
|
||||||
|
/* ... and set a flag not to receive any more data */
|
||||||
pcb->flags |= TF_RXCLOSED;
|
pcb->flags |= TF_RXCLOSED;
|
||||||
}
|
}
|
||||||
if (shut_tx) {
|
if (shut_tx) {
|
||||||
@ -315,18 +320,12 @@ tcp_shutdown(struct tcp_pcb *pcb, int shut_rx, int shut_tx)
|
|||||||
case SYN_RCVD:
|
case SYN_RCVD:
|
||||||
case ESTABLISHED:
|
case ESTABLISHED:
|
||||||
case CLOSE_WAIT:
|
case CLOSE_WAIT:
|
||||||
/* if shut_tx AND shut_rx, send RST if we have unacked data */
|
return tcp_close_shutdown(pcb, 0);
|
||||||
return tcp_close_shutdown(pcb, (u8_t)shut_rx);
|
|
||||||
default:
|
default:
|
||||||
/* don't shut down other states */
|
/* don't shut down other states */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (shut_rx && (pcb->refused_data != NULL)) {
|
|
||||||
/* shut down the receive side: free buffered data if we come here */
|
|
||||||
pbuf_free(pcb->refused_data);
|
|
||||||
pcb->refused_data = NULL;
|
|
||||||
}
|
|
||||||
/* @todo: return another err_t if not in correct state or already shut? */
|
/* @todo: return another err_t if not in correct state or already shut? */
|
||||||
return ERR_OK;
|
return ERR_OK;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user