Improvement to isInRange method in SubnetUtil.SubnetInfo class --------------------------------------------------------------
Key: NET-282 URL: https://issues.apache.org/jira/browse/NET-282 Project: Commons Net Issue Type: Improvement Affects Versions: 2.0 Environment: All Reporter: Scott Davis 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): {code} private boolean isInRange(int address) { int normal = address - this.low; return (normal >= 0 && normal <= (this.high - this.low)) } {code} 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): {code} private boolean isInRange(int address) { int normal = address - this.network; return (normal >= 0 && normal <= (this.broadcast - this.network)) } {code} Polymorphism route: {code} 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)); } {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.