Browse Source

Also exclude upstream when picking supernode for multicast propagation, to not bounce back and forth to the same supernode.

Adam Ierymenko 12 years ago
parent
commit
a6f4de8172
1 changed files with 4 additions and 1 deletions
  1. 4 1
      node/Multicaster.hpp

+ 4 - 1
node/Multicaster.hpp

@@ -263,7 +263,10 @@ public:
 		// Add a supernode if there are fewer than the desired
 		// Add a supernode if there are fewer than the desired
 		// number of recipients.
 		// number of recipients.
 		if (chosen < max) {
 		if (chosen < max) {
-			P peer = topology.getBestSupernode(&originalSubmitter,1,true);
+			Address avoid[2];
+			avoid[0] = originalSubmitter;
+			avoid[1] = upstream;
+			P peer = topology.getBestSupernode(avoid,2,true);
 			if (peer)
 			if (peer)
 				peers[chosen++] = peer;
 				peers[chosen++] = peer;
 		}
 		}