Remove process of packets in rdp_connect.
The process of packets in rdp_connect assumes that the first packets are demand active to set g_rdp_shareid which is not true. In case when CredSSP+Kerberos is in use an enhanced redirection PDU packet is sent before the demande active PDU. This fixes the problem with rdesktop silently exists in the case above. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk@1794 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
a8e9328c9f
commit
708c3861f1
13
rdp.c
13
rdp.c
@ -1728,23 +1728,14 @@ RD_BOOL
|
|||||||
rdp_connect(char *server, uint32 flags, char *domain, char *password,
|
rdp_connect(char *server, uint32 flags, char *domain, char *password,
|
||||||
char *command, char *directory, RD_BOOL reconnect)
|
char *command, char *directory, RD_BOOL reconnect)
|
||||||
{
|
{
|
||||||
RD_BOOL deactivated = False;
|
|
||||||
uint32 ext_disc_reason = 0;
|
|
||||||
|
|
||||||
if (!sec_connect(server, g_username, domain, password, reconnect))
|
if (!sec_connect(server, g_username, domain, password, reconnect))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
rdp_send_logon_info(flags, domain, g_username, password, command, directory);
|
rdp_send_logon_info(flags, domain, g_username, password, command, directory);
|
||||||
|
|
||||||
/* run RDP loop until first licence demand active PDU */
|
if (g_network_error)
|
||||||
while (!g_rdp_shareid)
|
return False;
|
||||||
{
|
|
||||||
if (g_network_error)
|
|
||||||
return False;
|
|
||||||
|
|
||||||
if (!rdp_loop(&deactivated, &ext_disc_reason))
|
|
||||||
return False;
|
|
||||||
}
|
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user