summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
Diffstat (limited to 'service')
-rw-r--r--service/OneService.cpp6
1 files changed, 2 insertions, 4 deletions
diff --git a/service/OneService.cpp b/service/OneService.cpp
index 35f8e806..7b3c4ff6 100644
--- a/service/OneService.cpp
+++ b/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);