Переглянути джерело

A few more tweaks to MC algo...

Adam Ierymenko 10 роки тому
батько
коміт
acac88cf77
1 змінених файлів з 3 додано та 3 видалено
  1. 3 3
      node/Multicaster.cpp

+ 3 - 3
node/Multicaster.cpp

@@ -192,7 +192,7 @@ void Multicaster::send(
 			nwid,
 			nwid,
 			com,
 			com,
 			limit,
 			limit,
-			2, // we'll still gather a little from peers to keep multicast list fresh
+			1, // we'll still gather a little from peers to keep multicast list fresh
 			src,
 			src,
 			mg,
 			mg,
 			etherType,
 			etherType,
@@ -214,7 +214,7 @@ void Multicaster::send(
 		}
 		}
 
 
 		unsigned long idx = 0;
 		unsigned long idx = 0;
-		while (count < limit) {
+		while (count < limit) { // limit <= gs.members.size() so idx will never overflow here
 			const MulticastGroupMember &m = gs.members[indexes[idx++]];
 			const MulticastGroupMember &m = gs.members[indexes[idx++]];
 
 
 			{ // TODO / LEGACY: don't send new multicast frame to old peers (if we know their version)
 			{ // TODO / LEGACY: don't send new multicast frame to old peers (if we know their version)
@@ -246,7 +246,7 @@ void Multicaster::send(
 				outp.armor(sn->key(),true);
 				outp.armor(sn->key(),true);
 				sn->send(RR,outp.data(),outp.size(),now);
 				sn->send(RR,outp.data(),outp.size(),now);
 			}
 			}
-			gatherLimit = 0; // don't need to gather from peers this time since we consulted the core
+			gatherLimit = 1; // we still gather a bit from peers as well
 		}
 		}
 
 
 		gs.txQueue.push_back(OutboundMulticast());
 		gs.txQueue.push_back(OutboundMulticast());