gnunet-svn
[Top][All Lists]
Advanced

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

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


From: gnunet
Subject: [GNUnet-SVN] r35001 - gnunet/src/transport
Date: Sun, 25 Jan 2015 22:28:06 +0100

Author: grothoff
Date: 2015-01-25 22:28:06 +0100 (Sun, 25 Jan 2015)
New Revision: 35001

Modified:
   gnunet/src/transport/gnunet-service-transport.c
Log:
fix shutdown order to destroy sessions first, fix logic failure with respect to 
bi-directional transports like UNIX

Modified: gnunet/src/transport/gnunet-service-transport.c
===================================================================
--- gnunet/src/transport/gnunet-service-transport.c     2015-01-25 21:27:31 UTC 
(rev 35000)
+++ gnunet/src/transport/gnunet-service-transport.c     2015-01-25 21:28:06 UTC 
(rev 35001)
@@ -732,11 +732,15 @@
               session,
               GNUNET_i2s (&address->peer),
               GST_plugins_a2s (address));
-  if (GNUNET_YES ==
-      GNUNET_HELLO_address_check_option (address,
-                                         GNUNET_HELLO_ADDRESS_INFO_INBOUND))
+  if ( (GNUNET_YES ==
+        GNUNET_HELLO_address_check_option (address,
+                                           GNUNET_HELLO_ADDRESS_INFO_INBOUND)) 
||
+       (GNUNET_NO ==
+        GST_ats_is_known (address, session) ) )
   {
-    /* inbound is always new */
+    /* inbound is always new, but outbound MAY already be known, but
+       for example for UNIX, we have symmetric connections and thus we
+       may not know the address yet; add if necessary! */
     GST_ats_add_address (address,
                          session,
                          ats,
@@ -744,7 +748,6 @@
   }
   else
   {
-    /* outbound should already be known */
     GST_ats_new_session (address,
                          session);
     GST_ats_update_metrics (address,
@@ -923,8 +926,8 @@
                const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   GST_neighbours_stop ();
+  GST_plugins_unload ();
   GST_validation_stop ();
-  GST_plugins_unload ();
   GST_ats_done ();
   GNUNET_ATS_scheduling_done (GST_ats);
   GST_ats = NULL;




reply via email to

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