lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #32820] Outgoing TCP connections created before route


From: Hans Petter Selasky
Subject: [lwip-devel] [bug #32820] Outgoing TCP connections created before route is present never times out
Date: Thu, 17 Mar 2011 12:28:52 +0000
User-agent: Mozilla/5.0 (X11; U; FreeBSD amd64; en-US; rv:1.9.2.13) Gecko/20110126 Firefox/3.6.13

URL:
  <http://savannah.nongnu.org/bugs/?32820>

                 Summary: Outgoing TCP connections created before route is
present never times out
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: hps
            Submitted on: Thu 17 Mar 2011 12:28:51 PM GMT
                Category: TCP
                Severity: 3 - Normal
              Item Group: Faulty Behaviour
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: 
            lwIP version: 1.3.1

    _______________________________________________________

Details:

Hi,

It appears that outgoing TCP connections never time out if they are created
before the default interface becomes active. The following patch moves the
timeout activation some lines up before the default route presence is tested.

Index: lwip/src/core/tcp_out.c
===================================================================
--- lwip/src/core/tcp_out.c     (revision 2831)
+++ lwip/src/core/tcp_out.c     (working copy)
@@ -697,6 +697,11 @@
   }
 #endif
 
+  /* Set retransmission timer running if it is not currently enabled.
+   * This must be set before checking the route. */
+  if (pcb->rtime == -1)
+       pcb->rtime = 0;
+
   /* If we don't have a local IP address, we get one by
      calling ip_route(). */
   if (ip_addr_isany(&(pcb->local_ip))) {
@@ -707,10 +712,6 @@
     ip_addr_set(&(pcb->local_ip), &(netif->ip_addr));
   }
 
-  /* Set retransmission timer running if it is not currently enabled */
-  if(pcb->rtime == -1)
-    pcb->rtime = 0;
-
   if (pcb->rttest == 0) {
     pcb->rttest = tcp_ticks;
     pcb->rtseq = ntohl(seg->tcphdr->seqno);


--HPS




    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/bugs/?32820>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]