summaryrefslogtreecommitdiff
path: root/branches/1.x_Branch
diff options
context:
space:
mode:
authorchrismair <chrismair@531de8e6-9941-0410-b38b-9a92acbe0330>2008-08-14 01:23:06 +0000
committerchrismair <chrismair@531de8e6-9941-0410-b38b-9a92acbe0330>2008-08-14 01:23:06 +0000
commit254c01447f5bf3126beea9d54b192c36669f7751 (patch)
treedc9447ca261e3e266b1775ee8339e6a27cbde41b /branches/1.x_Branch
parent8d76c14c2b733a4cb61da029a527fc36ca4ac51c (diff)
downloadmockftpserver-254c01447f5bf3126beea9d54b192c36669f7751.tar.gz
Parse host ip numbers as unsigned bytes (bug #2047355)
git-svn-id: svn://svn.code.sf.net/p/mockftpserver/code@93 531de8e6-9941-0410-b38b-9a92acbe0330
Diffstat (limited to 'branches/1.x_Branch')
-rw-r--r--branches/1.x_Branch/src/main/java/org/mockftpserver/stub/command/PortCommandHandler.java19
-rw-r--r--branches/1.x_Branch/src/test/java/org/mockftpserver/stub/command/PortCommandHandlerTest.java4
2 files changed, 17 insertions, 6 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));
+ }
+
}
diff --git a/branches/1.x_Branch/src/test/java/org/mockftpserver/stub/command/PortCommandHandlerTest.java b/branches/1.x_Branch/src/test/java/org/mockftpserver/stub/command/PortCommandHandlerTest.java
index bc2a1be..cdaad25 100644
--- a/branches/1.x_Branch/src/test/java/org/mockftpserver/stub/command/PortCommandHandlerTest.java
+++ b/branches/1.x_Branch/src/test/java/org/mockftpserver/stub/command/PortCommandHandlerTest.java
@@ -35,10 +35,10 @@ import org.mockftpserver.stub.command.PortCommandHandler;
public final class PortCommandHandlerTest extends AbstractCommandHandlerTest {
private static final Logger LOG = Logger.getLogger(PortCommandHandlerTest.class);
- private static final String[] PARAMETERS = new String[] { "11", "22", "33", "44", "1", "206" };
+ private static final String[] PARAMETERS = new String[] { "192", "22", "250", "44", "1", "206" };
private static final String[] PARAMETERS_INSUFFICIENT = new String[] {"7", "29", "99", "11", "77"};
private static final int PORT = (1 << 8) + 206;
- private static final InetAddress HOST = inetAddress("11.22.33.44");
+ private static final InetAddress HOST = inetAddress("192.22.250.44");
private PortCommandHandler commandHandler;