settings->domain = redirection->domain.ascii;
}
+ if (redirection->flags & LB_PASSWORD)
+ {
+ xfree(settings->password);
+ settings->password = redirection->password.ascii;
+ }
+
return rdp_client_connect(rdp);
}
printf("Error: TODO\n");
return false;
}
- if (securityHeader & SEC_ENCRYPT)
+ if (securityHeader & (SEC_ENCRYPT|SEC_REDIRECTION_PKT))
{
if (!rdp_decrypt(rdp, s, length - 4))
{
return false;
}
}
+ if (securityHeader & SEC_REDIRECTION_PKT)
+ {
+ /*
+ * [MS-RDPBCGR] 2.2.13.2.1
+ * - no share control header, nor the 2 byte pad
+ */
+ s->p -= 2;
+ rdp_recv_enhanced_security_redirection_packet(rdp, s);
+ return true;
+ }
}
if (channelId != MCS_GLOBAL_CHANNEL_ID)