Fully operational pgsql controller
This commit is contained in:
parent
7c0331997a
commit
d87fcca176
4 changed files with 149 additions and 62 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue