Search in sources :

Example 16 with Element

use of streamer.Element in project cloudstack by apache.

the class ClientInfoPDU method main.

/**
     * Example.
     */
public static void main(String[] args) {
    // System.setProperty("streamer.Link.debug", "true");
    System.setProperty("streamer.Element.debug", "true");
    // System.setProperty("streamer.Pipeline.debug", "true");
    /* @formatter:off */
    byte[] packet = new byte[] { // TPKT
    (byte) 0x03, (byte) 0x00, // TPKT length: 343 bytes
    (byte) 0x01, (byte) 0x57, // X224 Data PDU
    (byte) 0x02, (byte) 0xf0, (byte) 0x80, // MCS Send Data Request PDU
    (byte) 0x64, // Initiator: 0x03 + 1001 = 1004
    (byte) 0x00, (byte) 0x03, // Channel ID: 1003 (IO Channel)
    (byte) 0x03, (byte) 0xeb, // Data priority: high, segmentation: begin | end (0x40 | 0x20 | 0x10 = 0x70)
    (byte) 0x70, // User data length: 328  (0x148) bytes, variable length field
    (byte) 0x81, (byte) 0x48, // Flags: SEC_INFO_PKT (0x4000)
    (byte) 0x40, (byte) 0x00, // TS_SECURITY_HEADER::flagsHi - ignored
    (byte) 0x00, (byte) 0x00, // Codepage: 0 (UNKNOWN, LE) (use  0x04090409  (1033,1033) for EN_US)
    (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // INFO_MOUSE_HAS_WHEEL (0x00020000), INFO_NOAUDIOPLAYBACK (0x00080000),
    (byte) 0x73, (byte) 0x01, (byte) 0x0a, (byte) 0x00, // cbDomain length: 0 bytes (LE) (NOT including size of mandatory NULL terminator)
    (byte) 0x00, (byte) 0x00, // cbUserName length: 16 bytes (0x10, LE) (NOT including size of mandatory NULL terminator)
    (byte) 0x10, (byte) 0x00, // cbPassword length: 0 bytes (LE) (NOT including size of mandatory NULL terminator)
    (byte) 0x00, (byte) 0x00, // cbAlternateShell:  0 bytes (LE) (NOT including size of mandatory NULL terminator)
    (byte) 0x00, (byte) 0x00, // cbWorkingDir: 0 bytes (LE) (NOT including size of mandatory NULL terminator)
    (byte) 0x00, (byte) 0x00, // Domain: "" (UCS2), see cbDomain
    (byte) 0x00, (byte) 0x00, // User name: "vlisivka" (UCS2), see cbUserName
    (byte) 0x76, (byte) 0x00, (byte) 0x6c, (byte) 0x00, (byte) 0x69, (byte) 0x00, (byte) 0x73, (byte) 0x00, (byte) 0x69, (byte) 0x00, (byte) 0x76, (byte) 0x00, (byte) 0x6b, (byte) 0x00, (byte) 0x61, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Password: "" (UCS2), see cbPassword
    (byte) 0x00, (byte) 0x00, // Alternate shell: "" (UCS2), see cbAlternateShell
    (byte) 0x00, (byte) 0x00, // Working directory: "" (UCS2), see cbWorkingDir
    (byte) 0x00, (byte) 0x00, // Client address family: 2 (AF_INET, LE)
    (byte) 0x02, (byte) 0x00, // cbClientAddress = 28 bytes (0x1c, LE) (including the size of the mandatory NULL terminator)
    (byte) 0x1c, (byte) 0x00, // Client address: "192.168.0.100" (UCS2)
    (byte) 0x31, (byte) 0x00, (byte) 0x39, (byte) 0x00, (byte) 0x32, (byte) 0x00, (byte) 0x2e, (byte) 0x00, (byte) 0x31, (byte) 0x00, (byte) 0x36, (byte) 0x00, (byte) 0x38, (byte) 0x00, (byte) 0x2e, (byte) 0x00, (byte) 0x30, (byte) 0x00, (byte) 0x2e, (byte) 0x00, (byte) 0x31, (byte) 0x00, (byte) 0x30, (byte) 0x00, (byte) 0x30, (byte) 0x00, (byte) 0x00, (byte) 0x00, // cbClientDir: 64 bytes (0x40, LE) (including the size of the mandatory NULL terminator)
    (byte) 0x40, (byte) 0x00, // Client directory: "C:\Windows\System32\mstscax.dll" (UCS2)
    (byte) 0x43, (byte) 0x00, (byte) 0x3a, (byte) 0x00, (byte) 0x5c, (byte) 0x00, (byte) 0x57, (byte) 0x00, (byte) 0x69, (byte) 0x00, (byte) 0x6e, (byte) 0x00, (byte) 0x64, (byte) 0x00, (byte) 0x6f, (byte) 0x00, (byte) 0x77, (byte) 0x00, (byte) 0x73, (byte) 0x00, (byte) 0x5c, (byte) 0x00, (byte) 0x53, (byte) 0x00, (byte) 0x79, (byte) 0x00, (byte) 0x73, (byte) 0x00, (byte) 0x74, (byte) 0x00, (byte) 0x65, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x33, (byte) 0x00, (byte) 0x32, (byte) 0x00, (byte) 0x5c, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x73, (byte) 0x00, (byte) 0x74, (byte) 0x00, (byte) 0x73, (byte) 0x00, (byte) 0x63, (byte) 0x00, (byte) 0x61, (byte) 0x00, (byte) 0x78, (byte) 0x00, (byte) 0x2e, (byte) 0x00, (byte) 0x64, (byte) 0x00, (byte) 0x6c, (byte) 0x00, (byte) 0x6c, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Bias: 0 minutes (LE)
    (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Standard name: "EET, Standard Time" (fixed string: 64 bytes, UCS2)
    (byte) 0x45, (byte) 0x00, (byte) 0x45, (byte) 0x00, (byte) 0x54, (byte) 0x00, (byte) 0x2c, (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x53, (byte) 0x00, (byte) 0x74, (byte) 0x00, (byte) 0x61, (byte) 0x00, (byte) 0x6e, (byte) 0x00, (byte) 0x64, (byte) 0x00, (byte) 0x61, (byte) 0x00, (byte) 0x72, (byte) 0x00, (byte) 0x64, (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x54, (byte) 0x00, (byte) 0x69, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x65, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // wYear: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMonth: unknown (LE)
    (byte) 0x00, (byte) 0x00, // wDayOfWeek: Sunday (LE)
    (byte) 0x00, (byte) 0x00, // wDay: unknown (LE)
    (byte) 0x00, (byte) 0x00, // wHour: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMinute: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wSecond: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMilliseconds: 0
    (byte) 0x00, (byte) 0x00, // StandardBias: 0 minutes (LE)
    (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Daylight name: "EET, Summer Time" (fixed string: 64 bytes, UCS2)
    (byte) 0x45, (byte) 0x00, (byte) 0x45, (byte) 0x00, (byte) 0x54, (byte) 0x00, (byte) 0x2c, (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x53, (byte) 0x00, (byte) 0x75, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x65, (byte) 0x00, (byte) 0x72, (byte) 0x00, (byte) 0x20, (byte) 0x00, (byte) 0x54, (byte) 0x00, (byte) 0x69, (byte) 0x00, (byte) 0x6d, (byte) 0x00, (byte) 0x65, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // wYear: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMonth: unknown (LE)
    (byte) 0x00, (byte) 0x00, // wDayOfWeek: Sunday (LE)
    (byte) 0x00, (byte) 0x00, // wDay: unknown (LE)
    (byte) 0x00, (byte) 0x00, // wHour: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMinute: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wSecond: 0 (LE)
    (byte) 0x00, (byte) 0x00, // wMilliseconds: 0
    (byte) 0x00, (byte) 0x00, // Daylight bias: 60 minutes (LE)
    (byte) 0x3c, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Client session ID: 0x00000000 (LE)
    (byte) 0x00, (byte) 0x00, (byte) 0x00, (byte) 0x00, // Performance flags: 0x7 (LE) = PERF_DISABLE_WALLPAPER (0x1), PERF_DISABLE_FULLWINDOWDRAG (0x2), PERF_DISABLE_MENUANIMATIONS (0x4)
    (byte) 0x07, (byte) 0x00, (byte) 0x00, (byte) 0x00, // cbAutoReconnectCookie: 0 bytes (LE)
    (byte) 0x00, (byte) 0x00 };
    /* @formatter:on */
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Element client_info = new ClientInfoPDU("client_info", "vlisivka");
    Element x224 = new ClientX224DataPDU("x224");
    Element tpkt = new ClientTpkt("tpkt");
    Element sink = new MockSink("sink", ByteBuffer.convertByteArraysToByteBuffers(packet));
    Element mainSink = new MockSink("mainSink", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, client_info, x224, tpkt, sink, mainSink);
    pipeline.link("source", "client_info", "mainSink");
    pipeline.link("client_info >" + OTOUT, "x224", "tpkt", "sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) MockSink(streamer.debug.MockSink) PipelineImpl(streamer.PipelineImpl) Element(streamer.Element) Pipeline(streamer.Pipeline)

Example 17 with Element

use of streamer.Element in project cloudstack by apache.

the class ServerDemandActivePDU method main.

/**
     * Example.
     *
     */
public static void main(String[] args) {
    // System.setProperty("streamer.Link.debug", "true");
    System.setProperty("streamer.Element.debug", "true");
    // System.setProperty("streamer.Pipeline.debug", "true");
    /* @formatter:off */
    byte[] packet = new byte[] { //  TS_SHARECONTROLHEADER::totalLength = 0x0167 = 359 bytes
    0x67, //  TS_SHARECONTROLHEADER::totalLength = 0x0167 = 359 bytes
    0x01, //  TS_SHARECONTROLHEADER::pduType = 0x0011 0x0011 = 0x0010 | 0x0001  = TS_PROTOCOL_VERSION | PDUTYPE_DEMANDACTIVEPDU
    0x11, //  TS_SHARECONTROLHEADER::pduType = 0x0011 0x0011 = 0x0010 | 0x0001  = TS_PROTOCOL_VERSION | PDUTYPE_DEMANDACTIVEPDU
    0x00, //  TS_SHARECONTROLHEADER::pduSource = 0x03ea (1002)
    (byte) 0xea, //  TS_SHARECONTROLHEADER::pduSource = 0x03ea (1002)
    0x03, //  TS_DEMAND_ACTIVE_PDU::shareId
    (byte) 0xea, //  TS_DEMAND_ACTIVE_PDU::shareId
    0x03, //  TS_DEMAND_ACTIVE_PDU::shareId
    0x01, //  TS_DEMAND_ACTIVE_PDU::shareId
    0x00, //  TS_DEMAND_ACTIVE_PDU::lengthSourceDescriptor = 4 bytes
    0x04, //  TS_DEMAND_ACTIVE_PDU::lengthSourceDescriptor = 4 bytes
    0x00, //  TS_DEMAND_ACTIVE_PDU::lengthCombinedCapabilities = 0x151 = 337 bytes
    0x51, //  TS_DEMAND_ACTIVE_PDU::lengthCombinedCapabilities = 0x151 = 337 bytes
    0x01, //  TS_DEMAND_ACTIVE_PDU::sourceDescriptor = "RDP"
    0x52, //  TS_DEMAND_ACTIVE_PDU::sourceDescriptor = "RDP"
    0x44, //  TS_DEMAND_ACTIVE_PDU::sourceDescriptor = "RDP"
    0x50, //  TS_DEMAND_ACTIVE_PDU::sourceDescriptor = "RDP"
    0x00, //  TS_DEMAND_ACTIVE_PDU::numberCapabilities = 13
    0x0d, //  TS_DEMAND_ACTIVE_PDU::numberCapabilities = 13
    0x00, //  TS_DEMAND_ACTIVE_PDU::pad2octets
    0x00, //  TS_DEMAND_ACTIVE_PDU::pad2octets
    0x00, //  TS_SHARE_CAPABILITYSET::capabilitySetType = CAPSTYPE_SHARE (9)
    0x09, //  TS_SHARE_CAPABILITYSET::capabilitySetType = CAPSTYPE_SHARE (9)
    0x00, //  TS_SHARE_CAPABILITYSET::lengthCapability = 8 bytes
    0x08, //  TS_SHARE_CAPABILITYSET::lengthCapability = 8 bytes
    0x00, //  TS_SHARE_CAPABILITYSET::nodeID = 0x03ea (1002)
    (byte) 0xea, //  TS_SHARE_CAPABILITYSET::nodeID = 0x03ea (1002)
    0x03, //  TS_SHARE_CAPABILITYSET::pad2octets
    (byte) 0xdc, //  TS_SHARE_CAPABILITYSET::pad2octets
    (byte) 0xe2, //  TS_GENERAL_CAPABILITYSET::capabilitySetType = CAPSTYPE_GENERAL (1)
    0x01, //  TS_GENERAL_CAPABILITYSET::capabilitySetType = CAPSTYPE_GENERAL (1)
    0x00, //  TS_GENERAL_CAPABILITYSET::lengthCapability = 24 bytes
    0x18, //  TS_GENERAL_CAPABILITYSET::lengthCapability = 24 bytes
    0x00, //  TS_GENERAL_CAPABILITYSET::osMajorType = TS_OSMAJORTYPE_WINDOWS (1)
    0x01, //  TS_GENERAL_CAPABILITYSET::osMajorType = TS_OSMAJORTYPE_WINDOWS (1)
    0x00, //  TS_GENERAL_CAPABILITYSET::osMinorType = TS_OSMINORTYPE_WINDOWS_NT (3)
    0x03, //  TS_GENERAL_CAPABILITYSET::osMinorType = TS_OSMINORTYPE_WINDOWS_NT (3)
    0x00, //  TS_GENERAL_CAPABILITYSET::protocolVersion = TS_CAPS_PROTOCOLVERSION (0x0200)
    0x00, //  TS_GENERAL_CAPABILITYSET::protocolVersion = TS_CAPS_PROTOCOLVERSION (0x0200)
    0x02, //  TS_GENERAL_CAPABILITYSET::pad2octetsA
    0x00, //  TS_GENERAL_CAPABILITYSET::pad2octetsA
    0x00, //  TS_GENERAL_CAPABILITYSET::generalCompressionTypes = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::generalCompressionTypes = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::extraFlags = 0x041d = 0x0400 | 0x0010 | 0x0008 | 0x0004 | 0x0001 = NO_BITMAP_COMPRESSION_HDR | ENC_SALTED_CHECKSUM | AUTORECONNECT_SUPPORTED | LONG_CREDENTIALS_SUPPORTED | FASTPATH_OUTPUT_SUPPORTED
    0x1d, //  TS_GENERAL_CAPABILITYSET::extraFlags = 0x041d = 0x0400 | 0x0010 | 0x0008 | 0x0004 | 0x0001 = NO_BITMAP_COMPRESSION_HDR | ENC_SALTED_CHECKSUM | AUTORECONNECT_SUPPORTED | LONG_CREDENTIALS_SUPPORTED | FASTPATH_OUTPUT_SUPPORTED
    0x04, //  TS_GENERAL_CAPABILITYSET::updateCapabilityFlag = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::updateCapabilityFlag = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::remoteUnshareFlag = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::remoteUnshareFlag = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::generalCompressionLevel = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::generalCompressionLevel = 0
    0x00, //  TS_GENERAL_CAPABILITYSET::refreshRectSupport = TRUE
    0x01, //  TS_GENERAL_CAPABILITYSET::suppressOutputSupport = TRUE
    0x01, //  TS_VIRTUALCHANNEL_CAPABILITYSET::capabilitySetType = CAPSTYPE_VIRTUALCHANNEL (20)
    0x14, //  TS_VIRTUALCHANNEL_CAPABILITYSET::capabilitySetType = CAPSTYPE_VIRTUALCHANNEL (20)
    0x00, //  TS_VIRTUALCHANNEL_CAPABILITYSET::lengthCapability = 8 bytes
    0x08, //  TS_VIRTUALCHANNEL_CAPABILITYSET::lengthCapability = 8 bytes
    0x00, //  TS_VIRTUALCHANNEL_CAPABILITYSET::vccaps1 = 0x00000002 = VCCAPS_COMPR_CS_8K
    0x02, //  TS_VIRTUALCHANNEL_CAPABILITYSET::vccaps1 = 0x00000002 = VCCAPS_COMPR_CS_8K
    0x00, //  TS_VIRTUALCHANNEL_CAPABILITYSET::vccaps1 = 0x00000002 = VCCAPS_COMPR_CS_8K
    0x00, //  TS_VIRTUALCHANNEL_CAPABILITYSET::vccaps1 = 0x00000002 = VCCAPS_COMPR_CS_8K
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::capabilitySetType = CAPSTYPE_DRAWGDIPLUS (22)
    0x16, //  TS_DRAW_GDIPLUS_CAPABILITYSET::capabilitySetType = CAPSTYPE_DRAWGDIPLUS (22)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::lengthCapability = 40 bytes
    0x28, //  TS_DRAW_GDIPLUS_CAPABILITYSET::lengthCapability = 40 bytes
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusSupportLevel = TS_DRAW_GDIPLUS_DEFAULT (0)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusSupportLevel = TS_DRAW_GDIPLUS_DEFAULT (0)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusSupportLevel = TS_DRAW_GDIPLUS_DEFAULT (0)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusSupportLevel = TS_DRAW_GDIPLUS_DEFAULT (0)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::GdipVersion (not initialized by server)
    0x70, //  TS_DRAW_GDIPLUS_CAPABILITYSET::GdipVersion (not initialized by server)
    (byte) 0xf6, //  TS_DRAW_GDIPLUS_CAPABILITYSET::GdipVersion (not initialized by server)
    0x13, //  TS_DRAW_GDIPLUS_CAPABILITYSET::GdipVersion (not initialized by server)
    (byte) 0xf3, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusCacheLevel  = TS_DRAW_GDIPLUS_CACHE_LEVEL_ONE (1)
    0x01, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusCacheLevel  = TS_DRAW_GDIPLUS_CACHE_LEVEL_ONE (1)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusCacheLevel  = TS_DRAW_GDIPLUS_CACHE_LEVEL_ONE (1)
    0x00, //  TS_DRAW_GDIPLUS_CAPABILITYSET::drawGdiplusCacheLevel  = TS_DRAW_GDIPLUS_CACHE_LEVEL_ONE (1)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipGraphicsCacheEntries  (not initialized by server)
    0x01, //  TS_GDIPLUS_CACHE_ENTRIES::GdipGraphicsCacheEntries  (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectBrushCacheEntries (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectBrushCacheEntries (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectPenCacheEntries (not initialized by server)
    0x18, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectPenCacheEntries (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectImageCacheEntries (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectImageCacheEntries (not initialized by server)
    0x00, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectImageAttributesCacheEntries (not initialized by server)
    (byte) 0x9c, //  TS_GDIPLUS_CACHE_ENTRIES::GdipObjectImageAttributesCacheEntries (not initialized by server)
    (byte) 0xf6, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipGraphicsCacheChunkSize  (not initialized by server)
    0x13, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipGraphicsCacheChunkSize  (not initialized by server)
    (byte) 0xf3, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectBrushCacheChunkSize (not initialized by server)
    0x61, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectBrushCacheChunkSize (not initialized by server)
    (byte) 0xa6, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectPenCacheChunkSize (not initialized by server)
    (byte) 0x82, //  TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectPenCacheChunkSize (not initialized by server)
    (byte) 0x80, //   TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectImageAttributesCacheChunkSize (not initialized by server)
    0x00, //   TS_GDIPLUS_CACHE_CHUNK_SIZE::GdipObjectImageAttributesCacheChunkSize (not initialized by server)
    0x00, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheChunkSize  (not initialized by server)
    0x00, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheChunkSize  (not initialized by server)
    0x00, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheTotalSize  (not initialized by server)
    0x00, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheTotalSize  (not initialized by server)
    0x50, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheMaxSize (not initialized by server)
    (byte) 0x91, //  TS_GDIPLUS_IMAGE_CACHE_PROPERTIES::GdipObjectImageCacheMaxSize (not initialized by server)
    (byte) 0xbf, //  TS_FONT_CAPABILITYSET::capabilitySetType = CAPSTYPE_FONT (14)
    0x0e, //  TS_FONT_CAPABILITYSET::capabilitySetType = CAPSTYPE_FONT (14)
    0x00, //  TS_FONT_CAPABILITYSET::lengthCapability = 4 bytes
    0x04, //  TS_FONT_CAPABILITYSET::lengthCapability = 4 bytes
    0x00, //  TS_BITMAP_CAPABILITYSET::capabilitySetType = CAPSTYPE_BITMAP (2)
    0x02, //  TS_BITMAP_CAPABILITYSET::capabilitySetType = CAPSTYPE_BITMAP (2)
    0x00, //  TS_BITMAP_CAPABILITYSET::lengthCapability = 28 bytes
    0x1c, //  TS_BITMAP_CAPABILITYSET::lengthCapability = 28 bytes
    0x00, //  TS_BITMAP_CAPABILITYSET::preferredBitsPerPixel = 24 bpp
    0x18, //  TS_BITMAP_CAPABILITYSET::preferredBitsPerPixel = 24 bpp
    0x00, //  TS_BITMAP_CAPABILITYSET::receive1BitPerPixel = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::receive1BitPerPixel = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::receive4BitsPerPixel = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::receive4BitsPerPixel = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::receive8BitsPerPixel = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::receive8BitsPerPixel = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::desktopWidth = 1280 pixels
    0x00, //  TS_BITMAP_CAPABILITYSET::desktopWidth = 1280 pixels
    0x05, //  TS_BITMAP_CAPABILITYSET::desktopHeight = 1024 pixels
    0x00, //  TS_BITMAP_CAPABILITYSET::desktopHeight = 1024 pixels
    0x04, //  TS_BITMAP_CAPABILITYSET::pad2octets
    0x00, //  TS_BITMAP_CAPABILITYSET::pad2octets
    0x00, //  TS_BITMAP_CAPABILITYSET::desktopResizeFlag = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::desktopResizeFlag = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::bitmapCompressionFlag = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::bitmapCompressionFlag = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::highColorFlags = 0
    0x00, //  TS_BITMAP_CAPABILITYSET::pad1octet
    0x00, //  TS_BITMAP_CAPABILITYSET::multipleRectangleSupport = TRUE
    0x01, //  TS_BITMAP_CAPABILITYSET::multipleRectangleSupport = TRUE
    0x00, //  TS_BITMAP_CAPABILITYSET::pad2octetsB
    0x00, //  TS_BITMAP_CAPABILITYSET::pad2octetsB
    0x00, //  TS_ORDER_CAPABILITYSET::capabilitySetType = CAPSTYPE_ORDER (3)
    0x03, //  TS_ORDER_CAPABILITYSET::capabilitySetType = CAPSTYPE_ORDER (3)
    0x00, //  TS_ORDER_CAPABILITYSET::lengthCapability = 88 bytes
    0x58, //  TS_ORDER_CAPABILITYSET::lengthCapability = 88 bytes
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, // TS_ORDER_CAPABILITYSET::terminalDescriptor = ""
    0x00, //  TS_ORDER_CAPABILITYSET::pad4octetsA
    0x40, //  TS_ORDER_CAPABILITYSET::pad4octetsA
    0x42, //  TS_ORDER_CAPABILITYSET::pad4octetsA
    0x0f, //  TS_ORDER_CAPABILITYSET::pad4octetsA
    0x00, //  TS_ORDER_CAPABILITYSET::desktopSaveXGranularity = 1
    0x01, //  TS_ORDER_CAPABILITYSET::desktopSaveXGranularity = 1
    0x00, //  TS_ORDER_CAPABILITYSET::desktopSaveYGranularity = 20
    0x14, //  TS_ORDER_CAPABILITYSET::desktopSaveYGranularity = 20
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsA
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsA
    0x00, //  TS_ORDER_CAPABILITYSET::maximumOrderLevel = ORD_LEVEL_1_ORDERS (1)
    0x01, //  TS_ORDER_CAPABILITYSET::maximumOrderLevel = ORD_LEVEL_1_ORDERS (1)
    0x00, //  TS_ORDER_CAPABILITYSET::numberFonts = 0
    0x00, //  TS_ORDER_CAPABILITYSET::numberFonts = 0
    0x00, //  TS_ORDER_CAPABILITYSET::orderFlags = 0x0022 = 0x0020 | 0x0002 = COLORINDEXSUPPORT | NEGOTIATEORDERSUPPORT
    0x22, //  TS_ORDER_CAPABILITYSET::orderFlags = 0x0022 = 0x0020 | 0x0002 = COLORINDEXSUPPORT | NEGOTIATEORDERSUPPORT
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_DSTBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_PATBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_SCRBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MEMBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MEM3BLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_ATEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_AEXTTEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_DRAWNINEGRID_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_LINETO_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MULTI_DRAWNINEGRID_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_OPAQUERECT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_SAVEBITMAP_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_WTEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MEMBLT_R2_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MEM3BLT_R2_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MULTIDSTBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MULTIPATBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MULTISCRBLT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_MULTIOPAQUERECT_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_FAST_INDEX_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_POLYGON_SC_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_POLYGON_CB_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_POLYLINE_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[23] = 0
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_FAST_GLYPH_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_ELLIPSE_SC_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_ELLIPSE_CB_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_INDEX_INDEX] = TRUE
    0x01, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_WEXTTEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_WLONGTEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[TS_NEG_WLONGEXTTEXTOUT_INDEX] = FALSE
    0x00, //  TS_ORDER_CAPABILITYSET::orderSupport[24] = 0
    0x00, //  TS_ORDER_CAPABILITYSET::textFlags = 0x06a1
    (byte) 0xa1, //  TS_ORDER_CAPABILITYSET::textFlags = 0x06a1
    0x06, //  TS_ORDER_CAPABILITYSET::pad2octetsB
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsB
    0x00, //  TS_ORDER_CAPABILITYSET::pad4octetsB
    0x40, //  TS_ORDER_CAPABILITYSET::pad4octetsB
    0x42, //  TS_ORDER_CAPABILITYSET::pad4octetsB
    0x0f, //  TS_ORDER_CAPABILITYSET::pad4octetsB
    0x00, //  TS_ORDER_CAPABILITYSET::desktopSaveSize = 0xf4240 = 1000000
    0x40, //  TS_ORDER_CAPABILITYSET::desktopSaveSize = 0xf4240 = 1000000
    0x42, //  TS_ORDER_CAPABILITYSET::desktopSaveSize = 0xf4240 = 1000000
    0x0f, //  TS_ORDER_CAPABILITYSET::desktopSaveSize = 0xf4240 = 1000000
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsC
    0x01, //  TS_ORDER_CAPABILITYSET::pad2octetsC
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsD
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsD
    0x00, //  TS_ORDER_CAPABILITYSET::textANSICodePage
    0x00, //  TS_ORDER_CAPABILITYSET::textANSICodePage
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsE
    0x00, //  TS_ORDER_CAPABILITYSET::pad2octetsE
    0x00, //  TS_COLORTABLECACHE_CAPABILITYSET::capabilitySetType = CAPSTYPE_COLORCACHE (10)
    0x0a, //  TS_COLORTABLECACHE_CAPABILITYSET::capabilitySetType = CAPSTYPE_COLORCACHE (10)
    0x00, //  TS_COLORTABLECACHE_CAPABILITYSET::lengthCapability = 8 bytes
    0x08, //  TS_COLORTABLECACHE_CAPABILITYSET::lengthCapability = 8 bytes
    0x00, //  TS_COLORTABLECACHE_CAPABILITYSET::colorTableCacheSize = 6
    0x06, //  TS_COLORTABLECACHE_CAPABILITYSET::colorTableCacheSize = 6
    0x00, //  TS_COLORTABLECACHE_CAPABILITYSET::pad2octets
    0x00, //  TS_COLORTABLECACHE_CAPABILITYSET::pad2octets
    0x00, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::capabilitySetType  = CAPSTYPE_BITMAPCACHE_HOSTSUPPORT (18)
    0x12, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::capabilitySetType  = CAPSTYPE_BITMAPCACHE_HOSTSUPPORT (18)
    0x00, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::lengthCapability  = 8 bytes
    0x08, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::lengthCapability  = 8 bytes
    0x00, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::CacheVersion = 1  (corresponds to rev. 2 capabilities)
    0x01, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::Pad1
    0x00, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::Pad2
    0x00, //  TS_BITMAPCACHE_CAPABILITYSET_HOSTSUPPORT::Pad2
    0x00, //  TS_POINTER_CAPABILITYSET::capabilitySetType = CAPSTYPE_POINTER (8)
    0x08, //  TS_POINTER_CAPABILITYSET::capabilitySetType = CAPSTYPE_POINTER (8)
    0x00, //  TS_POINTER_CAPABILITYSET::lengthCapability = 10 bytes
    0x0a, //  TS_POINTER_CAPABILITYSET::lengthCapability = 10 bytes
    0x00, //  TS_POINTER_CAPABILITYSET::colorPointerFlag = TRUE
    0x01, //  TS_POINTER_CAPABILITYSET::colorPointerFlag = TRUE
    0x00, //  TS_POINTER_CAPABILITYSET::colorPointerCacheSize = 25
    0x19, //  TS_POINTER_CAPABILITYSET::colorPointerCacheSize = 25
    0x00, //  TS_POINTER_CAPABILITYSET::pointerCacheSize = 25
    0x19, //  TS_POINTER_CAPABILITYSET::pointerCacheSize = 25
    0x00, //  TS_INPUT_CAPABILITYSET::capabilitySetType = CAPSTYPE_INPUT (13)
    0x0d, //  TS_INPUT_CAPABILITYSET::capabilitySetType = CAPSTYPE_INPUT (13)
    0x00, //  TS_INPUT_CAPABILITYSET::lengthCapability = 88 bytes
    0x58, //  TS_INPUT_CAPABILITYSET::lengthCapability = 88 bytes
    0x00, //  TS_INPUT_CAPABILITYSET::inputFlags = 0x0035 = 0x0020 | 0x0010 | 0x0004 | 0x0001 = INPUT_FLAG_FASTPATH_INPUT2 | INPUT_FLAG_VKPACKET | INPUT_FLAG_MOUSEX | INPUT_FLAG_SCANCODES
    0x35, //  TS_INPUT_CAPABILITYSET::inputFlags = 0x0035 = 0x0020 | 0x0010 | 0x0004 | 0x0001 = INPUT_FLAG_FASTPATH_INPUT2 | INPUT_FLAG_VKPACKET | INPUT_FLAG_MOUSEX | INPUT_FLAG_SCANCODES
    0x00, //  TS_INPUT_CAPABILITYSET::pad2octetsA
    0x00, //  TS_INPUT_CAPABILITYSET::pad2octetsA
    0x00, //  TS_INPUT_CAPABILITYSET::keyboardLayout (not initialized by server)
    (byte) 0xa1, //  TS_INPUT_CAPABILITYSET::keyboardLayout (not initialized by server)
    0x06, //  TS_INPUT_CAPABILITYSET::keyboardLayout (not initialized by server)
    0x00, //  TS_INPUT_CAPABILITYSET::keyboardLayout (not initialized by server)
    0x00, //  TS_INPUT_CAPABILITYSET::keyboardType (not initialized by server)
    0x40, //  TS_INPUT_CAPABILITYSET::keyboardType (not initialized by server)
    0x42, //  TS_INPUT_CAPABILITYSET::keyboardType (not initialized by server)
    0x0f, //  TS_INPUT_CAPABILITYSET::keyboardType (not initialized by server)
    0x00, //  TS_INPUT_CAPABILITYSET::keyboardSubType  (not initialized by server)
    0x0c, //  TS_INPUT_CAPABILITYSET::keyboardSubType  (not initialized by server)
    (byte) 0xf6, //  TS_INPUT_CAPABILITYSET::keyboardSubType  (not initialized by server)
    0x13, //  TS_INPUT_CAPABILITYSET::keyboardSubType  (not initialized by server)
    (byte) 0xf3, //  TS_INPUT_CAPABILITYSET::keyboardFunctionKey (not initialized by server)
    (byte) 0x93, //  TS_INPUT_CAPABILITYSET::keyboardFunctionKey (not initialized by server)
    0x5a, //  TS_INPUT_CAPABILITYSET::keyboardFunctionKey (not initialized by server)
    0x37, //  TS_INPUT_CAPABILITYSET::keyboardFunctionKey (not initialized by server)
    (byte) 0xf3, // TS_INPUT_CAPABILITYSET::imeFileName (not initialized by server)
    0x00, (byte) 0x90, 0x30, (byte) 0xe1, 0x34, 0x1c, 0x38, (byte) 0xf3, 0x40, (byte) 0xf6, 0x13, (byte) 0xf3, 0x04, 0x00, 0x00, 0x00, 0x4c, 0x54, (byte) 0xdc, (byte) 0xe2, 0x08, 0x50, (byte) 0xdc, (byte) 0xe2, 0x01, 0x00, 0x00, 0x00, 0x08, 0x50, (byte) 0xdc, (byte) 0xe2, 0x00, 0x00, 0x00, 0x00, 0x38, (byte) 0xf6, 0x13, (byte) 0xf3, 0x2e, 0x05, 0x38, (byte) 0xf3, 0x08, 0x50, (byte) 0xdc, (byte) 0xe2, 0x2c, (byte) 0xf6, 0x13, (byte) 0xf3, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x0a, 0x00, 0x01, 0x00, 0x19, 0x00, //  TS_RAIL_CAPABILITYSET::capabilitySetType = CAPSTYPE_RAIL (23)
    0x17, //  TS_RAIL_CAPABILITYSET::capabilitySetType = CAPSTYPE_RAIL (23)
    0x00, //  TS_RAIL_CAPABILITYSET::lengthCapability = 8 bytes
    0x08, //  TS_RAIL_CAPABILITYSET::lengthCapability = 8 bytes
    0x00, //  TS_RAIL_CAPABILITYSET::railSupportLevel = TS_RAIL_LEVEL_DEFAULT (0)
    0x00, //  TS_RAIL_CAPABILITYSET::railSupportLevel = TS_RAIL_LEVEL_DEFAULT (0)
    0x00, //  TS_RAIL_CAPABILITYSET::railSupportLevel = TS_RAIL_LEVEL_DEFAULT (0)
    0x00, //  TS_RAIL_CAPABILITYSET::railSupportLevel = TS_RAIL_LEVEL_DEFAULT (0)
    0x00, //  TS_WINDOW_CAPABILITYSET::capabilitySetType =  CAPSTYPE_WINDOW (24)
    0x18, //  TS_WINDOW_CAPABILITYSET::capabilitySetType =  CAPSTYPE_WINDOW (24)
    0x00, //  TS_WINDOW_CAPABILITYSET::lengthCapability = 11 bytes
    0x0b, //  TS_WINDOW_CAPABILITYSET::lengthCapability = 11 bytes
    0x00, //  TS_WINDOW_CAPABILITYSET::wndSupportLevel = TS_WINDOW_LEVEL_DEFAULT (0)
    0x00, //  TS_WINDOW_CAPABILITYSET::wndSupportLevel = TS_WINDOW_LEVEL_DEFAULT (0)
    0x00, //  TS_WINDOW_CAPABILITYSET::wndSupportLevel = TS_WINDOW_LEVEL_DEFAULT (0)
    0x00, //  TS_WINDOW_CAPABILITYSET::wndSupportLevel = TS_WINDOW_LEVEL_DEFAULT (0)
    0x00, //  TS_WINDOW_CAPABILITYSET::nIconCaches = 0
    0x00, //  TS_WINDOW_CAPABILITYSET::nIconCacheEntries = 0
    0x00, //  TS_WINDOW_CAPABILITYSET::nIconCacheEntries = 0
    0x00, //  TS_DEMAND_ACTIVE_PDU::sessionId = 0
    0x00, //  TS_DEMAND_ACTIVE_PDU::sessionId = 0
    0x00, //  TS_DEMAND_ACTIVE_PDU::sessionId = 0
    0x00, //  TS_DEMAND_ACTIVE_PDU::sessionId = 0
    0x00 };
    /* @formatter:on */
    RdpState rdpState = new RdpState();
    ScreenDescription screenDescription = new ScreenDescription();
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(packet));
    Element demandActive = new ServerDemandActivePDU("demand_active", screenDescription, rdpState);
    Element sink = new FakeSink("sink");
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, demandActive, sink);
    pipeline.link("source", "demand_active", "sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) FakeSink(streamer.debug.FakeSink) PipelineImpl(streamer.PipelineImpl) ScreenDescription(common.ScreenDescription) Element(streamer.Element) BaseElement(streamer.BaseElement) Pipeline(streamer.Pipeline)

Example 18 with Element

use of streamer.Element in project cloudstack by apache.

the class ClientX224ConnectionRequestPDU method main.

/**
     * Example.
     *
     * @see http://msdn.microsoft.com/en-us/library/cc240842.aspx
     * @see http://msdn.microsoft.com/en-us/library/cc240500.aspx
     */
public static void main(String[] args) {
    // System.setProperty("streamer.Link.debug", "true");
    System.setProperty("streamer.Element.debug", "true");
    // System.setProperty("streamer.Pipeline.debug", "true");
    String cookie = "eltons";
    byte[] packet = new byte[] { // TPKT Header: version = 3
    0x03, // TPKT Header: Reserved = 0
    0x00, // TPKT Header: Packet length - high part
    0x00, // TPKT Header: Packet length - low part (total = 44 bytes)
    0x2c, // X.224: Length indicator (39 bytes)
    0x27, // X.224: Type (high nibble) = 0xe = CR TPDU;
    (byte) 0xe0, // X.224: Destination reference = 0
    0x00, // X.224: Destination reference = 0
    0x00, // X.224: Source reference = 0
    0x00, // X.224: Source reference = 0
    0x00, // X.224: Class and options = 0
    0x00, // "Cookie: mstshash=eltons"
    'C', // "Cookie: mstshash=eltons"
    'o', // "Cookie: mstshash=eltons"
    'o', // "Cookie: mstshash=eltons"
    'k', // "Cookie: mstshash=eltons"
    'i', // "Cookie: mstshash=eltons"
    'e', // "Cookie: mstshash=eltons"
    ':', // "Cookie: mstshash=eltons"
    ' ', // "Cookie: mstshash=eltons"
    'm', // "Cookie: mstshash=eltons"
    's', // "Cookie: mstshash=eltons"
    't', // "Cookie: mstshash=eltons"
    's', // "Cookie: mstshash=eltons"
    'h', // "Cookie: mstshash=eltons"
    'a', // "Cookie: mstshash=eltons"
    's', // "Cookie: mstshash=eltons"
    'h', // "Cookie: mstshash=eltons"
    '=', // "Cookie: mstshash=eltons"
    'e', // "Cookie: mstshash=eltons"
    'l', // "Cookie: mstshash=eltons"
    't', // "Cookie: mstshash=eltons"
    'o', // "Cookie: mstshash=eltons"
    'n', // "Cookie: mstshash=eltons"
    's', // -Cookie terminator sequence
    '\r', // -Cookie terminator sequence
    '\n', // RDP_NEG_REQ::type (TYPE_RDP_NEG_REQ)
    0x01, // RDP_NEG_REQ::flags (0)
    0x00, // RDP_NEG_REQ::length (8 bytes)
    0x08, // RDP_NEG_REQ::length (8 bytes)
    0x00, // RDP_NEG_REQ: Requested protocols
    0x01, // RDP_NEG_REQ: Requested protocols
    0x00, // RDP_NEG_REQ: Requested protocols
    0x00, // RDP_NEG_REQ: Requested protocols
    0x00 };
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Element cr = new ClientX224ConnectionRequestPDU("cr", cookie, RdpConstants.RDP_NEG_REQ_PROTOCOL_SSL);
    Element tpkt = new ClientTpkt("tpkt");
    Element sink = new MockSink("sink", ByteBuffer.convertByteArraysToByteBuffers(packet));
    Element mainSink = new MockSink("mainSink", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, cr, tpkt, sink, mainSink);
    pipeline.link("source", "cr", "mainSink");
    pipeline.link("cr >" + OTOUT, "tpkt", "sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) MockSink(streamer.debug.MockSink) PipelineImpl(streamer.PipelineImpl) Element(streamer.Element) Pipeline(streamer.Pipeline)

Example 19 with Element

use of streamer.Element in project cloudstack by apache.

the class ClientMCSAttachUserRequest method main.

/**
     * Example.
     */
public static void main(String[] args) {
    // System.setProperty("streamer.Link.debug", "true");
    System.setProperty("streamer.Element.debug", "true");
    // System.setProperty("streamer.Pipeline.debug", "true");
    /* @formatter:off */
    byte[] packet = new byte[] { //  TPKT Header (length = 8 bytes)
    0x03, //  TPKT Header (length = 8 bytes)
    0x00, //  TPKT Header (length = 8 bytes)
    0x00, //  TPKT Header (length = 8 bytes)
    0x08, //  X.224 Data TPDU
    0x02, //  X.224 Data TPDU
    (byte) 0xf0, //  X.224 Data TPDU
    (byte) 0x80, // PER encoded (ALIGNED variant of BASIC-PER) PDU contents:
    0x28 };
    /* @formatter:on */
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Element todo = new ClientMCSAttachUserRequest("TODO");
    Element x224 = new ClientX224DataPDU("x224");
    Element tpkt = new ClientTpkt("tpkt");
    Element sink = new MockSink("sink", ByteBuffer.convertByteArraysToByteBuffers(packet));
    Element mainSink = new MockSink("mainSink", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, todo, x224, tpkt, sink, mainSink);
    pipeline.link("source", "TODO", "mainSink");
    pipeline.link("TODO >" + OTOUT, "x224", "tpkt", "sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) MockSink(streamer.debug.MockSink) PipelineImpl(streamer.PipelineImpl) Element(streamer.Element) Pipeline(streamer.Pipeline)

Example 20 with Element

use of streamer.Element in project cloudstack by apache.

the class ClientMCSChannelJoinRequestServerMCSChannelConfirmPDUs method main.

/**
     * Example.
     *
     * @see http://msdn.microsoft.com/en-us/library/cc240834.aspx
     */
public static void main(String[] args) {
    // System.setProperty("streamer.Link.debug", "true");
    System.setProperty("streamer.Element.debug", "true");
    // System.setProperty("streamer.Pipeline.debug", "true");
    /* @formatter:off */
    byte[] clientRequestPacket = new byte[] { //  TPKT Header (length = 12 bytes)
    0x03, //  TPKT Header (length = 12 bytes)
    0x00, //  TPKT Header (length = 12 bytes)
    0x00, //  TPKT Header (length = 12 bytes)
    0x0c, //  X.224 Data TPDU
    0x02, //  X.224 Data TPDU
    (byte) 0xf0, //  X.224 Data TPDU
    (byte) 0x80, // PER encoded (ALIGNED variant of BASIC-PER) PDU contents:
    0x38, 0x00, 0x03, 0x03, (byte) 0xef };
    byte[] serverResponsePacket = new byte[] { // MCS Channel Confirm
    (byte) 0x3e, // result: rt-successful (0)
    (byte) 0x00, // Initiator: 1007 (6+1001)
    (byte) 0x00, (byte) 0x06, // Requested channel
    (byte) 0x03, (byte) 0xef, // Actual channel
    (byte) 0x03, (byte) 0xef };
    /* @formatter:on */
    RdpState rdpState = new RdpState();
    rdpState.serverUserChannelId = 1004;
    MockSource source = new MockSource("source", ByteBuffer.convertByteArraysToByteBuffers(serverResponsePacket, new byte[] { 1, 2, 3 }));
    Element todo = new ClientMCSChannelJoinRequestServerMCSChannelConfirmPDUs("channels", new int[] { 1007 }, rdpState);
    Element x224 = new ClientX224DataPDU("x224");
    Element tpkt = new ClientTpkt("tpkt");
    Element sink = new MockSink("sink", ByteBuffer.convertByteArraysToByteBuffers(clientRequestPacket));
    Element mainSink = new MockSink("mainSink", ByteBuffer.convertByteArraysToByteBuffers(new byte[] { 1, 2, 3 }));
    Pipeline pipeline = new PipelineImpl("test");
    pipeline.add(source, todo, x224, tpkt, sink, mainSink);
    pipeline.link("source", "channels", "mainSink");
    pipeline.link("channels >" + OTOUT, "x224", "tpkt", "sink");
    pipeline.runMainLoop("source", STDOUT, false, false);
}
Also used : MockSource(streamer.debug.MockSource) MockSink(streamer.debug.MockSink) PipelineImpl(streamer.PipelineImpl) Element(streamer.Element) Pipeline(streamer.Pipeline)

Aggregations

Element (streamer.Element)36 Pipeline (streamer.Pipeline)28 PipelineImpl (streamer.PipelineImpl)28 MockSource (streamer.debug.MockSource)25 MockSink (streamer.debug.MockSink)24 BaseElement (streamer.BaseElement)18 ByteBuffer (streamer.ByteBuffer)12 ScreenDescription (common.ScreenDescription)5 SyncLink (streamer.SyncLink)4 Link (streamer.Link)3 FakeSink (streamer.debug.FakeSink)3 BufferedImageCanvas (common.BufferedImageCanvas)1 DataBufferInt (java.awt.image.DataBufferInt)1 InetSocketAddress (java.net.InetSocketAddress)1 Test (org.junit.Test)1 RdpClient (rdpclient.RdpClient)1 ServerBitmapUpdate (rdpclient.rdp.ServerBitmapUpdate)1 SocketWrapper (streamer.SocketWrapper)1 FakeSource (streamer.debug.FakeSource)1 SSLState (streamer.ssl.SSLState)1