public void testPacketWithAck() { byte[] packet = new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //Sequence number 0 (byte)0x01, //1 ack (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x01}; //Ack for packet range [0..0] of length 1 NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(1, r.getAcks().size()); assertTrue(r.getAcks().contains(Integer.valueOf(0))); assertEquals(0, r.getFragments().size()); assertFalse(r.getError()); }
Logger.minor(this, "Sending packet " + packet.getSequenceNumber() + " (" + data.length + " bytes) with fragments " + fragments + " and " + packet.getAcks().size() + " acks on "+this); keyContext.sent(packet.getSequenceNumber(), packet.getLength());
public void testEmptyPacket() { byte[] packet = new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //Sequence number 0 (byte)0x00}; // 0 acks NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(0, r.getAcks().size()); assertEquals(0, r.getFragments().size()); assertFalse(r.getError()); }
public void testPacketWithAcks() { byte[] packet = new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //Sequence number 0 (byte)0x03, //3 ack ranges (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x05, (byte)0x01, //Ack for packet 5 (byte)0x05, (byte)0x02, //Ack range for packets [10..11] of size 2 (byte)0x00 /*Far-range marker*/, (byte)0x00, (byte)0x0F, (byte)0x57, (byte)0xF3 /*Ack id (1005555)*/, (byte) 0x05 /*Range size*/}; NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(8, r.getAcks().size()); assertTrue(r.getAcks().contains(Integer.valueOf(5))); assertTrue(r.getAcks().contains(Integer.valueOf(10))); assertTrue(r.getAcks().contains(Integer.valueOf(11))); assertTrue(r.getAcks().contains(Integer.valueOf(1005555))); assertTrue(r.getAcks().contains(Integer.valueOf(1005556))); assertTrue(r.getAcks().contains(Integer.valueOf(1005557))); assertTrue(r.getAcks().contains(Integer.valueOf(1005558))); assertTrue(r.getAcks().contains(Integer.valueOf(1005559))); assertEquals(0, r.getFragments().size()); assertFalse(r.getError()); }
public void testReceiveSequenceNumber() { byte[] packet = new byte[] { (byte)0x01, (byte)0x02, (byte)0x04, (byte)0x08, //Sequence number (byte)0x00}; // 0 acks NPFPacket r = NPFPacket.create(packet, pn); assertEquals(16909320, r.getSequenceNumber()); assertEquals(0, r.getAcks().size()); assertEquals(0, r.getFragments().size()); assertFalse(r.getError()); }
int seqno = packet.getSequenceNumber(); int acksQueued = keyContext.queueAck(seqno); boolean addedAck = acksQueued >= 0;
public void testReceiveLongFragmentedMessage() { byte[] packetNoData = new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //Sequence number (0) (byte)0x00, //0 acks (byte)0x50, (byte)0x00, (byte) 0x00, (byte) 0x00, // Flags (long, fragmented, not first) and messageID 0 (byte)0x01, (byte)0x01, //Fragment length (byte)0x01, (byte)0x01}; //Fragment offset byte[] packet = new byte[packetNoData.length + 257]; System.arraycopy(packetNoData, 0, packet, 0, packetNoData.length); NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(0, r.getAcks().size()); assertEquals(1, r.getFragments().size()); MessageFragment f = r.getFragments().get(0); assertFalse(f.shortMessage); assertFalse(f.firstFragment); assertTrue(f.isFragmented); assertEquals(257, f.fragmentLength); assertEquals(257, f.fragmentOffset); assertEquals(0, f.messageID); assertFalse(r.getError()); }
public void testPacketWithFragment() { byte[] packet = new byte[] { (byte)0x00, (byte)0x00, (byte)0x00, (byte)0x00, //Sequence number 0 (byte)0x00, // 0 acks (byte)0xB0, (byte)0x00, (byte)0x00, (byte)0x00,//Flags (short, first fragment and full id) and messageID 0 (byte)0x08, //Fragment length (byte)0x01, (byte)0x23, (byte)0x45, (byte)0x67, (byte)0x89, (byte)0xAB, (byte)0xCD, (byte)0xEF}; //Data NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(0, r.getAcks().size()); assertEquals(1, r.getFragments().size()); MessageFragment frag = r.getFragments().get(0); assertTrue(frag.shortMessage); assertFalse(frag.isFragmented); assertTrue(frag.firstFragment); assertEquals(0, frag.messageID); assertEquals(8, frag.fragmentLength); assertEquals(0, frag.fragmentOffset); assertEquals(8, frag.messageLength); assertTrue(Arrays.equals(frag.fragmentData, new byte[] { (byte)0x01, (byte)0x23, (byte)0x45, (byte)0x67, (byte)0x89, (byte)0xAB, (byte)0xCD, (byte)0xEF })); assertFalse(r.getError()); }
NPFPacket p = decipherFromSeqnum(buf, offset, length, sessionKey, sequenceNumber); if(p != null) { if(logMINOR) Logger.minor(this, "Received packet " + p.getSequenceNumber()+" on "+sessionKey); return p;
NPFPacket r = NPFPacket.create(packet, pn); assertEquals(0, r.getSequenceNumber()); assertEquals(0, r.getAcks().size()); assertEquals(2, r.getFragments().size());