gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r27831 - gnunet/src/ats


From: gnunet
Subject: [GNUnet-SVN] r27831 - gnunet/src/ats
Date: Tue, 9 Jul 2013 16:33:24 +0200

Author: wachs
Date: 2013-07-09 16:33:24 +0200 (Tue, 09 Jul 2013)
New Revision: 27831

Modified:
   gnunet/src/ats/gnunet-service-ats_addresses.c
Log:
fixed adding addresses with updated networks


Modified: gnunet/src/ats/gnunet-service-ats_addresses.c
===================================================================
--- gnunet/src/ats/gnunet-service-ats_addresses.c       2013-07-09 14:19:19 UTC 
(rev 27830)
+++ gnunet/src/ats/gnunet-service-ats_addresses.c       2013-07-09 14:33:24 UTC 
(rev 27831)
@@ -761,8 +761,8 @@
   uint32_t atsi_delta_count;
   uint32_t addr_net;
   uint32_t previous_session;
+  int c1;
 
-
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
               "Received `%s' for peer `%s'\n",
               "ADDRESS ADD",
@@ -792,8 +792,8 @@
                       &peer->hashPubKey, new_address,
                       GNUNET_CONTAINER_MULTIHASHMAPOPTION_MULTIPLE));
 
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding new address for peer `%s' 
session id %u, %p\n",
-                GNUNET_i2s (peer), session_id, new_address);
+    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Adding new address %p for peer `%s' 
session id %u, %s\n",
+               new_address, GNUNET_i2s (peer), session_id, 
GNUNET_ATS_print_network_type(addr_net));
 
     /* Tell solver about new address */
     handle->s_add (handle->solver, new_address, addr_net);
@@ -826,6 +826,16 @@
       return;
   }
 
+  addr_net = get_performance_info (existing_address, GNUNET_ATS_NETWORK_TYPE);
+  if (GNUNET_ATS_VALUE_UNDEFINED == addr_net)
+               addr_net = GNUNET_ATS_NET_UNSPECIFIED;
+
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+           "Found existing address for peer `%s' %p with new session %u in 
network %s\n",
+           GNUNET_i2s (peer),
+           existing_address,
+           session_id,
+           GNUNET_ATS_print_network_type (addr_net));
   /* We have an address without an session, update this address */
   atsi_delta = NULL;
   atsi_delta_count = 0;
@@ -840,6 +850,19 @@
                                existing_address->assigned_bw_out,
                                existing_address->assigned_bw_in);
 
+               for (c1 = 0; c1 < atsi_delta_count; c1++)
+               {
+                       if (GNUNET_ATS_NETWORK_TYPE == ntohl 
(atsi_delta[c1].type))
+                       {
+                               /* Network type changed */
+                               GNUNET_break (0);
+                       handle->s_address_update_network (handle->solver, 
existing_address,
+                                       ntohl (atsi_delta[c1].value),
+                                       get_performance_info (existing_address, 
GNUNET_ATS_NETWORK_TYPE));
+                       addr_net = get_performance_info (existing_address, 
GNUNET_ATS_NETWORK_TYPE);
+                       }
+               }
+
                /* Notify solver about update with atsi information and session 
*/
          handle->s_bulk_start (handle->solver);
          GAS_normalization_normalize_property (handle->addresses, 
existing_address, atsi, atsi_count);
@@ -854,8 +877,11 @@
                previous_session, session_id);
 
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-           "Updated existing address for peer `%s' %p with new session %u\n",
-           GNUNET_i2s (peer), existing_address, session_id);
+           "Updated existing address for peer `%s' %p with new session %u in 
network %s\n",
+           GNUNET_i2s (peer),
+           existing_address,
+           session_id,
+           GNUNET_ATS_print_network_type(addr_net));
 }
 
 
@@ -930,7 +956,6 @@
   if (GNUNET_YES == disassemble_ats_information (aa, atsi, atsi_count, 
&atsi_delta, &atsi_delta_count))
   {
        /* ATS properties changed */
-
        for (c1 = 0; c1 < atsi_delta_count; c1++)
        {
                if (GNUNET_ATS_NETWORK_TYPE == ntohl (atsi_delta[c1].type))




reply via email to

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