Bläddra i källkod

Put a limit on the multicast TX queue to prevent memory use ridiculousness.

Adam Ierymenko 6 år sedan
förälder
incheckning
2ec53df7ab
1 ändrade filer med 5 tillägg och 0 borttagningar
  1. 5 0
      node/Multicaster.cpp

+ 5 - 0
node/Multicaster.cpp

@@ -275,6 +275,11 @@ void Multicaster::send(
 				}
 			}
 		} else {
+			if (gs.txQueue.size() >= ZT_TX_QUEUE_SIZE) {
+				RR->t->outgoingNetworkFrameDropped(tPtr,network,src,mg.mac(),etherType,0,len,"multicast TX queue is full");
+				return;
+			}
+
 			const unsigned int gatherLimit = (limit - (unsigned int)gs.members.size()) + 1;
 
 			if ((gs.members.empty())||((now - gs.lastExplicitGather) >= ZT_MULTICAST_EXPLICIT_GATHER_DELAY)) {