bug #28127: remove call to tcp_output() from tcp_ack(_now)()

This commit is contained in:
goldsimon 2010-01-10 11:41:25 +00:00
parent d85a18752f
commit f4a9d173a1
3 changed files with 7 additions and 3 deletions

View File

@ -37,6 +37,9 @@ HISTORY
++ Bugfixes:
2010-01-10: Simon Goldschmidt
* tcp.h/.c: bug #28127 (remove call to tcp_output() from tcp_ack(_now)())
2010-01-08: Simon Goldschmidt
* api_msg.h/.c, api_lib.c: Fixed bug #26672 (close connection when receive
window = 0) by correctly draining recvmbox/acceptmbox

View File

@ -454,8 +454,10 @@ tcp_recved(struct tcp_pcb *pcb, u16_t len)
* watermark is TCP_WND/2), then send an explicit update now.
* Otherwise wait for a packet to be sent in the normal course of
* events (or more window to be available later) */
if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD)
if (wnd_inflation >= TCP_WND_UPDATE_THRESHOLD) {
tcp_ack_now(pcb);
tcp_output(pcb);
}
LWIP_DEBUGF(TCP_DEBUG, ("tcp_recved: recveived %"U16_F" bytes, wnd %"U16_F" (%"U16_F").\n",
len, pcb->rcv_wnd, TCP_WND - pcb->rcv_wnd));
@ -836,6 +838,7 @@ tcp_fasttmr(void)
if (pcb->flags & TF_ACK_DELAY) {
LWIP_DEBUGF(TCP_DEBUG, ("tcp_fasttmr: delayed ACK\n"));
tcp_ack_now(pcb);
tcp_output();
pcb->flags &= ~(TF_ACK_DELAY | TF_ACK_NOW);
}
}

View File

@ -556,7 +556,6 @@ struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg);
if((pcb)->flags & TF_ACK_DELAY) { \
(pcb)->flags &= ~TF_ACK_DELAY; \
(pcb)->flags |= TF_ACK_NOW; \
tcp_output(pcb); \
} \
else { \
(pcb)->flags |= TF_ACK_DELAY; \
@ -566,7 +565,6 @@ struct tcp_seg *tcp_seg_copy(struct tcp_seg *seg);
#define tcp_ack_now(pcb) \
do { \
(pcb)->flags |= TF_ACK_NOW; \
tcp_output(pcb); \
} while (0)
err_t tcp_send_ctrl(struct tcp_pcb *pcb, u8_t flags);