lwip-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lwip-users] TCP_WRITE_FLAG_MORE, tcp_write(), tcp_output() and real


From: Giuseppe Modugno
Subject: Re: [lwip-users] TCP_WRITE_FLAG_MORE, tcp_write(), tcp_output() and real output TCP segment
Date: Wed, 22 Nov 2017 12:14:13 +0100
User-agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

I'm sorry for the second email.

I noticed in tcp_output():

  /* First, check if we are invoked by the TCP input processing
     code. If so, we do not output anything. Instead, we rely on the
     input processing code to call us when input processing is done
     with. */
  if (tcp_input_pcb == pcb) {
    return ERR_OK;
  }

In the application recv() function, I decide I received all data and now I'm ready to answer with a reply. I call tcp_write() (maybe multiple times) from recv() and then tcp_output(). The previous if has the effect to return immediately from tcp_output(), so its call is useless.

From this I understand tcp_output() could be useful only in the poll() function (when new data is available and should be sent) and sent() function (when new data can be sent after previously sent data has acknowledged).




reply via email to

[Prev in Thread] Current Thread [Next in Thread]