Fully operational pgsql controller

This commit is contained in:
Grant Limberg 2018-10-24 12:06:17 -07:00
parent 7c0331997a
commit d87fcca176
4 changed files with 149 additions and 62 deletions

View file

@ -1610,18 +1610,20 @@ void EmbeddedNetworkController::_request(
if ( (ipRangeStartIA.ss_family == AF_INET) && (ipRangeEndIA.ss_family == AF_INET) ) {
uint32_t ipRangeStart = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeStartIA)->sin_addr.s_addr));
uint32_t ipRangeEnd = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeEndIA)->sin_addr.s_addr));
if ((ipRangeEnd < ipRangeStart)||(ipRangeStart == 0))
continue;
uint32_t ipRangeLen = ipRangeEnd - ipRangeStart;
// Start with the LSB of the member's address
uint32_t ipTrialCounter = (uint32_t)(identity.address().toInt() & 0xffffffff);
for(uint32_t k=ipRangeStart,trialCount=0;((k<=ipRangeEnd)&&(trialCount < 1000));++k,++trialCount) {
uint32_t ip = (ipRangeLen > 0) ? (ipRangeStart + (ipTrialCounter % ipRangeLen)) : ipRangeStart;
++ipTrialCounter;
if ((ip & 0x000000ff) == 0x000000ff)
if ((ip & 0x000000ff) == 0x000000ff) {
continue; // don't allow addresses that end in .255
}
// Check if this IP is within a local-to-Ethernet routed network
int routedNetmaskBits = -1;
@ -1659,7 +1661,7 @@ void EmbeddedNetworkController::_request(
}
}
}
// Issue a certificate of ownership for all static IPs
if (nc->staticIpCount) {
nc->certificatesOfOwnership[0] = CertificateOfOwnership(nwid,now,identity.address(),1);