summaryrefslogtreecommitdiff
path: root/branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java')
-rw-r--r--branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java19
1 files changed, 15 insertions, 4 deletions
diff --git a/branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java b/branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java
index aebfa64..f815fab 100644
--- a/branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java
+++ b/branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java
@@ -91,10 +91,10 @@ public final class PortCommandHandler extends AbstractStubCommandHandler impleme
static InetAddress parseHost(String[] parameters) throws UnknownHostException {
verifySufficientParameters(parameters);
- byte host1 = Byte.parseByte(parameters[0]);
- byte host2 = Byte.parseByte(parameters[1]);
- byte host3 = Byte.parseByte(parameters[2]);
- byte host4 = Byte.parseByte(parameters[3]);
+ byte host1 = parseByte(parameters[0]);
+ byte host2 = parseByte(parameters[1]);
+ byte host3 = parseByte(parameters[2]);
+ byte host4 = parseByte(parameters[3]);
byte[] address = { host1, host2, host3, host4 };
InetAddress inetAddress = InetAddress.getByAddress(address);
@@ -139,4 +139,15 @@ public final class PortCommandHandler extends AbstractStubCommandHandler impleme
Assert.isTrue(parameters.length >= 6, "The PORT command must contain least be 6 parameters: " + Arrays.asList(parameters));
}
+ /**
+ * Parse the specified String as an unsigned decimal byte value (i.e., 0..255). We can't just use
+ * Byte.parseByte(string) because that parses the string as a signed byte.
+ *
+ * @param string - the String containing the decimal byte representation to be parsed
+ * @return the byte value
+ */
+ private static byte parseByte(String string) {
+ return (byte) (0xFF & Short.parseShort(string));
+ }
+
}