示例#1
0
文件: nego.c 项目: matthew-n/FreeRDP
void nego_attempt_nla(rdpNego* nego)
{
	nego->RequestedProtocols = PROTOCOL_NLA | PROTOCOL_TLS;

	WLog_DBG(TAG, "Attempting NLA security");

	if (!nego_transport_connect(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}

	if (!nego_send_negotiation_request(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}

	if (!nego_recv_response(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}

	WLog_DBG(TAG, "state: %s", NEGO_STATE_STRINGS[nego->state]);

	if (nego->state != NEGO_STATE_FINAL)
	{
		nego_transport_disconnect(nego);

		if (nego->EnabledProtocols[PROTOCOL_TLS])
			nego->state = NEGO_STATE_TLS;
		else if (nego->EnabledProtocols[PROTOCOL_RDP])
			nego->state = NEGO_STATE_RDP;
		else
			nego->state = NEGO_STATE_FAIL;
	}
}
示例#2
0
文件: nego.c 项目: FreeRDP/FreeRDP
static void nego_attempt_rdp(rdpNego* nego)
{
	nego->RequestedProtocols = PROTOCOL_RDP;
	WLog_DBG(TAG, "Attempting RDP security");

	if (!nego_transport_connect(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}

	if (!nego_send_negotiation_request(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}

	if (!nego_recv_response(nego))
	{
		nego->state = NEGO_STATE_FAIL;
		return;
	}
}
示例#3
0
文件: nego.c 项目: ydal/FreeRDP
void nego_attempt_rdp(rdpNego* nego)
{
    nego->requested_protocols = PROTOCOL_RDP;

    DEBUG_NEGO("Attempting RDP security");

    if (!nego_tcp_connect(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }

    if (!nego_send_negotiation_request(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }

    if (!nego_recv_response(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }
}
示例#4
0
文件: nego.c 项目: ydal/FreeRDP
void nego_attempt_nla(rdpNego* nego)
{
    nego->requested_protocols = PROTOCOL_NLA | PROTOCOL_TLS;

    DEBUG_NEGO("Attempting NLA security");

    if (!nego_tcp_connect(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }

    if (!nego_send_negotiation_request(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }

    if (!nego_recv_response(nego))
    {
        nego->state = NEGO_STATE_FAIL;
        return;
    }

    if (nego->state != NEGO_STATE_FINAL)
    {
        nego_tcp_disconnect(nego);

        if (nego->enabled_protocols[PROTOCOL_TLS] > 0)
            nego->state = NEGO_STATE_TLS;
        else if (nego->enabled_protocols[PROTOCOL_RDP] > 0)
            nego->state = NEGO_STATE_RDP;
        else
            nego->state = NEGO_STATE_FAIL;
    }
}