public bool Decode(byte[] rawData, int payloadLength, ref int index) { try { this.type = (RDP_Connect_Payload_Type)BitConverter.ToUInt32(Utility.GetNumericBytes(rawData, index, 4), 0); index += 4; if (type == RDP_Connect_Payload_Type.RDP_FILE) { this.rdpFileConfig = Encoding.UTF8.GetString(rawData, index, payloadLength - 4); index += (payloadLength - 4); } else { this.configureParameters = new RDP_Connection_Configure_Parameters(); if (!this.configureParameters.Decode(rawData, ref index)) { return(false); } } } catch (Exception) { return(false); } return(true); }
/// <summary> /// Initialize this adapter /// </summary> /// <param name="testSite"></param> public override void Initialize(ITestSite testSite) { base.Initialize(testSite); controlHandler = SUTControlProtocolHandler.GetInstance(testSite); // Initiate local IP string proxyIP = testSite.Properties["RDP.ProxyIP"]; if (string.IsNullOrEmpty(proxyIP)) { rdpServerIP = GetLocalIP(); } else { rdpServerIP = proxyIP; } // Initiate local port try { localPort = ushort.Parse(testSite.Properties["RDP.ServerPort"]); } catch { localPort = 0; } // Initiate Connect payload type bool clientSupportRDPFile = false; try { clientSupportRDPFile = bool.Parse(testSite.Properties["SUTControl.ClientSupportRDPFile"]); } catch { } if (clientSupportRDPFile) { connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE; } else { connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT; } string strIsClientSupportCompression = Site.Properties["RDP.Client.SupportCompression"]; if (strIsClientSupportCompression != null) { isClientSupportCompression = Boolean.Parse(strIsClientSupportCompression); } }
/// <summary> /// Create a payload for start RDP connection command /// </summary> /// <param name="payloadType">Type of payload: Content of .rdp file or Parameter structure</param> /// <param name="localAddress">Local address</param> /// <param name="RDPPort">Port test suite listening</param> /// <param name="DirectApproach">true for 'Direct', false for 'Negotiate'</param> /// <param name="fullScreen">true for full screen, otherwise false</param> /// <returns>Return encoded binary of the payload</returns> private byte[] CreateRDPConncectPayload(RDP_Connect_Payload_Type payloadType, string localAddress, uint RDPPort, bool DirectApproach, bool fullScreen) { RDP_Connection_Payload payLoad = new RDP_Connection_Payload(); payLoad.type = payloadType; if (payloadType == RDP_Connect_Payload_Type.RDP_FILE) { payLoad.rdpFileConfig = GenerateRDPFileString(localAddress, RDPPort, DirectApproach, fullScreen); } else { payLoad.configureParameters = GenerateRDPConnectionConfigParameters(localAddress, RDPPort, DirectApproach, fullScreen); } return(payLoad.Encode()); }
/// <summary> /// Initialize this adapter /// </summary> /// <param name="testSite"></param> public override void Initialize(ITestSite testSite) { base.Initialize(testSite); controlHandler = SUTControlProtocolHandler.GetInstance(testSite); // Initiate local IP string proxyIP; PtfPropUtility.GetPtfPropertyValue(testSite, "ProxyIP", out proxyIP); if (string.IsNullOrEmpty(proxyIP)) { rdpServerIP = GetLocalIP(); } else { rdpServerIP = proxyIP; } // Initiate local port try { string localPortString; PtfPropUtility.GetPtfPropertyValue(testSite, "ServerPort", out localPortString); localPort = ushort.Parse(localPortString); } catch { localPort = 0; } // Initiate Connect payload type bool clientSupportRDPFile; PtfPropUtility.GetPtfPropertyValue(testSite, "ClientSupportRDPFile", out clientSupportRDPFile, new string[] { RdpPtfGroupNames.SUTControl }); if (clientSupportRDPFile) { connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE; } else { connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT; } PtfPropUtility.GetPtfPropertyValue(testSite, "SupportCompression", out isClientSupportCompression); }
/// <summary> /// Initialize this adapter /// </summary> /// <param name="testSite"></param> public override void Initialize(ITestSite testSite) { base.Initialize(testSite); controlHandler = SUTControlProtocolHandler.GetInstance(testSite); // Initiate local IP localIP = GetLocalIP(); // Initiate local port try { localPort = ushort.Parse(testSite.Properties["RDP.ServerPort"]); } catch { localPort = 0; } // Initiate Connect payload type bool clientSupportRDPFile = false; try { clientSupportRDPFile = bool.Parse(testSite.Properties["SUTControl.ClientSupportRDPFile"]); } catch { } if (clientSupportRDPFile) { connectPayloadType = RDP_Connect_Payload_Type.RDP_FILE; } else { connectPayloadType = RDP_Connect_Payload_Type.PARAMETERS_STRUCT; } }
/// <summary> /// Create a payload for start RDP connection command /// </summary> /// <param name="payloadType">Type of payload: Content of .rdp file or Parameter structure</param> /// <param name="localAddress">Local address</param> /// <param name="RDPPort">Port test suite listening</param> /// <param name="DirectApproach">true for 'Direct', false for 'Negotiate'</param> /// <param name="fullScreen">true for full screen, otherwise false</param> /// <returns>Return encoded binary of the payload</returns> private byte[] CreateRDPConncectPayload(RDP_Connect_Payload_Type payloadType, string localAddress, uint RDPPort, bool DirectApproach, bool fullScreen) { RDP_Connection_Payload payLoad = new RDP_Connection_Payload(); payLoad.type = payloadType; if (payloadType == RDP_Connect_Payload_Type.RDP_FILE) { payLoad.rdpFileConfig = GenerateRDPFileString(localAddress, RDPPort, DirectApproach, fullScreen); } else { payLoad.configureParameters = GenerateRDPConnectionConfigParameters(localAddress, RDPPort, DirectApproach, fullScreen); } return payLoad.Encode(); }