Index: redboot/current/src/net/tcp.c =================================================================== RCS file: /home/cassebohm/net/USERS/CVSROOT/VSprojects/ecos/packages/redboot/current/src/net/tcp.c,v retrieving revision 1.1.1.1.2.3 diff -u -5 -p -r1.1.1.1.2.3 tcp.c --- redboot/current/src/net/tcp.c 12 Feb 2004 11:40:14 -0000 1.1.1.1.2.3 +++ redboot/current/src/net/tcp.c 12 Mar 2004 17:46:57 -0000 @@ -296,11 +296,17 @@ unlink_socket(tcp_socket_t *s) * Retransmit last packet. */ static void do_retrans(void *p) { + tcp_socket_t *s = (tcp_socket_t *)p; + BSPLOG(bsp_log("tcp do_retrans.\n")); + + if (s->pkt.tcp_hdr->flags & TCP_FLAG_SYN) + s->seq += 0x6AAADE77; + tcp_send((tcp_socket_t *)p, 0, 1); } static void @@ -890,11 +896,11 @@ __tcp_open(tcp_socket_t *s, struct socka s->his_port = host->sin_port; s->pkt.buf = (word *)s->pktbuf; s->pkt.bufsize = ETH_MAX_PKTLEN; s->pkt.ip_hdr = (ip_header_t *)s->pkt.buf; s->pkt.tcp_hdr = (tcp_header_t *)(s->pkt.ip_hdr + 1); - s->seq = (port << 16) | 0xDE77; + s->seq = (port << 16) + (0x6AAADE77 * get_ms_ticks()); s->ack = 0; if (__arp_lookup((ip_addr_t *)&host->sin_addr, &s->his_addr) < 0) { diag_printf("%s: Can't find address of server\n", __FUNCTION__); return -1; }