changeset 1444:d9e058a49f03

TCP SYN fix - from Jani Monoses
author gthomas
date Fri, 12 Dec 2003 19:14:03 +0000
parents cd7d2afbc7dd
children 85afbe4f7f1c
files packages/redboot/current/ChangeLog packages/redboot/current/src/main.c packages/redboot/current/src/net/tcp.c
diffstat 3 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/packages/redboot/current/ChangeLog
+++ b/packages/redboot/current/ChangeLog
@@ -1,3 +1,9 @@
+2003-12-12  Jani Monoses <jani@iv.ro>
+
+	* src/net/tcp.c: Cancel retransmission timer when SYN is acked
+	otherwise an open active connection which doesn't send data
+	eventually resends the SYN resulting in reset from the peer.
+
 2003-12-08  Gary Thomas  <gary@mlbassoc.com>
 
 	* cdl/redboot.cdl: Better handling of GDB stubs support.  This
--- a/packages/redboot/current/src/main.c
+++ b/packages/redboot/current/src/main.c
@@ -299,6 +299,10 @@ cyg_start(void)
     workspace_end -= CYGNUM_REDBOOT_FIS_ZLIB_COMMON_BUFFER_SIZE;
 #endif
 
+#ifdef CYGFUN_REDBOOT_BOOT_SCRIPT
+    script_timeout = CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT;
+#endif
+
     for (init_entry = __RedBoot_INIT_TAB__; init_entry != &__RedBoot_INIT_TAB_END__;  init_entry++) {
         (*init_entry->fun)();
     }
@@ -320,9 +324,6 @@ cyg_start(void)
 # ifdef CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT
     if (!script) {
       script = CYGDAT_REDBOOT_DEFAULT_BOOT_SCRIPT;
-#  ifndef CYGSEM_REDBOOT_FLASH_CONFIG
-      script_timeout = CYGNUM_REDBOOT_BOOT_SCRIPT_DEFAULT_TIMEOUT;
-#  endif
     }
 # endif
     if (script) {
--- a/packages/redboot/current/src/net/tcp.c
+++ b/packages/redboot/current/src/net/tcp.c
@@ -475,6 +475,7 @@ void
                   s->state = _ESTABLISHED;
                   s->ack = ntohl(tcp->seqnum) + 1;
                   s->seq = ntohl(tcp->acknum);
+		  __timer_cancel(&s->timer);
                   send_ack(s);
 		break;