Преглед на файлове

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

Adam Ierymenko преди 6 години
родител
ревизия
2ec53df7ab
променени са 1 файла, в които са добавени 5 реда и са изтрити 0 реда
  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)) {