Beispiel #1
0
void gcc_read_server_data_blocks(STREAM* s, rdpSettings *settings, int length)
{
	uint16 type;
	uint16 offset = 0;
	uint16 blockLength;

	while (offset < length)
	{
		gcc_read_user_data_header(s, &type, &blockLength);

		switch (type)
		{
			case SC_CORE:
				gcc_read_server_core_data(s, settings);
				break;

			case SC_SECURITY:
				gcc_read_server_security_data(s, settings);
				break;

			case SC_NET:
				gcc_read_server_network_data(s, settings);
				break;

			default:
				break;
		}

		offset += blockLength;
	}
}
Beispiel #2
0
BOOL gcc_read_server_data_blocks(wStream* s, rdpSettings* settings, int length)
{
	UINT16 type;
	UINT16 offset = 0;
	UINT16 blockLength;
	BYTE* holdp;

	while (offset < length)
	{
		holdp = Stream_Pointer(s);

		if (!gcc_read_user_data_header(s, &type, &blockLength))
		{
			fprintf(stderr, "gcc_read_server_data_blocks: gcc_read_user_data_header failed\n");
			return FALSE;
		}

		switch (type)
		{
			case SC_CORE:
				if (!gcc_read_server_core_data(s, settings))
				{
					fprintf(stderr, "gcc_read_server_data_blocks: gcc_read_server_core_data failed\n");
					return FALSE;
				}
				break;

			case SC_SECURITY:
				if (!gcc_read_server_security_data(s, settings))
				{
					fprintf(stderr, "gcc_read_server_data_blocks: gcc_read_server_security_data failed\n");
					return FALSE;
				}
				break;

			case SC_NET:
				if (!gcc_read_server_network_data(s, settings))
				{
					fprintf(stderr, "gcc_read_server_data_blocks: gcc_read_server_network_data failed\n");
					return FALSE;
				}
				break;

			default:
				fprintf(stderr, "gcc_read_server_data_blocks: ignoring type=%hu\n", type);
				break;
		}
		offset += blockLength;
		Stream_Pointer(s) = holdp + blockLength;
	}

	return TRUE;
}
Beispiel #3
0
boolean gcc_read_server_data_blocks(STREAM* s, rdpSettings* settings, int length)
{
	uint16 type;
	uint16 offset = 0;
	uint16 blockLength;
	uint8* holdp;

	while (offset < length)
	{
		holdp = s->p;

		if (!gcc_read_user_data_header(s, &type, &blockLength))
		{
			printf("gcc_read_server_data_blocks: gcc_read_user_data_header failed\n");
			return false;
		}

		switch (type)
		{
			case SC_CORE:
				if (!gcc_read_server_core_data(s, settings))
				{
					printf("gcc_read_server_data_blocks: gcc_read_server_core_data failed\n");
					return false;
				}
				break;

			case SC_SECURITY:
				if (!gcc_read_server_security_data(s, settings))
				{
					printf("gcc_read_server_data_blocks: gcc_read_server_security_data failed\n");
					return false;
				}
				break;

			case SC_NET:
				if (!gcc_read_server_network_data(s, settings))
				{
					printf("gcc_read_server_data_blocks: gcc_read_server_network_data failed\n");
					return false;
				}
				break;

			default:
				printf("gcc_read_server_data_blocks: ignoring type=%hu\n", type);
				break;
		}
		offset += blockLength;
		s->p = holdp + blockLength;
	}

	return true;
}
Beispiel #4
0
BOOL gcc_read_server_data_blocks(wStream* s, rdpMcs* mcs, int length)
{
	UINT16 type;
	UINT16 offset = 0;
	UINT16 blockLength;
	BYTE* holdp;

	while (offset < length)
	{
		holdp = Stream_Pointer(s);

		if (!gcc_read_user_data_header(s, &type, &blockLength))
		{
			WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_user_data_header failed");
			return FALSE;
		}

		switch (type)
		{
			case SC_CORE:
				if (!gcc_read_server_core_data(s, mcs))
				{
					WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_server_core_data failed");
					return FALSE;
				}
				break;

			case SC_SECURITY:
				if (!gcc_read_server_security_data(s, mcs))
				{
					WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_server_security_data failed");
					return FALSE;
				}
				break;

			case SC_NET:
				if (!gcc_read_server_network_data(s, mcs))
				{
					WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_server_network_data failed");
					return FALSE;
				}
				break;

			case SC_MCS_MSGCHANNEL:
				if (!gcc_read_server_message_channel_data(s, mcs))
				{
					WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_server_message_channel_data failed");
					return FALSE;
				}
				break;

			case SC_MULTITRANSPORT:
				if (!gcc_read_server_multitransport_channel_data(s, mcs))
				{
					WLog_ERR(TAG,  "gcc_read_server_data_blocks: gcc_read_server_multitransport_channel_data failed");
					return FALSE;
				}
				break;

			default:
				WLog_ERR(TAG,  "gcc_read_server_data_blocks: ignoring type=%hu", type);
				break;
		}
		offset += blockLength;
		Stream_Pointer(s) = holdp + blockLength;
	}

	return TRUE;
}