Most of the RPD protocol errors (reason > 0x1000) would only be
triggered by coding errors in the client. A few of them can occur due
to server errors however. We should attempt to handle these cases.
There seems to have been confusion with regards to which exit code and
message was returned by rdesktop for the following cases:
* disconnected by admin
* logged out by admin
* disconnect by user
* logoff by user
Looking at Microsoft's official documentation as well as testing using
Windows Server 2008 R2, 2012 R2 and 2016 reveals that this commit fixes
this issue. They do now match the reasons sent by the server.
This remove the use of deprecated rdp_out_unistr() and
uses correct string length instead of assumition that all
utf16 symbols are represented by 2 bytes.
The old code was filled by assumtions that all symbols in utf16
is represented by 2 bytes which is not true and resulted in
truncated strings.
Fixes issue #60
The new cursor rendering code that was added will render
1bpp XOR cursors as plain black cursors. This introduces
a problem were the cursor is not visible on dark backgrounds.
This change adds a white outlined rendering of the shape to
those specific cursors.
This work is done by Nikita Krupenko which sent a patch to
rdesktop in 2010 for version 1.6.0. I have now ported it
over to trunk and it seems to work as expected.
Most of the disk access used to be bunched together with the general
protocol debugging, which made it hard to isolate log messages from
the disk subsystem. This commit introduces a new "Disk" log subject.
This commit enables support for color cursors with alpha,
however this raises the requirement of libXcursor which is
not such a big deal.
Fixes issue #86 and #21
If sec_parse_crypt_info returns false, it's not always a problem with
parsing the crypt info. It could very well be that Enhanced RDP
Security is used, which would trigger a false return value from the
function.
This commit adds new log messages to sec_parse_crypt_info for cases it
would return false and removes the incorrect catch-all message from
the caller.
This fixes several issues where credentials are required
before the connection is carried out. Such as dual
authentication prompts when redirected by load balancer.