Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
2.0
-
None
-
None
-
All
Description
I am very pleased to see that the isInRange bug has been corrected in 2.1. I would like to suggest the additional change to the isInRange method (or perhaps some polymorphism).
Current:
private boolean isInRange(int address)
{ return ((address-low()) <= (high()-low())); }Proposed Fix (I saw in another bug ticket):
private boolean isInRange(int address) { int normal = address - this.low; return (normal >= 0 && normal <= (this.high - this.low)) }
I would argue that the network address and the broadcast address, while not viable IPs to be assigned, are still technically in the range of the network, so I would request that the method be updated as follows (or perhaps a new method or flag you could pass to determine if you want to include the network and broadcast address):
private boolean isInRange(int address) { int normal = address - this.network; return (normal >= 0 && normal <= (this.broadcast - this.network)) }
Polymorphism route:
private boolean isInRange(int address) { return isInRange(address, false); } private boolean isInRange(int address, boolean fullRange) { int myLow; int myHigh; if (fullRange) { myLow = this.network; myHigh = this.broadast; } else { myLow = this.low; myHigh = this.high; } int normal = address - myLow; return (normal >= 0 && normal <= (myHigh - myLow)); }