in core/src/main/java/org/apache/ftpserver/impl/PassivePorts.java [74:118]
private static Set<Integer> parse(final String portsString) {
Set<Integer> passivePortsList = new HashSet<>();
boolean inRange = false;
Integer lastPort = Integer.valueOf(1);
StringTokenizer st = new StringTokenizer(portsString, ",;-", true);
while (st.hasMoreTokens()) {
String token = st.nextToken().trim();
if (",".equals(token) || ";".equals(token)) {
if (inRange) {
fillRange(passivePortsList, lastPort, MAX_PORT_INTEGER);
}
// reset state
lastPort = Integer.valueOf(1);
inRange = false;
} else if ("-".equals(token)) {
inRange = true;
} else if (token.length() == 0) {
// ignore whitespace
} else {
Integer port = Integer.valueOf(token);
verifyPort(port);
if (inRange) {
// add all numbers from last int
fillRange(passivePortsList, lastPort, port);
inRange = false;
}
addPort(passivePortsList, port);
lastPort = port;
}
}
if (inRange) {
fillRange(passivePortsList, lastPort, MAX_PORT_INTEGER);
}
return passivePortsList;
}