[Beepcore-java-commits] CVS: beepcore-java/src/org/beepcore/beep/core Frame.java,1.14,1.15
Status: Beta
Brought to you by:
huston
From: Huston F. <hu...@us...> - 2001-11-27 16:05:02
|
Update of /cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core In directory usw-pr-cvs1:/tmp/cvs-serv14355/src/org/beepcore/beep/core Modified Files: Frame.java Log Message: Improved header parsing Index: Frame.java =================================================================== RCS file: /cvsroot/beepcore-java/beepcore-java/src/org/beepcore/beep/core/Frame.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** Frame.java 2001/11/27 07:31:21 1.14 --- Frame.java 2001/11/27 16:04:58 1.15 *************** *** 3,6 **** --- 3,7 ---- * * Copyright (c) 2001 Invisible Worlds, Inc. All rights reserved. + * Copyright (c) 2001 Huston Franklin. All rights reserved. * * The contents of this file are subject to the Blocks Public License (the *************** *** 25,28 **** --- 26,30 ---- import org.beepcore.beep.util.BufferSegment; + import org.beepcore.beep.util.HeaderParser; import org.beepcore.beep.util.Log; *************** *** 293,357 **** Log.logEntry(Log.SEV_DEBUG_VERBOSE, "Processing normal BEEP frame"); ! int limit = length; ! StringTokenizer st; ! try { ! st = new StringTokenizer(new String(headerBuffer, 0, length, ! "UTF-8")); ! } catch (UnsupportedEncodingException e) { ! throw new RuntimeException("UnsupportedEncodingException" + ! e.getMessage()); ! } ! ! int count = st.countTokens(); ! ! if (!(count == 6 || count == 7)) { ! Log.logEntry(Log.SEV_DEBUG, ! "Illegal header tokens=" + count + "\n" ! + new String(headerBuffer)); ! ! throw new BEEPException("Malformed BEEP Header"); ! } ! // Get Message Type ! // Kick out if we've maxed, or if the type gets set. ! int msgType = MessageType.getMessageType(st.nextToken()); ! ! // Read the Channel Number ! int channelNum = Integer.parseInt(st.nextToken()); ! ! // Read the Message Number ! int msgNum = Integer.parseInt(st.nextToken()); ! ! // Read the more flag ! char isLast = st.nextToken().charAt(0); ! ! boolean last; ! if (isLast == '*') { ! last = false; ! } else if (isLast == '.') { ! last = true; ! } else { ! ! Log.logEntry(Log.SEV_DEBUG, "lastFrame=" + isLast); ! ! throw new BEEPException("Malformed BEEP Header"); } - - // Sequence Number - long seqNum = Long.parseLong(st.nextToken()); ! // Size ! int size = Integer.parseInt(st.nextToken()); ! ! if (size < 0) { throw new BEEPException("Malformed BEEP Header"); - } - - int ansNum = -1; - if (count == 7) { - - // AnsNo - ansNum = Integer.parseInt(st.nextToken()); } --- 295,315 ---- Log.logEntry(Log.SEV_DEBUG_VERBOSE, "Processing normal BEEP frame"); ! HeaderParser header = new HeaderParser(headerBuffer, length); ! int msgType = ! MessageType.getMessageType(new String(header.parseType())); ! int channelNum = header.parseInt(); ! int msgNum = header.parseInt(); ! boolean last = header.parseLast(); ! long seqNum = header.parseUnsignedInt(); ! int size = header.parseInt(); ! int ansNum = -1; ! if (header.hasMoreTokens()) { ! ansNum = header.parseInt(); } ! if (header.hasMoreTokens()) { throw new BEEPException("Malformed BEEP Header"); } |