also count messages dropped due to slow clients as allowable losses in unreliable...
authorChristian Grothoff <christian@grothoff.org>
Fri, 27 Jan 2017 21:27:31 +0000 (22:27 +0100)
committerChristian Grothoff <christian@grothoff.org>
Fri, 27 Jan 2017 21:27:31 +0000 (22:27 +0100)
src/cadet/gnunet-service-cadet-new_channel.c
src/cadet/test_cadet.c

index ebc566c833c70513d18f6f2dfb5d56bcd59deb18..8633e7f74574029661c521cc444b27cb7b46b9ef 100644 (file)
@@ -1242,6 +1242,13 @@ GCCH_handle_channel_plaintext_data (struct CadetChannel *ch,
 
       /* Yep, need to drop. Drop the oldest message in
          the buffer. */
+      LOG (GNUNET_ERROR_TYPE_DEBUG,
+           "Queue full due slow client on %s, dropping oldest message\n",
+           GCCH_2s (ch));
+      GNUNET_STATISTICS_update (stats,
+                                "# messages dropped due to slow client",
+                                1,
+                                GNUNET_NO);
       drop = ccc->head_recv;
       GNUNET_CONTAINER_DLL_remove (ccc->head_recv,
                                    ccc->tail_recv,
index 79d9423fd05fbc5e1f940c9d53973ba6d8ec0d17..9957d9021168a49598fd64936aec75eb17978a20 100644 (file)
@@ -395,7 +395,8 @@ stats_iterator (void *cls,
 {
   static const char *s_sent = "# keepalives sent";
   static const char *s_recv = "# keepalives received";
-  static const char *drops = "# messages dropped due to full buffer";
+  static const char *rdrops = "# messages dropped due to full buffer";
+  static const char *cdrops = "# messages dropped due to slow client";
   uint32_t i;
 
   i = GNUNET_TESTBED_get_index (peer);
@@ -409,7 +410,9 @@ stats_iterator (void *cls,
     ka_sent = value;
   if (0 == strncmp(s_recv, name, strlen (s_recv)) && peers_requested - 1 == i)
     ka_received = value;
-  if (0 == strncmp(drops, name, strlen (drops)))
+  if (0 == strncmp(rdrops, name, strlen (rdrops)))
+    msg_dropped += value;
+  if (0 == strncmp(cdrops, name, strlen (cdrops)))
     msg_dropped += value;
 
   return GNUNET_OK;