gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r16119 - gnunet/src/transport


From: gnunet
Subject: [GNUnet-SVN] r16119 - gnunet/src/transport
Date: Tue, 19 Jul 2011 14:45:31 +0200

Author: grothoff
Date: 2011-07-19 14:45:31 +0200 (Tue, 19 Jul 2011)
New Revision: 16119

Modified:
   gnunet/src/transport/gnunet-service-transport.c
Log:
fixing 1732:


Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2011-07-19 12:38:23 UTC 
(rev 16118)
+++ gnunet/src/transport/gnunet-service-transport.c     2011-07-19 12:45:31 UTC 
(rev 16119)
@@ -1601,7 +1601,7 @@
        }
       else
        {
-         if (mq->specific_address->connected != GNUNET_NO)
+         if (mq->specific_address->connected == GNUNET_YES)
            {
 #if DEBUG_TRANSPORT
              GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -1938,12 +1938,10 @@
   struct ForeignAddressList *pos;
   struct ForeignAddressList *inbound;
   struct ForeignAddressList *outbound;
-  int cnt;
 
   GNUNET_assert (GNUNET_YES == fal->validated);
   if (fal->connected == GNUNET_YES)
     return; /* nothing to do */
-  cnt = GNUNET_YES;
   inbound = NULL;
   outbound = NULL;
 
@@ -1951,10 +1949,12 @@
   while (pos != NULL)
     {
       /* Already have inbound address, and this is also an inbound address, 
don't switch!! */
-      if ((GNUNET_YES == pos->connected) && (0 == pos->addrlen) && (0
-          == fal->addrlen))
+      if ( (GNUNET_YES == pos->connected) && 
+          (0 == pos->addrlen) && 
+          (0 == fal->addrlen) )
         return;
-      else if ((0 == pos->addrlen) && (GNUNET_YES == pos->connected))
+      if ( (0 == pos->addrlen) && 
+          (GNUNET_YES == pos->connected) )
         inbound = pos;
       pos = pos->next;
     }
@@ -1963,10 +1963,11 @@
   while (pos != NULL)
     {
       /* Already have outbound address, and this is also an outbound address, 
don't switch!! */
-      if ((GNUNET_YES == pos->connected) && (0 < pos->addrlen) && (0
-          < fal->addrlen))
+      if ( (GNUNET_YES == pos->connected) && 
+          (0 < pos->addrlen) && 
+          (0 < fal->addrlen) )
         return;
-      else if ((0 < pos->addrlen) && (GNUNET_YES == pos->connected))
+      if ( (0 < pos->addrlen) && (GNUNET_YES == pos->connected) )
         outbound = pos;
       pos = pos->next;
     }
@@ -2004,16 +2005,16 @@
       if ((GNUNET_YES == pos->connected) && (0 < pos->addrlen))
         {
 #if DEBUG_TRANSPORT
-          GNUNET_log (
-                      GNUNET_ERROR_TYPE_DEBUG,
+          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                       "Marking address `%s' as no longer connected (due to 
connect on other address)\n",
                       a2s (pos->ready_list->plugin->short_name, pos->addr,
                            pos->addrlen));
 #endif
-          GNUNET_break (cnt == GNUNET_YES);
-          cnt = GNUNET_NO;
 #if DEBUG_INBOUND
-          fprintf(stderr, "Peer: %s, setting %s connection to 
disconnected.\n", GNUNET_i2s(&my_identity), (0 == pos->addrlen) ? "INBOUND" : 
"OUTBOUND");
+          fprintf(stderr, 
+                 "Peer: %s, setting %s connection to disconnected.\n", 
+                 GNUNET_i2s(&my_identity),
+                 (0 == pos->addrlen) ? "INBOUND" : "OUTBOUND");
 #endif
           pos->connected = GNUNET_NO;
           GNUNET_STATISTICS_update (stats,
@@ -2022,13 +2023,10 @@
         }
       pos = pos->next;
     }
-
+  GNUNET_assert (GNUNET_NO == fal->connected);
   fal->connected = GNUNET_YES;
-  if (GNUNET_YES == cnt)
-    {
-      GNUNET_STATISTICS_update (stats, gettext_noop ("# connected addresses"),
-                                1, GNUNET_NO);
-    }
+  GNUNET_STATISTICS_update (stats, gettext_noop ("# connected addresses"),
+                           1, GNUNET_NO);
 }
 
 
@@ -2462,7 +2460,14 @@
       return; /* was never marked as connected */
     }
   pos->session = NULL;
-  pos->connected = GNUNET_NO;
+  if (GNUNET_YES == pos->connected)
+    {
+      pos->connected = GNUNET_NO;      
+      GNUNET_STATISTICS_update (stats,
+                               gettext_noop ("# connected addresses"),
+                               -1,
+                               GNUNET_NO);
+    }
   if (GNUNET_SCHEDULER_NO_TASK != pos->revalidate_task)
     {
       GNUNET_SCHEDULER_cancel (pos->revalidate_task);
@@ -2493,11 +2498,6 @@
       return;
     }
 
-  GNUNET_STATISTICS_update (stats,
-                              gettext_noop ("# connected addresses"),
-                              -1,
-                              GNUNET_NO);
-
   /* was inbound connection, free 'pos' */
   if (prev == NULL)
     rl->addresses = pos->next;
@@ -4907,10 +4907,13 @@
           peer_pos = rpos->addresses;
           rpos->addresses = peer_pos->next;
          if (peer_pos->connected == GNUNET_YES)
-           GNUNET_STATISTICS_update (stats,
-                                     gettext_noop ("# connected addresses"),
-                                     -1,
-                                     GNUNET_NO);
+           {
+             GNUNET_STATISTICS_update (stats,
+                                       gettext_noop ("# connected addresses"),
+                                       -1,
+                                       GNUNET_NO);
+             peer_pos->connected = GNUNET_NO;
+           }
          if (GNUNET_YES == peer_pos->validated)
            GNUNET_STATISTICS_update (stats,
                                      gettext_noop ("# peer addresses 
considered valid"),
@@ -6378,8 +6381,6 @@
 #endif
   struct ATS_mechanism * mechanisms;
   struct ATS_peer *peers;
-
-  int connected_addresses = 0;
   int c_peers = 0;
   int c_mechs = 0;
   struct NeighbourList *next = neighbours;
@@ -6425,59 +6426,50 @@
 
   next = neighbours;
   while (next!=NULL)
-  {
-    int found_addresses = GNUNET_NO;
-    struct ReadyList *r_next = next->plugins;
-    while (r_next != NULL)
     {
-        struct ForeignAddressList * a_next = r_next->addresses;
-        while (a_next != NULL)
-        {
-            if (a_next->connected == GNUNET_YES)
-              connected_addresses ++;
-            if (found_addresses == GNUNET_NO)
-            {
-              peers[c_peers].peer = next->id;
-              peers[c_peers].m_head = NULL;
-              peers[c_peers].m_tail = NULL;
-              peers[c_peers].f = 1.0 / c_mechs;
-            }
-
-            mechanisms[c_mechs].addr = a_next;
-            mechanisms[c_mechs].col_index = c_mechs;
-            mechanisms[c_mechs].peer = &peers[c_peers];
-            mechanisms[c_mechs].next = NULL;
-            mechanisms[c_mechs].plugin = r_next->plugin;
-            mechanisms[c_mechs].ressources = a_next->ressources;
-            mechanisms[c_mechs].quality = a_next->quality;
-
-            GNUNET_CONTAINER_DLL_insert_tail(peers[c_peers].m_head,
-                                             peers[c_peers].m_tail,
-                                             &mechanisms[c_mechs]);
-            found_addresses = GNUNET_YES;
-            c_mechs++;
-
-            a_next = a_next->next;
-        }
-        r_next = r_next->next;
-    }
-    if (found_addresses == GNUNET_YES)
+      int found_addresses = GNUNET_NO;
+      struct ReadyList *r_next = next->plugins;
+      while (r_next != NULL)
+       {
+         struct ForeignAddressList * a_next = r_next->addresses;
+         while (a_next != NULL)
+           {
+             if (found_addresses == GNUNET_NO)
+               {
+                 peers[c_peers].peer = next->id;
+                 peers[c_peers].m_head = NULL;
+                 peers[c_peers].m_tail = NULL;
+                 peers[c_peers].f = 1.0 / c_mechs;
+               }
+             mechanisms[c_mechs].addr = a_next;
+             mechanisms[c_mechs].col_index = c_mechs;
+             mechanisms[c_mechs].peer = &peers[c_peers];
+             mechanisms[c_mechs].next = NULL;
+             mechanisms[c_mechs].plugin = r_next->plugin;
+             mechanisms[c_mechs].ressources = a_next->ressources;
+             mechanisms[c_mechs].quality = a_next->quality;
+             GNUNET_CONTAINER_DLL_insert_tail(peers[c_peers].m_head,
+                                              peers[c_peers].m_tail,
+                                              &mechanisms[c_mechs]);
+             found_addresses = GNUNET_YES;
+             c_mechs++;              
+             a_next = a_next->next;
+           }
+         r_next = r_next->next;
+       }
+      if (found_addresses == GNUNET_YES)
         c_peers++;
-    next = next->next;
-  }
+      next = next->next;
+    }
   c_mechs--;
   c_peers--;
   (*c_m) = c_mechs;
   (*c_p) = c_peers;
   (*p) = peers;
   (*m) = mechanisms;
-
-  GNUNET_STATISTICS_set(stats,
-                        gettext_noop ("# connected addresses"),
-                        connected_addresses,
-                        GNUNET_NO);
 }
 
+
 static void
 schedule_ats (void *cls,
               const struct GNUNET_SCHEDULER_TaskContext *tc)




reply via email to

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