fixed bug #33952 PUSH flag in incoming packet is lost when packet is aggregated and sent to application

This commit is contained in:
Simon Goldschmidt 2011-09-03 21:57:26 +02:00
parent 17a5ba08e4
commit a0bf8d5740
2 changed files with 8 additions and 3 deletions

View File

@ -44,6 +44,10 @@ HISTORY
++ Bugfixes:
2011-09-03: Simon Goldschmidt
* tcp_in.c: fixed bug #33952 PUSH flag in incoming packet is lost when packet
is aggregated and sent to application
2011-09-01: Simon Goldschmidt
* opt.h: fixed bug #31809 LWIP_EVENT_API in opts.h is inconsistent compared
to other options

View File

@ -300,6 +300,10 @@ tcp_input(struct pbuf *p, struct netif *inp)
recv_data = NULL;
recv_flags = 0;
if (flags & TCP_PSH) {
p->flags |= PBUF_FLAG_PUSH;
}
/* If there is data which was previously "refused" by upper layer */
if (pcb->refused_data != NULL) {
/* Notify again application with data previously received. */
@ -354,9 +358,6 @@ tcp_input(struct pbuf *p, struct netif *inp)
tcp_abort(pcb);
goto aborted;
}
if (flags & TCP_PSH) {
recv_data->flags |= PBUF_FLAG_PUSH;
}
/* Notify application that data has been received. */
TCP_EVENT_RECV(pcb, recv_data, ERR_OK, err);