From 2268aea37d7eca8d6aeeaa6c3f540088329ed3b1 Mon Sep 17 00:00:00 2001 From: patacongo Date: Sat, 27 Nov 2010 22:50:27 +0000 Subject: More TCP sequence changes git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3138 42af7a65-404d-4744-a932-0658087f49c3 --- nuttx/net/send.c | 5 +++-- nuttx/net/uip/uip_tcpappsend.c | 22 ++++------------------ 2 files changed, 7 insertions(+), 20 deletions(-) (limited to 'nuttx') diff --git a/nuttx/net/send.c b/nuttx/net/send.c index 768d9ce9d..480627a14 100644 --- a/nuttx/net/send.c +++ b/nuttx/net/send.c @@ -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; } diff --git a/nuttx/net/uip/uip_tcpappsend.c b/nuttx/net/uip/uip_tcpappsend.c index 0bd44a653..9a09e0997 100644 --- a/nuttx/net/uip/uip_tcpappsend.c +++ b/nuttx/net/uip/uip_tcpappsend.c @@ -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; -- cgit v1.2.3