Return-Path: Delivered-To: apmail-incubator-qpid-commits-archive@locus.apache.org Received: (qmail 89957 invoked from network); 16 Apr 2007 21:20:35 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Apr 2007 21:20:35 -0000 Received: (qmail 83992 invoked by uid 500); 16 Apr 2007 21:20:41 -0000 Delivered-To: apmail-incubator-qpid-commits-archive@incubator.apache.org Received: (qmail 83958 invoked by uid 500); 16 Apr 2007 21:20:41 -0000 Mailing-List: contact qpid-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: qpid-dev@incubator.apache.org Delivered-To: mailing list qpid-commits@incubator.apache.org Delivered-To: moderator for qpid-commits@incubator.apache.org Received: (qmail 63835 invoked by uid 99); 16 Apr 2007 21:12:25 -0000 X-ASF-Spam-Status: No, hits=-99.5 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r529402 - /incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Date: Mon, 16 Apr 2007 21:11:57 -0000 To: qpid-commits@incubator.apache.org From: tejeswar@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20070416211157.E65601A9838@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: tejeswar Date: Mon Apr 16 14:11:57 2007 New Revision: 529402 URL: http://svn.apache.org/viewvc?view=rev&rev=529402 Log: Fix for QPID-439 Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Modified: incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java?view=diff&rev=529402&r1=529401&r2=529402 ============================================================================== --- incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java (original) +++ incubator/qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/Main.java Mon Apr 16 14:11:57 2007 @@ -67,6 +67,10 @@ private static final String DEFAULT_CONFIG_FILE = "etc/config.xml"; private static final String DEFAULT_LOG_CONFIG_FILENAME = "log4j.xml"; + + private static final int IPV4_ADDRESS_LENGTH = 4; + + private static final char IPV4_LITERAL_SEPARATOR = '.'; protected static class InitException extends Exception { @@ -376,26 +380,30 @@ private byte[] parseIP(String address) throws Exception { - StringTokenizer tokenizer = new StringTokenizer(address, "."); - byte[] ip = new byte[4]; - int index = 0; - while (tokenizer.hasMoreTokens()) + char[] literalBuffer = address.toCharArray(); + int byteCount = 0; + int currByte = 0; + byte[] ip = new byte[IPV4_ADDRESS_LENGTH]; + for (int i = 0 ; i < literalBuffer.length ; i++) { - String token = tokenizer.nextToken(); - try + char currChar = literalBuffer[i]; + if ((currChar >= '0') && (currChar <= '9')) { - ip[index++] = Byte.parseByte(token); - } - catch (NumberFormatException e) + currByte = (currByte * 10) + (Character.digit(currChar, 10) & 0xFF); + } + + if (currChar == IPV4_LITERAL_SEPARATOR || (i + 1 == literalBuffer.length)) { - throw new Exception("Error parsing IP address: " + address, e); - } + ip[byteCount++] = (byte)currByte; + currByte = 0; + } } - if (index != 4) + + if (byteCount != 4) { throw new Exception("Invalid IP address: " + address); - } - return ip; + } + return ip; } private void configureLogging(File logConfigFile, String logWatchConfig)