Pārlūkot izejas kodu

No reason to randomly pick uPnP secondary port. In fact it would likely cause problems on restarts and uPnP rule bloat.

Adam Ierymenko 10 gadi atpakaļ
vecāks
revīzija
72e7e36a5b
1 mainītis faili ar 2 papildinājumiem un 4 dzēšanām
  1. 2 4
      service/OneService.cpp

+ 2 - 4
service/OneService.cpp

@@ -493,10 +493,8 @@ public:
 		// (cough Ubiquity Edge cough) barf up a lung if you do both conventional
 		// NAT-t and uPnP from behind the same port. I think this is a bug, but
 		// everyone else's router bugs are our problem. :P
-		for(int k=0;k<256;++k) {
-			unsigned int randp = 0;
-			Utils::getSecureRandom(&randp,sizeof(randp));
-			unsigned int upnport = 40000 + (randp % 25500);
+		for(int k=0;k<512;++k) {
+			unsigned int upnport = 40000 + (((port + 1) * (k + 1)) % 25500);
 
 			_v4UpnpLocalAddress = InetAddress(0,upnport);
 			_v4UpnpUdpSocket = _phy.udpBind((const struct sockaddr *)&_v4UpnpLocalAddress,reinterpret_cast<void *>(&_v4UpnpLocalAddress),131072);