mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2024-10-01 04:12:07 +00:00
Moved the nagle algorithm from netconn_write/do_write into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too.
This commit is contained in:
parent
9f05cabf87
commit
2aef8bad55
@ -19,6 +19,10 @@ HISTORY
|
|||||||
|
|
||||||
++ New features:
|
++ New features:
|
||||||
|
|
||||||
|
2007-06-21 Simon Goldschmidt
|
||||||
|
* tcp.h, api_msg.c: Moved the nagle algorithm from netconn_write/do_write
|
||||||
|
into a define (tcp_output_nagle) in tcp.h to provide it to raw api users, too.
|
||||||
|
|
||||||
2007-06-21 Simon Goldschmidt
|
2007-06-21 Simon Goldschmidt
|
||||||
* api.h, api_lib.c, api_msg.c: Fixed bug #20021: Moved sendbuf-processing in
|
* api.h, api_lib.c, api_msg.c: Fixed bug #20021: Moved sendbuf-processing in
|
||||||
netconn_write from api_lib.c to api_msg.c to also prevent multiple context-
|
netconn_write from api_lib.c to api_msg.c to also prevent multiple context-
|
||||||
|
@ -752,15 +752,7 @@ do_writemore(struct netconn *conn)
|
|||||||
conn->write_msg = NULL;
|
conn->write_msg = NULL;
|
||||||
conn->write_offset = 0;
|
conn->write_offset = 0;
|
||||||
}
|
}
|
||||||
/* This is the Nagle algorithm: inhibit the sending of new TCP
|
err = tcp_output_nagle(conn->pcb.tcp);
|
||||||
segments when new outgoing data arrives from the user if any
|
|
||||||
previously transmitted data on the connection remains
|
|
||||||
unacknowledged. */
|
|
||||||
if ((conn->pcb.tcp->unacked == NULL ||
|
|
||||||
(conn->pcb.tcp->flags & TF_NODELAY) ||
|
|
||||||
(conn->pcb.tcp->snd_queuelen) > 1)) {
|
|
||||||
err = tcp_output(conn->pcb.tcp);
|
|
||||||
}
|
|
||||||
conn->err = err;
|
conn->err = err;
|
||||||
if ((conn->callback) && (err == ERR_OK) &&
|
if ((conn->callback) && (err == ERR_OK) &&
|
||||||
(tcp_sndbuf(conn->pcb.tcp) <= TCP_SNDLOWAT)) {
|
(tcp_sndbuf(conn->pcb.tcp) <= TCP_SNDLOWAT)) {
|
||||||
|
@ -111,6 +111,17 @@ err_t tcp_output (struct tcp_pcb *pcb);
|
|||||||
void tcp_rexmit (struct tcp_pcb *pcb);
|
void tcp_rexmit (struct tcp_pcb *pcb);
|
||||||
void tcp_rexmit_rto (struct tcp_pcb *pcb);
|
void tcp_rexmit_rto (struct tcp_pcb *pcb);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the Nagle algorithm: inhibit the sending of new TCP
|
||||||
|
* segments when new outgoing data arrives from the user if any
|
||||||
|
* previously transmitted data on the connection remains
|
||||||
|
* unacknowledged.
|
||||||
|
*/
|
||||||
|
#define tcp_output_nagle(tpcb) ((((tpcb)->unacked == NULL) || \
|
||||||
|
((tpcb)->flags & TF_NODELAY) || \
|
||||||
|
((tpcb)->snd_queuelen > 1)) ? \
|
||||||
|
tcp_output(tpcb) : ERR_OK)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define TCP_SEQ_LT(a,b) ((s32_t)((a)-(b)) < 0)
|
#define TCP_SEQ_LT(a,b) ((s32_t)((a)-(b)) < 0)
|
||||||
|
Loading…
Reference in New Issue
Block a user