* @return
*/
-int nego_tcp_connect(rdpNego* nego)
+boolean nego_tcp_connect(rdpNego* nego)
{
if (nego->tcp_connected == 0)
{
if (transport_connect(nego->transport, nego->hostname, nego->port) == False)
{
nego->tcp_connected = 0;
- return 0;
+ return False;
}
else
{
nego->tcp_connected = 1;
- return 1;
+ return True;
}
}
- return 1;
+ return True;
}
/**
DEBUG_NEGO("Attempting NLA security");
- nego_tcp_connect(nego);
+ if (!nego_tcp_connect(nego))
+ {
+ nego->state = NEGO_STATE_FAIL;
+ return;
+ }
+
nego_send_negotiation_request(nego);
nego_recv_response(nego);
DEBUG_NEGO("Attempting TLS security");
- nego_tcp_connect(nego);
+ if (!nego_tcp_connect(nego))
+ {
+ nego->state = NEGO_STATE_FAIL;
+ return;
+ }
+
nego_send_negotiation_request(nego);
nego_recv_response(nego);
DEBUG_NEGO("Attempting RDP security");
- nego_tcp_connect(nego);
+ if (!nego_tcp_connect(nego))
+ {
+ nego->state = NEGO_STATE_FAIL;
+ return;
+ }
+
nego_send_negotiation_request(nego);
nego_recv_response(nego);