Try to keep the cadet->code MQ from growing too large
authorDavid Barksdale <amatus@amat.us>
Thu, 11 Jan 2018 03:48:05 +0000 (21:48 -0600)
committerDavid Barksdale <amatus@amat.us>
Thu, 11 Jan 2018 03:48:05 +0000 (21:48 -0600)
src/cadet/gnunet-service-cadet_peer.c

index da78a03c400a0e2d680b9273c1fbc63d83614e52..05555e693ab1167e6a7cbc8af5447231471c4ca0 100644 (file)
  */
 #define IDLE_PATH_TIMEOUT GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MINUTES, 2)
 
-
+/**
+ * Queue size when we start dropping OOO messages.
+ */
+#define MAX_OOO_QUEUE_SIZE  100
 
 
 /**
@@ -1464,6 +1467,11 @@ GCP_send_ooo (struct CadetPeer *cp,
     GNUNET_MQ_discard (env);
     return;
   }
+  if (GNUNET_MQ_get_length (cp->core_mq) > MAX_OOO_QUEUE_SIZE)
+  {
+    GNUNET_MQ_discard (env);
+    return;
+  }
   GNUNET_MQ_notify_sent (env,
                          &mqm_send_done,
                          cp);