]> oss.titaniummirror.com Git - tinyos-2.x.git/commitdiff
stricter check for packet type
authorandreaskoepke <andreaskoepke>
Wed, 24 Jun 2009 10:11:35 +0000 (10:11 +0000)
committerandreaskoepke <andreaskoepke>
Wed, 24 Jun 2009 10:11:35 +0000 (10:11 +0000)
support/sdk/cpp/sf/serialcomm.cpp

index ff6901e9fc158e1a7e550706169ef345ca4b684d..a5869f1c6a0cd99dfedaf5076fdab60d02f96c07 100644 (file)
@@ -435,6 +435,8 @@ bool SerialComm::readPacket(SFPacket &pPacket)
                     count = 0;
                 }
                 else {
+                    bool dobreak = true;
+                    DEBUG("SerialComm::readPacket : frame size = " << count);
                     if(checkCrc(buffer, count)) {
                         pPacket.setType(buffer[typeOffset]);
                         pPacket.setSeqno(buffer[seqnoOffset]);
@@ -448,11 +450,12 @@ bool SerialComm::readPacket(SFPacket &pPacket)
                             pPacket.setPayload((char *)(&buffer[payloadOffset]), count+1 - serialHeaderBytes);
                             break;
                         default:
+                            dobreak = false;
                             DEBUG("SerialComm::readPacket : unknown packet type = " \
                                   << static_cast<uint16_t>(buffer[typeOffset] & 0xff));
                             break;
                         }
-                        break; // leave loop
+                        if(dobreak) break; // leave loop
                     }
                     else {
                         DEBUG("SerialComm::readPacket : bad crc");