diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-09-28 15:28:30 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2015-09-28 15:28:30 -0700 |
commit | a7bd1eaa409a5532c30ac5990a32289496d7ed3e (patch) | |
tree | 712df044a20f2b8a63c6ea53cf93f69781f36389 /controller | |
parent | 2d0adb562d4d710fe8db87ad47a50e334f3fafbf (diff) | |
download | infinitytier-a7bd1eaa409a5532c30ac5990a32289496d7ed3e.tar.gz infinitytier-a7bd1eaa409a5532c30ac5990a32289496d7ed3e.zip |
Never assign v4 IPs ending in .255 even within range.
Diffstat (limited to 'controller')
-rw-r--r-- | controller/SqliteNetworkController.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp index d16c5996..3aa84330 100644 --- a/controller/SqliteNetworkController.cpp +++ b/controller/SqliteNetworkController.cpp @@ -1742,6 +1742,8 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c for(uint32_t k=ipRangeStart,l=0;(k<=ipRangeEnd)&&(l < 1000000);++k,++l) { uint32_t ip = (ipRangeLen > 0) ? (ipRangeStart + (ipTrialCounter % ipRangeLen)) : ipRangeStart; ++ipTrialCounter; + if ((ip & 0x000000ff) == 0x000000ff) + continue; // don't allow addresses that end in .255 for(std::vector< std::pair<uint32_t,int> >::const_iterator r(routedNetworks.begin());r!=routedNetworks.end();++r) { if ((ip & (0xffffffff << (32 - r->second))) == r->first) { |