gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r10512 - gnunet/src/core


From: gnunet
Subject: [GNUnet-SVN] r10512 - gnunet/src/core
Date: Mon, 8 Mar 2010 15:31:37 +0100

Author: grothoff
Date: 2010-03-08 15:31:37 +0100 (Mon, 08 Mar 2010)
New Revision: 10512

Modified:
   gnunet/src/core/gnunet-service-core.c
Log:
notify transport about bw quota changes -- always

Modified: gnunet/src/core/gnunet-service-core.c
===================================================================
--- gnunet/src/core/gnunet-service-core.c       2010-03-08 13:57:10 UTC (rev 
10511)
+++ gnunet/src/core/gnunet-service-core.c       2010-03-08 14:31:37 UTC (rev 
10512)
@@ -963,11 +963,20 @@
   if (n != NULL) 
     {
       want_reserv = ntohl (rcm->reserve_inbound);
-      n->bw_out_internal_limit = rcm->limit_outbound;
-      n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_internal_limit,
-                                             n->bw_out_external_limit);
-      GNUNET_BANDWIDTH_tracker_update_quota (&n->available_recv_window,
-                                            n->bw_out);
+      if (n->bw_out_internal_limit.value__ != rcm->limit_outbound.value__)
+       {
+         n->bw_out_internal_limit = rcm->limit_outbound;
+         n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_internal_limit,
+                                                 n->bw_out_external_limit);
+         GNUNET_BANDWIDTH_tracker_update_quota (&n->available_recv_window,
+                                                n->bw_out);
+         GNUNET_TRANSPORT_set_quota (transport,
+                                     &n->peer,
+                                     n->bw_in,
+                                     n->bw_out,
+                                     GNUNET_TIME_UNIT_FOREVER_REL,
+                                     NULL, NULL); 
+       }
       if (want_reserv < 0)
         {
          got_reserv = want_reserv;
@@ -1640,7 +1649,8 @@
           *priority += pos->priority;
 #if DEBUG_CORE
          GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-                     "Adding plaintext message with deadline %llu ms to 
batch\n",
+                     "Adding plaintext message of size %u with deadline %llu 
ms to batch\n",
+                     pos->size,
                      GNUNET_TIME_absolute_get_remaining (pos->deadline).value);
 #endif
           deadline->value = GNUNET_MIN (deadline->value, pos->deadline.value);
@@ -2600,11 +2610,20 @@
       return;
     case PEER_STATE_KEY_RECEIVED:
       n->status = PEER_STATE_KEY_CONFIRMED;
-      n->bw_out_external_limit = t.inbound_bw_limit;
-      n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_external_limit,
-                                             n->bw_out_internal_limit);
-      GNUNET_BANDWIDTH_tracker_update_quota (&n->available_send_window,
-                                            n->bw_out);
+      if (n->bw_out_external_limit.value__ != t.inbound_bw_limit.value__)
+       {
+         n->bw_out_external_limit = t.inbound_bw_limit;
+         n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_external_limit,
+                                                 n->bw_out_internal_limit);
+         GNUNET_BANDWIDTH_tracker_update_quota (&n->available_send_window,
+                                                n->bw_out);       
+         GNUNET_TRANSPORT_set_quota (transport,
+                                     &n->peer,
+                                     n->bw_in,
+                                     n->bw_out,
+                                     GNUNET_TIME_UNIT_FOREVER_REL,
+                                     NULL, NULL); 
+       }
 #if DEBUG_CORE
       GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                   "Confirmed key via `%s' message for peer `%4s'\n",
@@ -3061,18 +3080,24 @@
     }
 
   /* process decrypted message(s) */
-#if DEBUG_CORE_QUOTA
   if (n->bw_out_external_limit.value__ != pt->inbound_bw_limit.value__)
-    GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
-               "Received %u b/s as new inbound limit for peer `%4s'\n",
-               (unsigned int) ntohl (pt->inbound_bw_limit.value__),
-               GNUNET_i2s (&n->peer));
-#endif
-  n->bw_out_external_limit = pt->inbound_bw_limit;
-  n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_external_limit,
-                                         n->bw_out_internal_limit);
-  GNUNET_BANDWIDTH_tracker_update_quota (&n->available_send_window,
-                                        n->bw_out);
+    {
+      GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+                 "Received %u b/s as new inbound limit for peer `%4s'\n",
+                 (unsigned int) ntohl (pt->inbound_bw_limit.value__),
+                 GNUNET_i2s (&n->peer));
+      n->bw_out_external_limit = pt->inbound_bw_limit;
+      n->bw_out = GNUNET_BANDWIDTH_value_min (n->bw_out_external_limit,
+                                             n->bw_out_internal_limit);
+      GNUNET_BANDWIDTH_tracker_update_quota (&n->available_send_window,
+                                            n->bw_out);
+      GNUNET_TRANSPORT_set_quota (transport,
+                                 &n->peer,
+                                 n->bw_in,
+                                 n->bw_out,
+                                 GNUNET_TIME_UNIT_FOREVER_REL,
+                                 NULL, NULL); 
+    }
   n->last_activity = GNUNET_TIME_absolute_get ();
   off = sizeof (struct EncryptedMessage);
   deliver_messages (n, buf, size, off);
@@ -3337,7 +3362,13 @@
   cnm.latency = GNUNET_TIME_relative_hton (n->last_latency);
   cnm.peer = *peer;
   send_to_all_clients (&cnm.header, GNUNET_YES, 
GNUNET_CORE_OPTION_SEND_PRE_CONNECT);
-  send_key (n);
+  GNUNET_TRANSPORT_set_quota (transport,
+                             &n->peer,
+                             n->bw_in,
+                             n->bw_out,
+                             GNUNET_TIME_UNIT_FOREVER_REL,
+                             NULL, NULL);
+  send_key (n); 
 }
 
 





reply via email to

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