示例#1
0
boolean rdp_recv_save_session_info(rdpRdp* rdp, STREAM* s)
{
	uint32 infoType;

	stream_read_uint32(s, infoType); /* infoType (4 bytes) */

	//printf("%s\n", INFO_TYPE_LOGON_STRINGS[infoType]);

	switch (infoType)
	{
		case INFO_TYPE_LOGON:
			rdp_recv_logon_info_v1(rdp, s);
			break;

		case INFO_TYPE_LOGON_LONG:
			rdp_recv_logon_info_v2(rdp, s);
			break;

		case INFO_TYPE_LOGON_PLAIN_NOTIFY:
			rdp_recv_logon_plain_notify(rdp, s);
			break;

		case INFO_TYPE_LOGON_EXTENDED_INF:
			rdp_recv_logon_info_extended(rdp, s);
			break;

		default:
			break;
	}

	return true;
}
示例#2
0
BOOL rdp_recv_save_session_info(rdpRdp* rdp, wStream* s)
{
	UINT32 infoType;

	if (Stream_GetRemainingLength(s) < 4)
		return FALSE;
	Stream_Read_UINT32(s, infoType); /* infoType (4 bytes) */

	//fprintf(stderr, "%s\n", INFO_TYPE_LOGON_STRINGS[infoType]);

	switch (infoType)
	{
		case INFO_TYPE_LOGON:
			return rdp_recv_logon_info_v1(rdp, s);

		case INFO_TYPE_LOGON_LONG:
			return rdp_recv_logon_info_v2(rdp, s);

		case INFO_TYPE_LOGON_PLAIN_NOTIFY:
			return rdp_recv_logon_plain_notify(rdp, s);

		case INFO_TYPE_LOGON_EXTENDED_INF:
			return rdp_recv_logon_info_extended(rdp, s);

		default:
			break;
	}

	return TRUE;
}