static { // SPDY UNKNOWN Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(0xFFFF); frames.writeByte(0xFF); frames.writeMedium(4); frames.writeInt(random.nextInt()); // SPDY NOOP Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(5); frames.writeInt(0); // SPDY Data Frame frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeByte(0x01); frames.writeMedium(1024); for (int i = 0; i < 256; i++) { frames.writeInt(random.nextInt()); } // SPDY SYN_STREAM Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(1); frames.writeByte(0x03); frames.writeMedium(12); frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeShort(0x8000); frames.writeShort(0); // SPDY SYN_REPLY Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(2); frames.writeByte(0x01); frames.writeMedium(8); frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeInt(0); // SPDY RST_STREAM Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(3); frames.writeInt(8); frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeInt(random.nextInt() | 0x01); // SPDY SETTINGS Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(4); frames.writeByte(0x01); frames.writeMedium(12); frames.writeInt(1); frames.writeMedium(random.nextInt()); frames.writeByte(0x03); frames.writeInt(random.nextInt()); // SPDY PING Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(6); frames.writeInt(4); frames.writeInt(random.nextInt()); // SPDY GOAWAY Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(7); frames.writeInt(4); frames.writeInt(random.nextInt() & 0x7FFFFFFF); // SPDY HEADERS Frame frames.writeByte(0x80); frames.writeByte(2); frames.writeShort(8); frames.writeInt(4); frames.writeInt(random.nextInt() & 0x7FFFFFFF); }
private static ChannelBuffer createFrames(int version) { int length = version < 3 ? 1176 : 1174; ChannelBuffer frames = ChannelBuffers.buffer(length); // SPDY UNKNOWN Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(0xFFFF); frames.writeByte(0xFF); frames.writeMedium(4); frames.writeInt(random.nextInt()); // SPDY NOOP Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(5); frames.writeInt(0); // SPDY Data Frame frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); frames.writeByte(0x01); frames.writeMedium(1024); for (int i = 0; i < 256; i++) { frames.writeInt(random.nextInt()); } // SPDY SYN_STREAM Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(1); frames.writeByte(0x03); if (version < 3) { frames.writeMedium(12); } else { frames.writeMedium(10); } frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); frames.writeInt(random.nextInt() & 0x7FFFFFFF); frames.writeShort(0x8000); if (version < 3) { frames.writeShort(0); } // SPDY SYN_REPLY Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(2); frames.writeByte(0x01); if (version < 3) { frames.writeMedium(8); } else { frames.writeMedium(4); } frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); if (version < 3) { frames.writeInt(0); } // SPDY RST_STREAM Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(3); frames.writeInt(8); frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); frames.writeInt(random.nextInt() | 0x01); // SPDY SETTINGS Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(4); frames.writeByte(0x01); frames.writeMedium(12); frames.writeInt(1); if (version < 3) { frames.writeMedium(random.nextInt()); frames.writeByte(0x03); } else { frames.writeByte(0x03); frames.writeMedium(random.nextInt()); } frames.writeInt(random.nextInt()); // SPDY PING Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(6); frames.writeInt(4); frames.writeInt(random.nextInt()); // SPDY GOAWAY Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(7); if (version < 3) { frames.writeInt(4); } else { frames.writeInt(8); } frames.writeInt(random.nextInt() & 0x7FFFFFFF); if (version >= 3) { frames.writeInt(random.nextInt() | 0x01); } // SPDY HEADERS Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(8); frames.writeByte(0x01); frames.writeMedium(4); frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); // SPDY WINDOW_UPDATE Frame frames.writeByte(0x80); frames.writeByte(version); frames.writeShort(9); frames.writeInt(8); frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); frames.writeInt(random.nextInt() & 0x7FFFFFFF | 0x01); return frames; }