9
0
Fork 0

More TCP sequence changes

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3138 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2010-11-27 22:50:27 +00:00
parent 3e8c979b34
commit 18f8d02ed0
2 changed files with 7 additions and 20 deletions

View File

@ -172,14 +172,15 @@ static uint16_t send_interrupt(struct uip_driver_s *dev, void *pvconn,
nllvdbg("ACK: acked=%d sent=%d buflen=%d\n",
pstate->snd_acked, pstate->snd_sent, pstate->snd_buflen);
/* Have all of the bytes in the buffer been sent and ACKed? */
/* Have all of the bytes in the buffer been sent and acknowledged? */
if ( pstate->snd_acked >= pstate->snd_buflen)
if (pstate->snd_acked >= pstate->snd_buflen)
{
/* Yes. Then pstate->snd_buflen should hold the number of bytes
* actually sent.
*/
conn->unacked = 0;
goto end_wait;
}

View File

@ -134,25 +134,11 @@ void uip_tcpappsend(struct uip_driver_s *dev, struct uip_conn *conn,
if (dev->d_sndlen > 0)
{
/* If the connection has acknowledged data, the conn->unacked count
* should be discarded.
*/
if ((result & UIP_ACKDATA) != 0)
{
conn->unacked = 0;
}
/* Remember how much data we send out now so that we know
* when everything has been acknowledged. No attempt is made
* here to keep track of how much outstanding, un-acked data
* there is. That is handled in the TCP send() logic. Here
* need the conn->unacked to be the same as the size of the packet
* to be sent.
*
* Just increment the amount of data sent. This will be needed
* in sequence number calculations and we know that this is not
* a re-tranmission. Retransmissions do not go through this path.
* when everything has been acknowledged. Just increment the amount
* of data sent. This will be needed in sequence number calculations
* and we know that this is not a re-tranmission. Retransmissions
* do not go through this path.
*/
conn->unacked += dev->d_sndlen;