Esempio n. 1
0
void rail_order_recv(rdpRailOrder* rail_order, STREAM* s)
{
	uint16 orderType;
	uint16 orderLength;

	rail_read_pdu_header(s, &orderType, &orderLength);

	DEBUG_RAIL("Received %s PDU, length:%d",
			RAIL_ORDER_TYPE_STRINGS[((orderType & 0xF0) >> 3) + (orderType & 0x0F)], orderLength);

	switch (orderType)
	{
		case RDP_RAIL_ORDER_HANDSHAKE:
			rail_recv_handshake_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_EXEC_RESULT:
			rail_recv_exec_result_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_SYSPARAM:
			rail_recv_server_sysparam_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_MINMAXINFO:
			rail_recv_server_minmaxinfo_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_LOCALMOVESIZE:
			rail_recv_server_localmovesize_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_GET_APPID_RESP:
			rail_recv_server_get_appid_resp_order(rail_order, s);
			break;

		case RDP_RAIL_ORDER_LANGBARINFO:
			rail_recv_langbar_info_order(rail_order, s);
			break;

		default:
			printf("Unknown RAIL PDU order reveived.");
			break;
	}
}
Esempio n. 2
0
BOOL rail_order_recv(railPlugin* rail, wStream* s)
{
	UINT16 orderType;
	UINT16 orderLength;

	if (!rail_read_pdu_header(s, &orderType, &orderLength))
		return FALSE;

	WLog_Print(rail->log, WLOG_DEBUG, "Received %s PDU, length: %d",
			RAIL_ORDER_TYPE_STRINGS[((orderType & 0xF0) >> 3) + (orderType & 0x0F)], orderLength);

	switch (orderType)
	{
		case RDP_RAIL_ORDER_HANDSHAKE:
		{
			RAIL_HANDSHAKE_ORDER handshake;
			return rail_recv_handshake_order(rail, &handshake, s);
		}

		case RDP_RAIL_ORDER_HANDSHAKE_EX:
		{
			RAIL_HANDSHAKE_EX_ORDER handshakeEx;
			return rail_recv_handshake_ex_order(rail, &handshakeEx, s);
		}

		case RDP_RAIL_ORDER_EXEC_RESULT:
		{
			RAIL_EXEC_RESULT_ORDER execResult;
			return rail_recv_exec_result_order(rail, &execResult, s);
		}

		case RDP_RAIL_ORDER_SYSPARAM:
		{
			RAIL_SYSPARAM_ORDER sysparam;
			return rail_recv_server_sysparam_order(rail, &sysparam, s);
		}

		case RDP_RAIL_ORDER_MINMAXINFO:
		{
			RAIL_MINMAXINFO_ORDER minMaxInfo;
			return rail_recv_server_minmaxinfo_order(rail, &minMaxInfo, s);
		}

		case RDP_RAIL_ORDER_LOCALMOVESIZE:
		{
			RAIL_LOCALMOVESIZE_ORDER localMoveSize;
			return rail_recv_server_localmovesize_order(rail, &localMoveSize, s);
		}

		case RDP_RAIL_ORDER_GET_APPID_RESP:
		{
			RAIL_GET_APPID_RESP_ORDER getAppIdResp;
			return rail_recv_server_get_appid_resp_order(rail, &getAppIdResp, s);
		}

		case RDP_RAIL_ORDER_LANGBARINFO:
		{
			RAIL_LANGBAR_INFO_ORDER langBarInfo;
			return rail_recv_langbar_info_order(rail, &langBarInfo, s);
		}

		default:
			WLog_ERR(TAG,  "Unknown RAIL PDU order reveived.");
			break;
	}

	return TRUE;
}