Fixed bug that prevented concurrent reception and transmission of data
diff --git a/contiki/uip/uip.c b/contiki/uip/uip.c
index f116684..5912782 100644
--- a/contiki/uip/uip.c
+++ b/contiki/uip/uip.c
@@ -39,7 +39,7 @@
  *
  * This file is part of the uIP TCP/IP stack.
  *
- * $Id: uip.c,v 1.14 2004/06/06 06:14:19 adamdunkels Exp $
+ * $Id: uip.c,v 1.15 2004/09/12 07:17:37 adamdunkels Exp $
  *
  */
 
@@ -841,7 +841,6 @@
     UIP_STAT(++uip_stat.tcp.drop);
     UIP_STAT(++uip_stat.tcp.chkerr);
     UIP_LOG("tcp: bad checksum.");
-    /*    printf("uip_len %d sum 0x%04x\n", uip_len, uip_tcpchksum());*/
     goto drop;
   }
   
@@ -1084,6 +1083,7 @@
      retransmission timer. */
   if((BUF->flags & TCP_ACK) && uip_outstanding(uip_connr)) {
     uip_add32(uip_connr->snd_nxt, uip_connr->len);
+
     if(BUF->ackno[0] == uip_acc32[0] &&
        BUF->ackno[1] == uip_acc32[1] &&
        BUF->ackno[2] == uip_acc32[2] &&
@@ -1114,6 +1114,9 @@
       uip_flags = UIP_ACKDATA;
       /* Reset the retransmission timer. */
       uip_connr->timer = uip_connr->rto;
+
+      /* Reset length of outstanding data. */
+      uip_connr->len = 0;
     }
     
   }
@@ -1349,7 +1352,7 @@
 	  uip_slen = uip_connr->len;
 	}
       } else {
-	uip_connr->len = 0;
+	/*	uip_connr->len = 0;*/
       }
       uip_connr->nrtx = 0;
     apprexmit: