# HG changeset patch # User gthomas # Date 1071256443 0 # Node ID d9e058a49f031e5ce024187e548294cdd272f013 # Parent cd7d2afbc7dd031074845143690672963a240859 TCP SYN fix - from Jani Monoses diff --git a/packages/redboot/current/ChangeLog b/packages/redboot/current/ChangeLog --- a/packages/redboot/current/ChangeLog +++ b/packages/redboot/current/ChangeLog @@ -1,3 +1,9 @@ +2003-12-12 Jani Monoses + + * 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 * cdl/redboot.cdl: Better handling of GDB stubs support. This diff --git a/packages/redboot/current/src/main.c b/packages/redboot/current/src/main.c --- 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) { diff --git a/packages/redboot/current/src/net/tcp.c b/packages/redboot/current/src/net/tcp.c --- 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;