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.