Merge pull request #183 from realsobek/fix-spelling-mistakes
Fix minor spelling mistakes
This commit is contained in:
commit
50100f85e6
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
rdesktop is an open source client for Microsoft's RDP protocol. It is
|
rdesktop is an open source client for Microsoft's RDP protocol. It is
|
||||||
known to work with Windows versions ranging from NT 4 Terminal Server
|
known to work with Windows versions ranging from NT 4 Terminal Server
|
||||||
to Windows 2012r2 RDS. rdesktop currently has implemented the RDP version 4
|
to Windows 2012 R2 RDS. rdesktop currently has implemented the RDP version 4
|
||||||
and 5 protocols.
|
and 5 protocols.
|
||||||
|
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ the configure line.
|
|||||||
|
|
||||||
## Note for users building from source
|
## Note for users building from source
|
||||||
|
|
||||||
If you have retreived a snapshot of the rdesktop source, you will first
|
If you have retrieved a snapshot of the rdesktop source, you will first
|
||||||
need to run `./bootstrap` in order to generate the build infrastructure.
|
need to run `./bootstrap` in order to generate the build infrastructure.
|
||||||
This is not necessary for release versions of rdesktop.
|
This is not necessary for release versions of rdesktop.
|
||||||
|
|
||||||
@ -36,9 +36,9 @@ Connect to an RDP server with:
|
|||||||
|
|
||||||
% rdesktop server
|
% rdesktop server
|
||||||
|
|
||||||
where server is the name of the Terminal Services machine. (If you receive
|
where server is the name of the Terminal Services machine. If you receive
|
||||||
"Connection refused", this probably means that the server does not have
|
"Connection refused", this probably means that the server does not have
|
||||||
Terminal Services enabled, or there is a firewall blocking access.)
|
Terminal Services enabled, or there is a firewall blocking access.
|
||||||
|
|
||||||
You can also specify a number of options on the command line. These are listed
|
You can also specify a number of options on the command line. These are listed
|
||||||
in the rdesktop manual page (run "man rdesktop").
|
in the rdesktop manual page (run "man rdesktop").
|
||||||
|
4
bitmap.c
4
bitmap.c
@ -17,8 +17,8 @@
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* three seperate function for speed when decompressing the bitmaps
|
/* three separate function for speed when decompressing the bitmaps
|
||||||
when modifing one function make the change in the others
|
when modifying one function make the change in the others
|
||||||
jay.sorg@gmail.com */
|
jay.sorg@gmail.com */
|
||||||
|
|
||||||
/* indent is confused by this file */
|
/* indent is confused by this file */
|
||||||
|
8
cache.c
8
cache.c
@ -31,9 +31,9 @@ extern int g_pstcache_fd[];
|
|||||||
#define IS_SET(idx) (idx >= 0)
|
#define IS_SET(idx) (idx >= 0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* TODO: Test for optimal value of BUMP_COUNT. TO_TOP gives lowest cpu utilisation but using
|
* TODO: Test for optimal value of BUMP_COUNT. TO_TOP gives lowest CPU utilisation but using
|
||||||
* a positive value will hopefully result in less frequently used bitmaps having a greater chance
|
* a positive value will hopefully result in less frequently used bitmaps having a greater chance
|
||||||
* of being evicted from the cache, and therby reducing the need to load bitmaps from disk.
|
* of being evicted from the cache, and thereby reducing the need to load bitmaps from disk.
|
||||||
* (Jeroen)
|
* (Jeroen)
|
||||||
*/
|
*/
|
||||||
#define BUMP_COUNT 40
|
#define BUMP_COUNT 40
|
||||||
@ -437,7 +437,7 @@ cache_put_cursor(uint16 cache_idx, RD_HCURSOR cursor)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* BRUSH CACHE */
|
/* BRUSH CACHE */
|
||||||
/* index 0 is 2 colour brush, index 1 is muti colour brush */
|
/* index 0 is 2 colour brush, index 1 is multi colour brush */
|
||||||
static BRUSHDATA g_brushcache[2][64];
|
static BRUSHDATA g_brushcache[2][64];
|
||||||
|
|
||||||
/* Retrieve brush from cache */
|
/* Retrieve brush from cache */
|
||||||
@ -454,7 +454,7 @@ cache_get_brush_data(uint8 colour_code, uint8 idx)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Store brush in cache */
|
/* Store brush in cache */
|
||||||
/* this function takes over the data pointer in struct, eg, caller gives it up */
|
/* this function takes over the data pointer in struct, e.g. caller gives it up */
|
||||||
void
|
void
|
||||||
cache_put_brush_data(uint8 colour_code, uint8 idx, BRUSHDATA * brush_data)
|
cache_put_brush_data(uint8 colour_code, uint8 idx, BRUSHDATA * brush_data)
|
||||||
{
|
{
|
||||||
|
2
config.guess
vendored
2
config.guess
vendored
@ -148,7 +148,7 @@ fi
|
|||||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
*:NetBSD:*:*)
|
*:NetBSD:*:*)
|
||||||
# NetBSD (nbsd) targets should (where applicable) match one or
|
# NetBSD (nbsd) targets should (where applicable) match one or
|
||||||
# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
|
# more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
|
||||||
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
# *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
|
||||||
# switched to ELF, *-*-netbsd* would select the old
|
# switched to ELF, *-*-netbsd* would select the old
|
||||||
# object file format. This provides both forward
|
# object file format. This provides both forward
|
||||||
|
@ -179,12 +179,12 @@ enum MCS_PDU_TYPE
|
|||||||
#define LICENCE_SIGNATURE_SIZE 16
|
#define LICENCE_SIGNATURE_SIZE 16
|
||||||
|
|
||||||
#define LICENCE_TAG_REQUEST 0x01
|
#define LICENCE_TAG_REQUEST 0x01
|
||||||
#define LICENCE_TAG_PLATFORM_CHALLANGE 0x02
|
#define LICENCE_TAG_PLATFORM_CHALLENGE 0x02
|
||||||
#define LICENCE_TAG_NEW_LICENCE 0x03
|
#define LICENCE_TAG_NEW_LICENCE 0x03
|
||||||
#define LICENCE_TAG_UPGRADE_LICENCE 0x04
|
#define LICENCE_TAG_UPGRADE_LICENCE 0x04
|
||||||
#define LICENCE_TAG_LICENCE_INFO 0x12
|
#define LICENCE_TAG_LICENCE_INFO 0x12
|
||||||
#define LICENCE_TAG_NEW_LICENCE_REQUEST 0x13
|
#define LICENCE_TAG_NEW_LICENCE_REQUEST 0x13
|
||||||
#define LICENCE_TAG_PLATFORM_CHALLANGE_RESPONSE 0x15
|
#define LICENCE_TAG_PLATFORM_CHALLENGE_RESPONSE 0x15
|
||||||
#define LICENCE_TAG_ERROR_ALERT 0xff
|
#define LICENCE_TAG_ERROR_ALERT 0xff
|
||||||
|
|
||||||
#define BB_CLIENT_USER_NAME_BLOB 0x000f
|
#define BB_CLIENT_USER_NAME_BLOB 0x000f
|
||||||
@ -394,7 +394,7 @@ enum RDP_INPUT_DEVICE
|
|||||||
#define RDP_INFO_AUTOLOGON 0x00000008
|
#define RDP_INFO_AUTOLOGON 0x00000008
|
||||||
#define RDP_INFO_UNICODE 0x00000010
|
#define RDP_INFO_UNICODE 0x00000010
|
||||||
#define RDP_INFO_MAXIMIZESHELL 0x00000020
|
#define RDP_INFO_MAXIMIZESHELL 0x00000020
|
||||||
#define RDP_INFO_COMPRESSION 0x00000080 /* mppc compression with 8kB histroy buffer */
|
#define RDP_INFO_COMPRESSION 0x00000080 /* mppc compression with 8kB history buffer */
|
||||||
#define RDP_INFO_ENABLEWINDOWSKEY 0x00000100
|
#define RDP_INFO_ENABLEWINDOWSKEY 0x00000100
|
||||||
#define RDP_INFO_COMPRESSION2 0x00000200 /* rdp5 mppc compression with 64kB history buffer */
|
#define RDP_INFO_COMPRESSION2 0x00000200 /* rdp5 mppc compression with 64kB history buffer */
|
||||||
#define RDP_INFO_REMOTE_CONSOLE_AUDIO 0x00002000
|
#define RDP_INFO_REMOTE_CONSOLE_AUDIO 0x00002000
|
||||||
@ -682,7 +682,7 @@ enum RDP_PDU_REDIRECT_FLAGS
|
|||||||
LB_TARGET_CERTIFICATE = 0x10000
|
LB_TARGET_CERTIFICATE = 0x10000
|
||||||
};
|
};
|
||||||
|
|
||||||
/* desttop orientation */
|
/* desktop orientation */
|
||||||
enum RDP_DESKTOP_ORIENTATION
|
enum RDP_DESKTOP_ORIENTATION
|
||||||
{
|
{
|
||||||
ORIENTATION_LANDSCAPE = 0,
|
ORIENTATION_LANDSCAPE = 0,
|
||||||
|
8
cssp.c
8
cssp.c
@ -1,6 +1,6 @@
|
|||||||
/* -*- c-basic-offset: 8 -*-
|
/* -*- c-basic-offset: 8 -*-
|
||||||
rdesktop: A Remote Desktop Protocol client.
|
rdesktop: A Remote Desktop Protocol client.
|
||||||
CredSSP layer and kerberos support.
|
CredSSP layer and Kerberos support.
|
||||||
Copyright 2012-2017 Henrik Andersson <hean01@cendio.se> for Cendio AB
|
Copyright 2012-2017 Henrik Andersson <hean01@cendio.se> for Cendio AB
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
@ -710,7 +710,7 @@ cssp_connect(char *server, char *user, char *domain, char *password, STREAM s)
|
|||||||
return False;
|
return False;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Establish tls connection to server
|
// Establish TLS connection to server
|
||||||
if (!tcp_tls_connect())
|
if (!tcp_tls_connect())
|
||||||
{
|
{
|
||||||
logger(Core, Debug, "cssp_connect(), failed to establish TLS connection");
|
logger(Core, Debug, "cssp_connect(), failed to establish TLS connection");
|
||||||
@ -751,7 +751,7 @@ cssp_connect(char *server, char *user, char *domain, char *password, STREAM s)
|
|||||||
{
|
{
|
||||||
if (i == 0)
|
if (i == 0)
|
||||||
logger(Core, Notice,
|
logger(Core, Notice,
|
||||||
"Failed to intialize NLA, do you have correct kerberos tgt initialized ?");
|
"Failed to initialize NLA, do you have correct Kerberos TGT initialized ?");
|
||||||
else
|
else
|
||||||
logger(Core, Error, "cssp_connect(), negotiation failed");
|
logger(Core, Error, "cssp_connect(), negotiation failed");
|
||||||
|
|
||||||
@ -764,7 +764,7 @@ cssp_connect(char *server, char *user, char *domain, char *password, STREAM s)
|
|||||||
if (!(actual_services & GSS_C_CONF_FLAG))
|
if (!(actual_services & GSS_C_CONF_FLAG))
|
||||||
{
|
{
|
||||||
logger(Core, Error,
|
logger(Core, Error,
|
||||||
"cssp_connect(), confidiality service required but is not available");
|
"cssp_connect(), confidentiality service required but is not available");
|
||||||
goto bail_out;
|
goto bail_out;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
8
ctrl.c
8
ctrl.c
@ -82,7 +82,7 @@ _ctrl_slave_new(int sock)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* no elemnts in list, lets add first */
|
/* no elements in list, lets add first */
|
||||||
_ctrl_slaves = ns;
|
_ctrl_slaves = ns;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -427,7 +427,7 @@ ctrl_check_fds(fd_set * rfds, fd_set * wfds)
|
|||||||
p = strchr(p + 1, '\n');
|
p = strchr(p + 1, '\n');
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If we havent found an nonescaped \n we need more data */
|
/* If we haven't found a nonescaped \n we need more data */
|
||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -485,12 +485,12 @@ ctrl_send_command(const char *cmd, const char *arg)
|
|||||||
if (ret != 0)
|
if (ret != 0)
|
||||||
goto bail_out;
|
goto bail_out;
|
||||||
|
|
||||||
/* escape the utf-8 string */
|
/* escape the UTF-8 string */
|
||||||
escaped = utils_string_escape(tmp);
|
escaped = utils_string_escape(tmp);
|
||||||
if ((strlen(escaped) + 1) > CTRL_LINEBUF_SIZE - 1)
|
if ((strlen(escaped) + 1) > CTRL_LINEBUF_SIZE - 1)
|
||||||
goto bail_out;
|
goto bail_out;
|
||||||
|
|
||||||
/* send escaped utf-8 command to master */
|
/* send escaped UTF-8 command to master */
|
||||||
send(s, escaped, strlen(escaped), 0);
|
send(s, escaped, strlen(escaped), 0);
|
||||||
send(s, "\n", 1, 0);
|
send(s, "\n", 1, 0);
|
||||||
|
|
||||||
|
12
disk.c
12
disk.c
@ -276,7 +276,7 @@ open_weak_exclusive(const char *pathname, int flags, mode_t mode)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* An error occured, and we are using O_EXCL. In case the FS
|
/* An error occurred, and we are using O_EXCL. In case the FS
|
||||||
doesn't support O_EXCL, some kind of error will be
|
doesn't support O_EXCL, some kind of error will be
|
||||||
returned. Unfortunately, we don't know which one. Linux
|
returned. Unfortunately, we don't know which one. Linux
|
||||||
2.6.8 seems to return 524, but I cannot find a documented
|
2.6.8 seems to return 524, but I cannot find a documented
|
||||||
@ -309,7 +309,7 @@ open_weak_exclusive(const char *pathname, int flags, mode_t mode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Enumeration of devices from rdesktop.c */
|
/* Enumeration of devices from rdesktop.c */
|
||||||
/* returns numer of units found and initialized. */
|
/* returns number of units found and initialized. */
|
||||||
/* optarg looks like ':h=/mnt/floppy,b=/mnt/usbdevice1' */
|
/* optarg looks like ':h=/mnt/floppy,b=/mnt/usbdevice1' */
|
||||||
/* when it arrives to this function. */
|
/* when it arrives to this function. */
|
||||||
int
|
int
|
||||||
@ -368,7 +368,7 @@ disk_create(uint32 device_id, uint32 accessmask, uint32 sharemode, uint32 create
|
|||||||
|
|
||||||
sprintf(path, "%s%s", g_rdpdr_device[device_id].local_path, filename ? filename : "");
|
sprintf(path, "%s%s", g_rdpdr_device[device_id].local_path, filename ? filename : "");
|
||||||
|
|
||||||
/* Protect against mailicous servers:
|
/* Protect against malicious servers:
|
||||||
somelongpath/.. not allowed
|
somelongpath/.. not allowed
|
||||||
somelongpath/../b not allowed
|
somelongpath/../b not allowed
|
||||||
somelongpath/..b in principle ok, but currently not allowed
|
somelongpath/..b in principle ok, but currently not allowed
|
||||||
@ -416,7 +416,7 @@ disk_create(uint32 device_id, uint32 accessmask, uint32 sharemode, uint32 create
|
|||||||
|
|
||||||
/*printf("Open: \"%s\" flags: %X, accessmask: %X sharemode: %X create disp: %X\n", path, flags_and_attributes, accessmask, sharemode, create_disposition); */
|
/*printf("Open: \"%s\" flags: %X, accessmask: %X sharemode: %X create disp: %X\n", path, flags_and_attributes, accessmask, sharemode, create_disposition); */
|
||||||
|
|
||||||
/* Get information about file and set that flag ourselfs */
|
/* Get information about file and set that flag ourselves */
|
||||||
if ((stat(path, &filestat) == 0) && (S_ISDIR(filestat.st_mode)))
|
if ((stat(path, &filestat) == 0) && (S_ISDIR(filestat.st_mode)))
|
||||||
{
|
{
|
||||||
if (flags_and_attributes & FILE_NON_DIRECTORY_FILE)
|
if (flags_and_attributes & FILE_NON_DIRECTORY_FILE)
|
||||||
@ -1168,7 +1168,7 @@ disk_query_volume_information(RD_NTHANDLE handle, uint32 info_class, STREAM out)
|
|||||||
out_uint32_le(out, stat_fs.f_blocks); /* Total allocation units low */
|
out_uint32_le(out, stat_fs.f_blocks); /* Total allocation units low */
|
||||||
out_uint32_le(out, 0); /* Total allocation high units */
|
out_uint32_le(out, 0); /* Total allocation high units */
|
||||||
out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */
|
out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */
|
||||||
out_uint32_le(out, 0); /* Available allowcation units */
|
out_uint32_le(out, 0); /* Available allocation units */
|
||||||
out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */
|
out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */
|
||||||
out_uint32_le(out, 0x200); /* Bytes per sector */
|
out_uint32_le(out, 0x200); /* Bytes per sector */
|
||||||
break;
|
break;
|
||||||
@ -1180,7 +1180,7 @@ disk_query_volume_information(RD_NTHANDLE handle, uint32 info_class, STREAM out)
|
|||||||
out_uint32_le(out, stat_fs.f_bavail); /* Caller allocation units low */
|
out_uint32_le(out, stat_fs.f_bavail); /* Caller allocation units low */
|
||||||
out_uint32_le(out, 0); /* Caller allocation units high */
|
out_uint32_le(out, 0); /* Caller allocation units high */
|
||||||
out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */
|
out_uint32_le(out, stat_fs.f_bfree); /* Available allocation units */
|
||||||
out_uint32_le(out, 0); /* Available allowcation units */
|
out_uint32_le(out, 0); /* Available allocation units */
|
||||||
out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */
|
out_uint32_le(out, stat_fs.f_bsize / 0x200); /* Sectors per allocation unit */
|
||||||
out_uint32_le(out, 0x200); /* Bytes per sector */
|
out_uint32_le(out, 0x200); /* Bytes per sector */
|
||||||
break;
|
break;
|
||||||
|
@ -41,15 +41,15 @@ rdesktop (1.8.1)
|
|||||||
* Fix issue with reconnect, make use of deactivate variable
|
* Fix issue with reconnect, make use of deactivate variable
|
||||||
* Added 4 new disconnect reasons with exit codes
|
* Added 4 new disconnect reasons with exit codes
|
||||||
* Fix issues of window handling in SeamlessRDP parts of rdesktop
|
* Fix issues of window handling in SeamlessRDP parts of rdesktop
|
||||||
* Fix a backward compability with OpenSSL < 0.9.9
|
* Fix a backward compatibility with OpenSSL < 0.9.9
|
||||||
* Fix a bug when code needs a x window available but there are none.
|
* Fix a bug when code needs a x window available but there are none.
|
||||||
* Fix a sigsegv zeroing memory
|
* Fix a sigsegv zeroing memory
|
||||||
* Fix a 64bit portability issue
|
* Fix a 64-bit portability issue
|
||||||
|
|
||||||
-- Henrik Andersson <hean01@users.sourceforge.net> 2013-11-18
|
-- Henrik Andersson <hean01@users.sourceforge.net> 2013-11-18
|
||||||
|
|
||||||
rdesktop (1.8.0)
|
rdesktop (1.8.0)
|
||||||
* Support for protocol negotiation eg. SSL/TLSv1 and CredSSP
|
* Support for protocol negotiation e.g. SSL/TLSv1 and CredSSP
|
||||||
* Support for CredSSP + Kerberos authentication (NLA)
|
* Support for CredSSP + Kerberos authentication (NLA)
|
||||||
* Support for smart card single-sign-on
|
* Support for smart card single-sign-on
|
||||||
* Support passing smart card pin as password as argument
|
* Support passing smart card pin as password as argument
|
||||||
@ -67,10 +67,10 @@ rdesktop (1.8.0)
|
|||||||
|
|
||||||
rdesktop (1.7.1)
|
rdesktop (1.7.1)
|
||||||
* Fix clipboard issue when not building with unicode support
|
* Fix clipboard issue when not building with unicode support
|
||||||
* Fix compilation against newer PCSC lite versions
|
* Fix compilation against newer PCSC-lite versions
|
||||||
* Fix for per-device license mode on Windows 2008 R2 terminal server
|
* Fix for per-device license mode on Windows 2008 R2 terminal server
|
||||||
* Fix building 64bit version with static openssl linkage
|
* Fix building 64-bit version with static openssl linkage
|
||||||
* Rewrite of smartcard handling for 64bit support, fixes several bugs
|
* Rewrite of smartcard handling for 64-bit support, fixes several bugs
|
||||||
* Improved license handling using XDG directories
|
* Improved license handling using XDG directories
|
||||||
|
|
||||||
-- Henrik Andersson <hean01@users.sourceforge.net> 2012-01-09
|
-- Henrik Andersson <hean01@users.sourceforge.net> 2012-01-09
|
||||||
@ -113,7 +113,7 @@ rdesktop (1.6.0)
|
|||||||
rdesktop (1.5.0)
|
rdesktop (1.5.0)
|
||||||
* SeamlessRDP - seamless windows support
|
* SeamlessRDP - seamless windows support
|
||||||
* Keymap fixes
|
* Keymap fixes
|
||||||
* Fix connection issues with Windows XP RTM
|
* Fix connection issues with Microsoft Windows XP RTM
|
||||||
* Keyboard handling improvements and fixes
|
* Keyboard handling improvements and fixes
|
||||||
* SGI/Irix sound-driver fixes
|
* SGI/Irix sound-driver fixes
|
||||||
* Support for clipboard INCR protocol
|
* Support for clipboard INCR protocol
|
||||||
@ -125,7 +125,7 @@ rdesktop (1.5.0)
|
|||||||
* Large file support
|
* Large file support
|
||||||
* The default color depth is now the depth of the root window
|
* The default color depth is now the depth of the root window
|
||||||
* Basic support for Windows Vista Beta 2
|
* Basic support for Windows Vista Beta 2
|
||||||
* Fix high cpu-usage in OSS-driver
|
* Fix high CPU-usage in OSS-driver
|
||||||
|
|
||||||
-- Peter Astrand <astrand@cendio.se> Wed, 13 Sep 2006 15:11:39 +0200 (CEST)
|
-- Peter Astrand <astrand@cendio.se> Wed, 13 Sep 2006 15:11:39 +0200 (CEST)
|
||||||
|
|
||||||
@ -162,7 +162,7 @@ rdesktop (1.4.0)
|
|||||||
rdesktop (1.3.1)
|
rdesktop (1.3.1)
|
||||||
* Crypto fixes for RDP5
|
* Crypto fixes for RDP5
|
||||||
* Keyboard and keymap fixes
|
* Keyboard and keymap fixes
|
||||||
* some endianess fixes for high color
|
* some endianness fixes for high color
|
||||||
* portability enhancements
|
* portability enhancements
|
||||||
|
|
||||||
-- Matthew Chapman <matthewc@cse.unsw.edu.au> Tue, 21 Jan 2004 20:34
|
-- Matthew Chapman <matthewc@cse.unsw.edu.au> Tue, 21 Jan 2004 20:34
|
||||||
@ -170,7 +170,7 @@ rdesktop (1.3.1)
|
|||||||
rdesktop (1.3.0)
|
rdesktop (1.3.0)
|
||||||
|
|
||||||
* RDP5
|
* RDP5
|
||||||
* 15, 16 and 24 bit color depths
|
* 15, 16 and 24-bit color depths
|
||||||
* Basic clipboard redirection
|
* Basic clipboard redirection
|
||||||
* Sound
|
* Sound
|
||||||
* IPv6
|
* IPv6
|
||||||
|
4
doc/TODO
4
doc/TODO
@ -40,7 +40,7 @@
|
|||||||
|
|
||||||
* Use timestamps in audio packets.
|
* Use timestamps in audio packets.
|
||||||
|
|
||||||
* Add resampling to supported samplerates of audio-hardware.
|
* Add resampling to supported sample rates of audio-hardware.
|
||||||
|
|
||||||
* Lower CPU-usage with an audio thread.
|
* Lower CPU-usage with an audio thread.
|
||||||
|
|
||||||
@ -84,7 +84,7 @@
|
|||||||
|
|
||||||
* Support for sending focus information from client to server.
|
* Support for sending focus information from client to server.
|
||||||
|
|
||||||
* Implement something similiar to explhook.dll - support for running
|
* Implement something similar to explhook.dll - support for running
|
||||||
explorer.exe in non-shell mode.
|
explorer.exe in non-shell mode.
|
||||||
|
|
||||||
* Better compatibility with Task Manager.
|
* Better compatibility with Task Manager.
|
||||||
|
@ -13,7 +13,7 @@ A method call from Slave to the Master have the following syntax:
|
|||||||
|
|
||||||
METHOD [ARG1[ ARG2 [...]]]
|
METHOD [ARG1[ ARG2 [...]]]
|
||||||
|
|
||||||
Argument string sent for a method call should be escaped as descibed below under
|
Argument string sent for a method call should be escaped as described below under
|
||||||
String escaping section.
|
String escaping section.
|
||||||
|
|
||||||
|
|
||||||
@ -30,7 +30,7 @@ One line may not exceed 1024 bytes, including newline.
|
|||||||
|
|
||||||
String escaping
|
String escaping
|
||||||
===============
|
===============
|
||||||
Percentage sign has been choosen as escaping character.
|
Percentage sign has been chosen as escaping character.
|
||||||
|
|
||||||
The rules for escaping are:
|
The rules for escaping are:
|
||||||
|
|
||||||
|
@ -5,9 +5,9 @@ The IPv6 support was developed by Mike Dawson <mike@dexy.mine.nu>:
|
|||||||
|
|
||||||
Attached is a patch to tcp.c to enable IPv6 support. Build with
|
Attached is a patch to tcp.c to enable IPv6 support. Build with
|
||||||
'IPv6' defined to enable it. It's so far only been tested on
|
'IPv6' defined to enable it. It's so far only been tested on
|
||||||
Linux 2.4.21 connecting to Windows XP SP1.
|
Linux 2.4.21 connecting to Microsoft Windows XP SP1.
|
||||||
|
|
||||||
Since terminal services doesn't seem to bind to the ipv6 interface
|
Since terminal services doesn't seem to bind to the IPv6 interface
|
||||||
on XP I had to run 'netsh interface portproxy add v6tov4
|
on XP I had to run 'netsh interface portproxy add v6tov4
|
||||||
listenport=3389 connectport=3389' from the windows command prompt
|
listenport=3389 connectport=3389' from the windows command prompt
|
||||||
to get it to work.
|
to get it to work.
|
||||||
@ -20,10 +20,10 @@ rdesktop now supports numeric IPv6 addresses:
|
|||||||
|
|
||||||
rdesktop 2001:1:2:3::4
|
rdesktop 2001:1:2:3::4
|
||||||
|
|
||||||
without it getting confused with an ipv4:port specification. I've
|
without it getting confused with an IPv4:port specification. I've
|
||||||
also followed the square bracket convention used by browsers
|
also followed the square bracket convention used by browsers
|
||||||
(http://www.ietf.org/rfc/rfc2732.txt) so if you want to specify a
|
(http://www.ietf.org/rfc/rfc2732.txt) so if you want to specify a
|
||||||
non-standard port with an ipv6 address you can use the format:
|
non-standard port with an IPv6 address you can use the format:
|
||||||
|
|
||||||
rdesktop [2001:1:2:3::4]:3390
|
rdesktop [2001:1:2:3::4]:3390
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@ Keyboard mapping
|
|||||||
================
|
================
|
||||||
This release of rdesktop uses a new, portable keyboard mapping
|
This release of rdesktop uses a new, portable keyboard mapping
|
||||||
implementation. It should hopefully work on all X11 systems. This new
|
implementation. It should hopefully work on all X11 systems. This new
|
||||||
implementation only looks at X11 keysyms: Not on (nonportable)
|
implementation only looks at X11 keysyms: Not on (non-portable)
|
||||||
keycodes or modifier status. This means that rdesktop will obey your
|
keycodes or modifier status. This means that rdesktop will obey your
|
||||||
local keyboard configuration. For example, if you have swapped
|
local keyboard configuration. For example, if you have swapped
|
||||||
CapsLock and Control, rdesktop will use this mapping.
|
CapsLock and Control, rdesktop will use this mapping.
|
||||||
@ -224,7 +224,7 @@ works:
|
|||||||
|
|
||||||
xmodmap -e "keycode 49 = egrave"
|
xmodmap -e "keycode 49 = egrave"
|
||||||
|
|
||||||
4. Test a char generated with AltGr, such as @ on a swedish keyboard.
|
4. Test a char generated with AltGr, such as @ on a Swedish keyboard.
|
||||||
|
|
||||||
5. Test Ctrl-Alt-Delete.
|
5. Test Ctrl-Alt-Delete.
|
||||||
|
|
||||||
@ -244,7 +244,7 @@ works:
|
|||||||
KEYMAP_PATH, $CWD/keymaps, and from an absolute path.
|
KEYMAP_PATH, $CWD/keymaps, and from an absolute path.
|
||||||
|
|
||||||
11. Press Shift, then press a key modified by shift, the release
|
11. Press Shift, then press a key modified by shift, the release
|
||||||
shift, then release the other key. Do this in a speedy fasion.
|
shift, then release the other key. Do this in a speedy fashion.
|
||||||
Make sure the shift state is not stuck down.
|
Make sure the shift state is not stuck down.
|
||||||
|
|
||||||
12. Test all numpad keys, when not using the -N option.
|
12. Test all numpad keys, when not using the -N option.
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
To be able to connect to Microsoft Windows 2000 Terminal Services (and
|
To be able to connect to Microsoft Windows 2000 Terminal Services (and
|
||||||
probably later versions), you'll need to deal with licensing. This is
|
probably later versions), you'll need to deal with licensing. This is
|
||||||
complicated. This file is supposed to contain some information about
|
complicated. This file is supposed to contain some information about
|
||||||
how rdesktop works with Microsofts license systems.
|
how rdesktop works with Microsoft's license systems.
|
||||||
|
|
||||||
There's a lot of information on the MS web site, for example,
|
There's a lot of information on the MS web site, for example,
|
||||||
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287687.
|
http://support.microsoft.com/default.aspx?scid=kb;EN-US;287687.
|
||||||
@ -19,7 +19,7 @@ Peter Åstrand <astrand@cendio.se>, 2003-02-06
|
|||||||
> to A was reached today, and no more connections could be made until we
|
> to A was reached today, and no more connections could be made until we
|
||||||
> changed the client name (by using -n).
|
> changed the client name (by using -n).
|
||||||
>
|
>
|
||||||
> We also have another similiar systems, with Linux machine C and W2K server
|
> We also have another similar systems, with Linux machine C and W2K server
|
||||||
> D. This server has 200 licenses installed of the type "Select". On this
|
> D. This server has 200 licenses installed of the type "Select". On this
|
||||||
> server, the issued licenses seems to be permanent: The expire date is set
|
> server, the issued licenses seems to be permanent: The expire date is set
|
||||||
> to "-", and we have no problem with this system.
|
> to "-", and we have no problem with this system.
|
||||||
|
@ -102,7 +102,7 @@ Applied (in revision 1.29, 2002/07/14).
|
|||||||
URL:
|
URL:
|
||||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_fasttext.patch.txt
|
http://bibl4.oru.se/projects/rdesktop/patch19/patches/frank_fasttext.patch.txt
|
||||||
Description:
|
Description:
|
||||||
Some kind of performence improvements.
|
Some kind of performance improvements.
|
||||||
Status:
|
Status:
|
||||||
From what I can tell, this patch is no longer necessary.
|
From what I can tell, this patch is no longer necessary.
|
||||||
|
|
||||||
@ -115,7 +115,7 @@ Description:
|
|||||||
rdesktop uses gethostname to figure out the hostname, but gethostname
|
rdesktop uses gethostname to figure out the hostname, but gethostname
|
||||||
under linux returns an error when the hostname is longer than the
|
under linux returns an error when the hostname is longer than the
|
||||||
buffer. This hack gives gethostname a 64 char buffer and then strips
|
buffer. This hack gives gethostname a 64 char buffer and then strips
|
||||||
the first 16 chars or upto the first '.' and puts the result in
|
the first 16 chars or up to the first '.' and puts the result in
|
||||||
hostname[16].
|
hostname[16].
|
||||||
|
|
||||||
Status:
|
Status:
|
||||||
@ -134,7 +134,7 @@ anymore.
|
|||||||
URL:
|
URL:
|
||||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/mmihalik_19-7-3-keyfix-4.patch
|
http://bibl4.oru.se/projects/rdesktop/patch19/patches/mmihalik_19-7-3-keyfix-4.patch
|
||||||
Description:
|
Description:
|
||||||
Some kind of new alternative keyboard mapping imlementation.
|
Some kind of new alternative keyboard mapping implementation.
|
||||||
Status:
|
Status:
|
||||||
Not needed anymore, with the new keyboard mapping implementation.
|
Not needed anymore, with the new keyboard mapping implementation.
|
||||||
|
|
||||||
@ -286,7 +286,7 @@ Not applied yet. TBD.
|
|||||||
URL:
|
URL:
|
||||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_dis_wmkeybnds.patch
|
http://bibl4.oru.se/projects/rdesktop/patch19/patches/svenni_dis_wmkeybnds.patch
|
||||||
Description:
|
Description:
|
||||||
Commandline flag to disable keyboard grabbing.
|
Command line flag to disable keyboard grabbing.
|
||||||
Status:
|
Status:
|
||||||
Applied.
|
Applied.
|
||||||
|
|
||||||
@ -311,7 +311,7 @@ URL:
|
|||||||
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.secure.patch
|
http://bibl4.oru.se/projects/rdesktop/patch19/patches/vincent_19-7-2.secure.patch
|
||||||
Description:
|
Description:
|
||||||
Fixes a problem during the connection to a French NT4 TSE (a French
|
Fixes a problem during the connection to a French NT4 TSE (a French
|
||||||
NT4 TSE doesn't use encryptation).
|
NT4 TSE doesn't use encryption).
|
||||||
Status:
|
Status:
|
||||||
Applied.
|
Applied.
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.TH rdesktop 1 "November 2005"
|
.TH rdesktop 1 "2017-10-28"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
.I rdesktop
|
.I rdesktop
|
||||||
\- Remote Desktop Protocol client
|
\- Remote Desktop Protocol client
|
||||||
@ -7,9 +7,9 @@
|
|||||||
.br
|
.br
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
.I rdesktop
|
.I rdesktop
|
||||||
is a client for Remote Desktop Protocol (RDP), used in a number of Microsoft
|
is a client for Remote Desktop Protocol (RDP), used in a number of Microsoft products.
|
||||||
products including Windows NT Terminal Server, Windows 2000 Server, Windows XP
|
It is known to work with Microsoft Windows server versions ranging from NT 4 terminal
|
||||||
and Windows 2003 Server.
|
server to Windows Server 2012 R2.
|
||||||
|
|
||||||
.SH OPTIONS
|
.SH OPTIONS
|
||||||
.TP
|
.TP
|
||||||
@ -21,7 +21,7 @@ Domain for authentication.
|
|||||||
.TP
|
.TP
|
||||||
.BR "-s <shell>"
|
.BR "-s <shell>"
|
||||||
Startup shell for the user - starts a specific application instead of Explore.
|
Startup shell for the user - starts a specific application instead of Explore.
|
||||||
If SeamlessRDP is enabled this is the application which i started in seamless mode.
|
If SeamlessRDP is enabled this is the application which is started in seamless mode.
|
||||||
.TP
|
.TP
|
||||||
.BR "-c <directory>"
|
.BR "-c <directory>"
|
||||||
The initial working directory for the user. Often used in combination with -s
|
The initial working directory for the user. Often used in combination with -s
|
||||||
@ -77,6 +77,10 @@ support.
|
|||||||
The optional DPI parameter should be specified if the screen rdesktop
|
The optional DPI parameter should be specified if the screen rdesktop
|
||||||
is being displayed on is too far from 96 DPI for unscaled Windows to
|
is being displayed on is too far from 96 DPI for unscaled Windows to
|
||||||
be readable. Windows currently accepts values from 96 to 480.
|
be readable. Windows currently accepts values from 96 to 480.
|
||||||
|
|
||||||
|
Offset placement of window is optional. Starting point is upper left corner of screen.
|
||||||
|
Window manager might push into visible area, if a panel would be covered.
|
||||||
|
The schema is "-g <value>+<xoff>+<yoff>, f.e. "-g 30%+200+600".
|
||||||
.TP
|
.TP
|
||||||
.BR "-i"
|
.BR "-i"
|
||||||
Use password as smartcard pin. If a valid user certificate is matched in smart card
|
Use password as smartcard pin. If a valid user certificate is matched in smart card
|
||||||
@ -107,7 +111,7 @@ launches the desired application through SeamlessRDP.
|
|||||||
|
|
||||||
Example: rdesktop -A 'c:\\seamlessrdp\\seamlessrdpshell.exe' -s 'notepad' mywts.domain.com
|
Example: rdesktop -A 'c:\\seamlessrdp\\seamlessrdpshell.exe' -s 'notepad' mywts.domain.com
|
||||||
|
|
||||||
Any subsequential call to the above commandline example will make use of the seamless
|
Any subsequential call to the above command line example will make use of the seamless
|
||||||
connection sharing feature which spawns another notepad in the current connection to the
|
connection sharing feature which spawns another notepad in the current connection to the
|
||||||
specified server and then exit.
|
specified server and then exit.
|
||||||
|
|
||||||
@ -156,7 +160,7 @@ size, in pixels. The special word "standard" means 18 pixels.
|
|||||||
Sets the window title. The title must be specified using an UTF-8 string.
|
Sets the window title. The title must be specified using an UTF-8 string.
|
||||||
.TP
|
.TP
|
||||||
.BR "-N"
|
.BR "-N"
|
||||||
Enable numlock syncronization between the Xserver and the remote RDP
|
Enable numlock synchronization between the Xserver and the remote RDP
|
||||||
session. This is useful with applications that looks at the numlock
|
session. This is useful with applications that looks at the numlock
|
||||||
state, but might cause problems with some Xservers like Xvnc.
|
state, but might cause problems with some Xservers like Xvnc.
|
||||||
.TP
|
.TP
|
||||||
@ -180,7 +184,7 @@ theming is enabled, and all other options are disabled (corresponding
|
|||||||
to modem (56 Kbps)). Setting experience to b[roadband] enables menu
|
to modem (56 Kbps)). Setting experience to b[roadband] enables menu
|
||||||
animations and full window dragging. Setting experience to l[an] will
|
animations and full window dragging. Setting experience to l[an] will
|
||||||
also enable the desktop wallpaper. Setting experience to m[odem]
|
also enable the desktop wallpaper. Setting experience to m[odem]
|
||||||
disables all (including themes). Experience can also be a hexidecimal
|
disables all (including themes). Experience can also be a hexadecimal
|
||||||
number containing the flags.
|
number containing the flags.
|
||||||
.TP
|
.TP
|
||||||
.BR "-P"
|
.BR "-P"
|
||||||
@ -235,14 +239,14 @@ documentation for more information.
|
|||||||
.TP
|
.TP
|
||||||
.BR "-r scard[:<Scard Name>=<Alias Name>[;<Vendor Name>][,...]]"
|
.BR "-r scard[:<Scard Name>=<Alias Name>[;<Vendor Name>][,...]]"
|
||||||
Enables redirection of one or more smart-cards. You can provide
|
Enables redirection of one or more smart-cards. You can provide
|
||||||
static name binding between linux and windows. To do this you
|
static name binding between GNU/Linux and Windows. To do this you
|
||||||
can use optional parameters as described: <Scard Name> - device name in
|
can use optional parameters as described: <Scard Name> - device name in
|
||||||
Linux/Unix enviroment, <Alias Name> - device name shown in Windows enviroment
|
GNU/Linux and UNIX environment, <Alias Name> - device name shown in Windows environment
|
||||||
<Vendor Name> - optional device vendor name. For list of examples run
|
<Vendor Name> - optional device vendor name. For list of examples run
|
||||||
rdesktop without parameters.
|
rdesktop without parameters.
|
||||||
.TP
|
.TP
|
||||||
.BR "-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]"
|
.BR "-r clipboard:[off|PRIMARYCLIPBOARD|CLIPBOARD]"
|
||||||
Enable clipboard redirectino. 'PRIMARYCLIPBOARD' looks at both PRIMARY and
|
Enable clipboard redirection. 'PRIMARYCLIPBOARD' looks at both PRIMARY and
|
||||||
CLIPBOARD when sending data to server. 'CLIPBOARD' looks at only 'CLIPBOARD'.
|
CLIPBOARD when sending data to server. 'CLIPBOARD' looks at only 'CLIPBOARD'.
|
||||||
.TP
|
.TP
|
||||||
.BR "-0"
|
.BR "-0"
|
||||||
@ -264,11 +268,11 @@ Enable verbose output
|
|||||||
.BR "--sc-csp-name <name>"
|
.BR "--sc-csp-name <name>"
|
||||||
Specify the CSP (Crypto Service Provider) to use on the windows side for the smartcard
|
Specify the CSP (Crypto Service Provider) to use on the windows side for the smartcard
|
||||||
authentication. CSP is the driver for your smartcard and it seems like this is required
|
authentication. CSP is the driver for your smartcard and it seems like this is required
|
||||||
to be specified for CredSSP authentication. For swedish NetID the following CSP name is
|
to be specified for CredSSP authentication. For Swedish NetID the following CSP name is
|
||||||
used; "Net iD - CSP".
|
used; "Net iD - CSP".
|
||||||
.TP
|
.TP
|
||||||
.BR "--sc-container-name <name>"
|
.BR "--sc-container-name <name>"
|
||||||
Specify the container name, usally this is the username for default container and it seems
|
Specify the container name, usually this is the username for default container and it seems
|
||||||
like this is required to be specified for CredSSP authentication.
|
like this is required to be specified for CredSSP authentication.
|
||||||
.TP
|
.TP
|
||||||
.BR "--sc-reader-name <name>"
|
.BR "--sc-reader-name <name>"
|
||||||
@ -284,7 +288,7 @@ Specify the card name for example; "Telia EID IP5a".
|
|||||||
.IP "\fB0\fP"
|
.IP "\fB0\fP"
|
||||||
RDP session terminated normally
|
RDP session terminated normally
|
||||||
.IP "\fB1\fP"
|
.IP "\fB1\fP"
|
||||||
Administrator initiated disconnect (also returned for logoff by XP joined to a domain)
|
Administrator initiated disconnect (also returned for logoff by Windows XP joined to a domain)
|
||||||
.IP "\fB2\fP"
|
.IP "\fB2\fP"
|
||||||
Administrator initiated logout
|
Administrator initiated logout
|
||||||
.IP "\fB3\fP"
|
.IP "\fB3\fP"
|
||||||
@ -326,7 +330,7 @@ Network error during licensing protocol
|
|||||||
.IP "\fB23\fP"
|
.IP "\fB23\fP"
|
||||||
Licensing protocol was not completed
|
Licensing protocol was not completed
|
||||||
.IP "\fB24\fP"
|
.IP "\fB24\fP"
|
||||||
Incorrect client license enryption
|
Incorrect client license encryption
|
||||||
.IP "\fB25\fP"
|
.IP "\fB25\fP"
|
||||||
Can't upgrade or renew license
|
Can't upgrade or renew license
|
||||||
.IP "\fB26\fP"
|
.IP "\fB26\fP"
|
||||||
@ -336,7 +340,7 @@ The target endpoint chosen by the broker could not be found
|
|||||||
.IP "\fB32\fP"
|
.IP "\fB32\fP"
|
||||||
The target endpoint is disconnecting from the broker
|
The target endpoint is disconnecting from the broker
|
||||||
.IP "\fB34\fP"
|
.IP "\fB34\fP"
|
||||||
Error occured while being redirected by broker
|
Error occurred while being redirected by broker
|
||||||
.IP "\fB35\fP"
|
.IP "\fB35\fP"
|
||||||
Error while the endpoint VM was being awakened by the broker
|
Error while the endpoint VM was being awakened by the broker
|
||||||
.IP "\fB36\fP"
|
.IP "\fB36\fP"
|
||||||
@ -364,7 +368,7 @@ Encryption failed
|
|||||||
.IP "\fB62\fP"
|
.IP "\fB62\fP"
|
||||||
The local client window was closed
|
The local client window was closed
|
||||||
.IP "\fB63\fP"
|
.IP "\fB63\fP"
|
||||||
Some other, unknown error occured
|
Some other, unknown error occurred
|
||||||
.IP "\fB64\fP"
|
.IP "\fB64\fP"
|
||||||
Command line usage error
|
Command line usage error
|
||||||
.IP "\fB69\fP"
|
.IP "\fB69\fP"
|
||||||
|
@ -145,7 +145,7 @@ State can have one of three values:
|
|||||||
1 : Minimized.
|
1 : Minimized.
|
||||||
2 : Maximized.
|
2 : Maximized.
|
||||||
|
|
||||||
The initial STATE for a window will always be preceeded by one CREATE and one
|
The initial STATE for a window will always be preceded by one CREATE and one
|
||||||
POSITION. Optionally, a TITLE may also be sent before the first STATE.
|
POSITION. Optionally, a TITLE may also be sent before the first STATE.
|
||||||
|
|
||||||
DEBUG
|
DEBUG
|
||||||
@ -338,7 +338,7 @@ Sets which window has input focus.
|
|||||||
Syntax:
|
Syntax:
|
||||||
FOCUS,<SERIAL>,<ID>,<FLAGS>
|
FOCUS,<SERIAL>,<ID>,<FLAGS>
|
||||||
|
|
||||||
Changes which window that will recieve the keyboard events. Note that this
|
Changes which window that will receive the keyboard events. Note that this
|
||||||
might cause the window to change z order.
|
might cause the window to change z order.
|
||||||
|
|
||||||
DESTROY
|
DESTROY
|
||||||
@ -354,7 +354,7 @@ Spawn a new application.
|
|||||||
Syntax:
|
Syntax:
|
||||||
SPAWN,<SERIAL>,<COMMANDLINE>
|
SPAWN,<SERIAL>,<COMMANDLINE>
|
||||||
|
|
||||||
Spawns a new application specified by commandline.
|
Spawns a new application specified by command line.
|
||||||
|
|
||||||
|
|
||||||
Test Cases
|
Test Cases
|
||||||
@ -371,7 +371,7 @@ Blackbox, IceWM etc). You can also test without a window manager.
|
|||||||
3 Open "Open Dialog". Resize, bigger than main window. Verify no
|
3 Open "Open Dialog". Resize, bigger than main window. Verify no
|
||||||
additional task bar icons. Verify that the Open dialog is focused.
|
additional task bar icons. Verify that the Open dialog is focused.
|
||||||
|
|
||||||
4 Open File Format box dropdown. Verify that it correctly appears
|
4 Open File Format box drop-down. Verify that it correctly appears
|
||||||
outside main window. Verify no additional task bar icons.
|
outside main window. Verify no additional task bar icons.
|
||||||
|
|
||||||
5 Abort Open. Select About Wordpad. Verify no additional task bar
|
5 Abort Open. Select About Wordpad. Verify no additional task bar
|
||||||
@ -415,9 +415,9 @@ Blackbox, IceWM etc). You can also test without a window manager.
|
|||||||
19 Try the menus in Microsoft Office XP, which uses shaded menus.
|
19 Try the menus in Microsoft Office XP, which uses shaded menus.
|
||||||
|
|
||||||
|
|
||||||
20 Test transient windows: Run a program (ie Excel) seamlessly and open
|
20 Test transient windows: Run a program (i.e. Excel) seamlessly and open
|
||||||
a modal dialog (ie Open). Move the dialog so it partially overlaps
|
a modal dialog (i.e. Open). Move the dialog so it partially overlaps
|
||||||
its parent window. Cover both windows with a third (ie a maximized
|
its parent window. Cover both windows with a third (i.e. a maximized
|
||||||
xterm). Click on Excel's taskbar entry to bring it to the front.
|
xterm). Click on Excel's taskbar entry to bring it to the front.
|
||||||
|
|
||||||
|
|
||||||
@ -425,7 +425,7 @@ Blackbox, IceWM etc). You can also test without a window manager.
|
|||||||
(...\seamlessrdpshell.exe taskmgr). From Task Manager's File menu,
|
(...\seamlessrdpshell.exe taskmgr). From Task Manager's File menu,
|
||||||
select 'New Task (Run)' and run Notepad. Move Notepad so it
|
select 'New Task (Run)' and run Notepad. Move Notepad so it
|
||||||
partially overlaps Task Manager. Cover both windows with a native
|
partially overlaps Task Manager. Cover both windows with a native
|
||||||
window (ie a maximized xterm). Click on Notepad's taskbar entry to
|
window (i.e. a maximized xterm). Click on Notepad's taskbar entry to
|
||||||
bring it to the front.
|
bring it to the front.
|
||||||
|
|
||||||
|
|
||||||
@ -461,7 +461,7 @@ Blackbox, IceWM etc). You can also test without a window manager.
|
|||||||
broken WM at startup.
|
broken WM at startup.
|
||||||
|
|
||||||
|
|
||||||
26 If running on a 64 bit Windows version, try a 32 bit application:
|
26 If running on a 64-bit Windows version, try a 32-bit application:
|
||||||
Run Task Manager seamlessly (...\seamlessrdpshell.exe
|
Run Task Manager seamlessly (...\seamlessrdpshell.exe
|
||||||
taskmgr). From Task Manager's File menu, select 'New Task (Run)'
|
taskmgr). From Task Manager's File menu, select 'New Task (Run)'
|
||||||
and run %windir%\syswow64\notepad.exe. Try various window
|
and run %windir%\syswow64\notepad.exe. Try various window
|
||||||
|
@ -41,7 +41,7 @@ static Atom g_net_wm_state_maximized_vert_atom, g_net_wm_state_maximized_horz_at
|
|||||||
Atom g_net_wm_state_atom, g_net_wm_desktop_atom, g_net_wm_ping_atom;
|
Atom g_net_wm_state_atom, g_net_wm_desktop_atom, g_net_wm_ping_atom;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Get window property value (32 bit format)
|
Get window property value (32-bit format)
|
||||||
Returns zero on success, -1 on error
|
Returns zero on success, -1 on error
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
@ -150,7 +150,7 @@ get_current_workarea(uint32 * x, uint32 * y, uint32 * width, uint32 * height)
|
|||||||
|
|
||||||
if (nitems_return % 4)
|
if (nitems_return % 4)
|
||||||
{
|
{
|
||||||
logger(GUI, Error, "get_current_workare(),_NET_WORKAREA has bad length");
|
logger(GUI, Error, "get_current_workarea(),_NET_WORKAREA has bad length");
|
||||||
return (-1);
|
return (-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
4
iso.c
4
iso.c
@ -85,7 +85,7 @@ iso_send_connection_request(char *username, uint32 neg_proto)
|
|||||||
|
|
||||||
if (g_rdp_version >= RDP_V5 && g_negotiate_rdp_protocol)
|
if (g_rdp_version >= RDP_V5 && g_negotiate_rdp_protocol)
|
||||||
{
|
{
|
||||||
/* optional rdp protocol negotiation request for RDPv5 */
|
/* optional RDP protocol negotiation request for RDPv5 */
|
||||||
out_uint8(s, RDP_NEG_REQ);
|
out_uint8(s, RDP_NEG_REQ);
|
||||||
out_uint8(s, 0);
|
out_uint8(s, 0);
|
||||||
out_uint16(s, 8);
|
out_uint16(s, 8);
|
||||||
@ -297,7 +297,7 @@ iso_connect(char *server, char *username, char *domain, char *password,
|
|||||||
if (reason != NULL)
|
if (reason != NULL)
|
||||||
{
|
{
|
||||||
logger(Protocol, Warning,
|
logger(Protocol, Warning,
|
||||||
"Protocol negotation failed with reason: %s",
|
"Protocol negotiation failed with reason: %s",
|
||||||
reason);
|
reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
26
licence.c
26
licence.c
@ -58,7 +58,7 @@ licence_generate_hwid(uint8 * hwid)
|
|||||||
strncpy((char *) (hwid + 4), g_hostname, LICENCE_HWID_SIZE - 4);
|
strncpy((char *) (hwid + 4), g_hostname, LICENCE_HWID_SIZE - 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a lincece info packet to server */
|
/* Send a licence info packet to server */
|
||||||
static void
|
static void
|
||||||
licence_info(uint8 * client_random, uint8 * rsa_data,
|
licence_info(uint8 * client_random, uint8 * rsa_data,
|
||||||
uint8 * licence_data, int licence_size, uint8 * hwid, uint8 * signature)
|
uint8 * licence_data, int licence_size, uint8 * hwid, uint8 * signature)
|
||||||
@ -188,9 +188,9 @@ licence_process_request(STREAM s)
|
|||||||
licence_send_new_licence_request(null_data, null_data, g_username, g_hostname);
|
licence_send_new_licence_request(null_data, null_data, g_username, g_hostname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send a platform challange response packet */
|
/* Send a platform challenge response packet */
|
||||||
static void
|
static void
|
||||||
licence_send_platform_challange_response(uint8 * token, uint8 * crypt_hwid, uint8 * signature)
|
licence_send_platform_challenge_response(uint8 * token, uint8 * crypt_hwid, uint8 * signature)
|
||||||
{
|
{
|
||||||
uint32 sec_flags = SEC_LICENSE_PKT;
|
uint32 sec_flags = SEC_LICENSE_PKT;
|
||||||
uint16 length = 58;
|
uint16 length = 58;
|
||||||
@ -198,7 +198,7 @@ licence_send_platform_challange_response(uint8 * token, uint8 * crypt_hwid, uint
|
|||||||
|
|
||||||
s = sec_init(sec_flags, length + 2);
|
s = sec_init(sec_flags, length + 2);
|
||||||
|
|
||||||
out_uint8(s, LICENCE_TAG_PLATFORM_CHALLANGE_RESPONSE);
|
out_uint8(s, LICENCE_TAG_PLATFORM_CHALLENGE_RESPONSE);
|
||||||
out_uint8(s, ((g_rdp_version >= RDP_V5) ? 3 : 2)); /* version */
|
out_uint8(s, ((g_rdp_version >= RDP_V5) ? 3 : 2)); /* version */
|
||||||
out_uint16_le(s, length);
|
out_uint16_le(s, length);
|
||||||
|
|
||||||
@ -216,9 +216,9 @@ licence_send_platform_challange_response(uint8 * token, uint8 * crypt_hwid, uint
|
|||||||
sec_send(s, sec_flags);
|
sec_send(s, sec_flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Parse an platform challange request packet */
|
/* Parse an platform challenge request packet */
|
||||||
static RD_BOOL
|
static RD_BOOL
|
||||||
licence_parse_platform_challange(STREAM s, uint8 ** token, uint8 ** signature)
|
licence_parse_platform_challenge(STREAM s, uint8 ** token, uint8 ** signature)
|
||||||
{
|
{
|
||||||
uint16 tokenlen;
|
uint16 tokenlen;
|
||||||
|
|
||||||
@ -238,9 +238,9 @@ licence_parse_platform_challange(STREAM s, uint8 ** token, uint8 ** signature)
|
|||||||
return s_check_end(s);
|
return s_check_end(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Process a platform challange packet */
|
/* Process a platform challenge packet */
|
||||||
static void
|
static void
|
||||||
licence_process_platform_challange(STREAM s)
|
licence_process_platform_challenge(STREAM s)
|
||||||
{
|
{
|
||||||
uint8 *in_token = NULL, *in_sig;
|
uint8 *in_token = NULL, *in_sig;
|
||||||
uint8 out_token[LICENCE_TOKEN_SIZE], decrypt_token[LICENCE_TOKEN_SIZE];
|
uint8 out_token[LICENCE_TOKEN_SIZE], decrypt_token[LICENCE_TOKEN_SIZE];
|
||||||
@ -250,7 +250,7 @@ licence_process_platform_challange(STREAM s)
|
|||||||
RDSSL_RC4 crypt_key;
|
RDSSL_RC4 crypt_key;
|
||||||
|
|
||||||
/* Parse incoming packet and save the encrypted token */
|
/* Parse incoming packet and save the encrypted token */
|
||||||
licence_parse_platform_challange(s, &in_token, &in_sig);
|
licence_parse_platform_challenge(s, &in_token, &in_sig);
|
||||||
memcpy(out_token, in_token, LICENCE_TOKEN_SIZE);
|
memcpy(out_token, in_token, LICENCE_TOKEN_SIZE);
|
||||||
|
|
||||||
/* Decrypt the token. It should read TEST in Unicode. */
|
/* Decrypt the token. It should read TEST in Unicode. */
|
||||||
@ -267,7 +267,7 @@ licence_process_platform_challange(STREAM s)
|
|||||||
rdssl_rc4_set_key(&crypt_key, g_licence_key, 16);
|
rdssl_rc4_set_key(&crypt_key, g_licence_key, 16);
|
||||||
rdssl_rc4_crypt(&crypt_key, hwid, crypt_hwid, LICENCE_HWID_SIZE);
|
rdssl_rc4_crypt(&crypt_key, hwid, crypt_hwid, LICENCE_HWID_SIZE);
|
||||||
|
|
||||||
licence_send_platform_challange_response(out_token, crypt_hwid, out_sig);
|
licence_send_platform_challenge_response(out_token, crypt_hwid, out_sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Process a new licence packet */
|
/* Process a new licence packet */
|
||||||
@ -327,7 +327,7 @@ licence_process_error_alert(STREAM s)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle error codes, for now, jsut report them */
|
/* handle error codes, for now, just report them */
|
||||||
switch (error_code)
|
switch (error_code)
|
||||||
{
|
{
|
||||||
case 0x6: // ERR_NO_LICENSE_SERVER
|
case 0x6: // ERR_NO_LICENSE_SERVER
|
||||||
@ -370,8 +370,8 @@ licence_process(STREAM s)
|
|||||||
licence_process_request(s);
|
licence_process_request(s);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LICENCE_TAG_PLATFORM_CHALLANGE:
|
case LICENCE_TAG_PLATFORM_CHALLENGE:
|
||||||
licence_process_platform_challange(s);
|
licence_process_platform_challenge(s);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case LICENCE_TAG_NEW_LICENCE:
|
case LICENCE_TAG_NEW_LICENCE:
|
||||||
|
4
lspci.c
4
lspci.c
@ -50,7 +50,7 @@ handle_child_line(const char *line, void *data)
|
|||||||
if (str_startswith(line, "Class:"))
|
if (str_startswith(line, "Class:"))
|
||||||
{
|
{
|
||||||
val = line + sizeof("Class:");
|
val = line + sizeof("Class:");
|
||||||
/* Skip whitespace and second Class: occurance */
|
/* Skip whitespace and second Class: occurrence */
|
||||||
val += strspn(val, " \t") + sizeof("Class");
|
val += strspn(val, " \t") + sizeof("Class");
|
||||||
current_device.klass = strtol(val, NULL, 16);
|
current_device.klass = strtol(val, NULL, 16);
|
||||||
}
|
}
|
||||||
@ -121,7 +121,7 @@ lspci_process_line(const char *line, void *data)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
logger(Core, Error, "lspci_process_line(), invlid line '%s'", line);
|
logger(Core, Error, "lspci_process_line(), invalid line '%s'", line);
|
||||||
}
|
}
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
4
mppc.c
4
mppc.c
@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
/* Contacts: */
|
/* Contacts: */
|
||||||
|
|
||||||
/* hifn contact mentioned in the faq is */
|
/* hifn contact mentioned in the FAQ is */
|
||||||
/* Robert Friend rfriend at hifn dot com */
|
/* Robert Friend rfriend at hifn dot com */
|
||||||
|
|
||||||
/* if you have questions regarding MPPC */
|
/* if you have questions regarding MPPC */
|
||||||
@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
/* Algorithm: */
|
/* Algorithm: */
|
||||||
|
|
||||||
/* as the rfc states the algorithm seems to */
|
/* as the RFC states the algorithm seems to */
|
||||||
/* be LZ77 with a sliding buffer */
|
/* be LZ77 with a sliding buffer */
|
||||||
/* that is empty at init. */
|
/* that is empty at init. */
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ extern RDPDR_DEVICE g_rdpdr_device[];
|
|||||||
|
|
||||||
|
|
||||||
/* Enumeration of devices from rdesktop.c */
|
/* Enumeration of devices from rdesktop.c */
|
||||||
/* returns numer of units found and initialized. */
|
/* returns number of units found and initialized. */
|
||||||
/* optarg looks like ':LPT1=/dev/lp0' */
|
/* optarg looks like ':LPT1=/dev/lp0' */
|
||||||
/* when it arrives to this function. */
|
/* when it arrives to this function. */
|
||||||
int
|
int
|
||||||
@ -60,7 +60,7 @@ parallel_enum_devices(uint32 * id, char *optarg)
|
|||||||
|
|
||||||
g_rdpdr_device[*id].local_path = xmalloc(strlen(pos2) + 1);
|
g_rdpdr_device[*id].local_path = xmalloc(strlen(pos2) + 1);
|
||||||
strcpy(g_rdpdr_device[*id].local_path, pos2);
|
strcpy(g_rdpdr_device[*id].local_path, pos2);
|
||||||
logger(Core, Debug, "parallell_enum_devices(), %s to %s", optarg, pos2);
|
logger(Core, Debug, "parallel_enum_devices(), %s to %s", optarg, pos2);
|
||||||
|
|
||||||
/* set device type */
|
/* set device type */
|
||||||
g_rdpdr_device[*id].device_type = DEVICE_TYPE_PARALLEL;
|
g_rdpdr_device[*id].device_type = DEVICE_TYPE_PARALLEL;
|
||||||
@ -88,13 +88,13 @@ parallel_create(uint32 device_id, uint32 access, uint32 share_mode, uint32 dispo
|
|||||||
parallel_fd = open(g_rdpdr_device[device_id].local_path, O_RDWR);
|
parallel_fd = open(g_rdpdr_device[device_id].local_path, O_RDWR);
|
||||||
if (parallel_fd == -1)
|
if (parallel_fd == -1)
|
||||||
{
|
{
|
||||||
logger(Core, Error, "parallell_create(), open failed: %s", strerror(errno));
|
logger(Core, Error, "parallel_create(), open failed: %s", strerror(errno));
|
||||||
return RD_STATUS_ACCESS_DENIED;
|
return RD_STATUS_ACCESS_DENIED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* all read and writes should be non blocking */
|
/* all read and writes should be non blocking */
|
||||||
if (fcntl(parallel_fd, F_SETFL, O_NONBLOCK) == -1)
|
if (fcntl(parallel_fd, F_SETFL, O_NONBLOCK) == -1)
|
||||||
logger(Core, Error, "parallell_create(), fcntl failed: %s", strerror(errno));
|
logger(Core, Error, "parallel_create(), fcntl failed: %s", strerror(errno));
|
||||||
|
|
||||||
#if defined(LPABORT)
|
#if defined(LPABORT)
|
||||||
/* Retry on errors */
|
/* Retry on errors */
|
||||||
|
@ -132,7 +132,7 @@ pstcache_enumerate(uint8 id, HASH_KEY * keylist)
|
|||||||
{
|
{
|
||||||
memcpy(keylist[idx], cellhdr.key, sizeof(HASH_KEY));
|
memcpy(keylist[idx], cellhdr.key, sizeof(HASH_KEY));
|
||||||
|
|
||||||
/* Pre-cache (not possible for 8 bit colour depth cause it needs a colourmap) */
|
/* Pre-cache (not possible for 8-bit colour depth cause it needs a colourmap) */
|
||||||
if (g_bitmap_cache_precache && cellhdr.stamp && g_server_depth > 8)
|
if (g_bitmap_cache_precache && cellhdr.stamp && g_server_depth > 8)
|
||||||
pstcache_load_bitmap(id, idx);
|
pstcache_load_bitmap(id, idx);
|
||||||
|
|
||||||
|
30
rdesktop.c
30
rdesktop.c
@ -49,7 +49,7 @@
|
|||||||
|
|
||||||
#include "ssl.h"
|
#include "ssl.h"
|
||||||
|
|
||||||
/* Reconnect timeout based on approxiamted cookie life-time */
|
/* Reconnect timeout based on approximated cookie life-time */
|
||||||
#define RECONNECT_TIMEOUT (3600+600)
|
#define RECONNECT_TIMEOUT (3600+600)
|
||||||
#define RDESKTOP_LICENSE_STORE "/.local/share/rdesktop/licenses"
|
#define RDESKTOP_LICENSE_STORE "/.local/share/rdesktop/licenses"
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ usage(char *program)
|
|||||||
fprintf(stderr, " -p: password (- to prompt)\n");
|
fprintf(stderr, " -p: password (- to prompt)\n");
|
||||||
fprintf(stderr, " -n: client hostname\n");
|
fprintf(stderr, " -n: client hostname\n");
|
||||||
fprintf(stderr, " -k: keyboard layout on server (en-us, de, sv, etc.)\n");
|
fprintf(stderr, " -k: keyboard layout on server (en-us, de, sv, etc.)\n");
|
||||||
fprintf(stderr, " -g: desktop geometry (WxH[@dpi])\n");
|
fprintf(stderr, " -g: desktop geometry (WxH[@DPI][+X[+Y]])\n");
|
||||||
#ifdef WITH_SCARD
|
#ifdef WITH_SCARD
|
||||||
fprintf(stderr, " -i: enables smartcard authentication, password is used as pin\n");
|
fprintf(stderr, " -i: enables smartcard authentication, password is used as pin\n");
|
||||||
#endif
|
#endif
|
||||||
@ -190,7 +190,7 @@ usage(char *program)
|
|||||||
fprintf(stderr, " -S: caption button size (single application mode)\n");
|
fprintf(stderr, " -S: caption button size (single application mode)\n");
|
||||||
fprintf(stderr, " -T: window title\n");
|
fprintf(stderr, " -T: window title\n");
|
||||||
fprintf(stderr, " -t: disable use of remote ctrl\n");
|
fprintf(stderr, " -t: disable use of remote ctrl\n");
|
||||||
fprintf(stderr, " -N: enable numlock syncronization\n");
|
fprintf(stderr, " -N: enable numlock synchronization\n");
|
||||||
fprintf(stderr, " -X: embed into another window with a given id.\n");
|
fprintf(stderr, " -X: embed into another window with a given id.\n");
|
||||||
fprintf(stderr, " -a: connection colour depth\n");
|
fprintf(stderr, " -a: connection colour depth\n");
|
||||||
fprintf(stderr, " -z: enable rdp compression\n");
|
fprintf(stderr, " -z: enable rdp compression\n");
|
||||||
@ -229,14 +229,14 @@ usage(char *program)
|
|||||||
fprintf(stderr, " '-r scard[:\"Scard Name\"=\"Alias Name[;Vendor Name]\"[,...]]\n");
|
fprintf(stderr, " '-r scard[:\"Scard Name\"=\"Alias Name[;Vendor Name]\"[,...]]\n");
|
||||||
fprintf(stderr, " example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0\"\n");
|
fprintf(stderr, " example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0\"\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" \"eToken PRO 00 00\" -> Device in Linux/Unix enviroment\n");
|
" \"eToken PRO 00 00\" -> Device in GNU/Linux and UNIX environment\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" \"AKS ifdh 0\" -> Device shown in Windows enviroment \n");
|
" \"AKS ifdh 0\" -> Device shown in Windows environment \n");
|
||||||
fprintf(stderr, " example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0;AKS\"\n");
|
fprintf(stderr, " example: -r scard:\"eToken PRO 00 00\"=\"AKS ifdh 0;AKS\"\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" \"eToken PRO 00 00\" -> Device in Linux/Unix enviroment\n");
|
" \"eToken PRO 00 00\" -> Device in GNU/Linux and UNIX environment\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" \"AKS ifdh 0\" -> Device shown in Windows enviroment \n");
|
" \"AKS ifdh 0\" -> Device shown in Microsoft Windows environment \n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" \"AKS\" -> Device vendor name \n");
|
" \"AKS\" -> Device vendor name \n");
|
||||||
#endif
|
#endif
|
||||||
@ -250,7 +250,7 @@ usage(char *program)
|
|||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" is used to authenticate the user by smartcard\n");
|
" is used to authenticate the user by smartcard\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" sc-container-name Specifies the container name, this is usally the username\n");
|
" sc-container-name Specifies the container name, this is usually the username\n");
|
||||||
fprintf(stderr, " sc-reader-name Smartcard reader name to use\n");
|
fprintf(stderr, " sc-reader-name Smartcard reader name to use\n");
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
" sc-card-name Specifies the card name of the smartcard to use\n");
|
" sc-card-name Specifies the card name of the smartcard to use\n");
|
||||||
@ -403,7 +403,7 @@ handle_disconnect_reason(RD_BOOL deactivated, uint16 reason)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case ERRINFO_CB_REDIRECTING_TO_DESTINATION:
|
case ERRINFO_CB_REDIRECTING_TO_DESTINATION:
|
||||||
text = "Error occured while being redirected by broker";
|
text = "Error occurred while being redirected by broker";
|
||||||
retval = EXRD_CB_REDIR_DEST;
|
retval = EXRD_CB_REDIR_DEST;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -569,7 +569,7 @@ parse_server_and_port(char *server)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* dns name or IPv4 style address format - server.example.com:port or 1.2.3.4:port */
|
/* DNS name or IPv4 style address format - server.example.com:port or 1.2.3.4:port */
|
||||||
p = strchr(server, ':');
|
p = strchr(server, ':');
|
||||||
if (p != NULL)
|
if (p != NULL)
|
||||||
{
|
{
|
||||||
@ -678,7 +678,7 @@ main(int argc, char *argv[])
|
|||||||
STRNCPY(g_password, optarg, sizeof(g_password));
|
STRNCPY(g_password, optarg, sizeof(g_password));
|
||||||
flags |= RDP_INFO_AUTOLOGON;
|
flags |= RDP_INFO_AUTOLOGON;
|
||||||
|
|
||||||
/* try to overwrite argument so it won't appear in ps */
|
/* try to overwrite argument so it won't appear in `ps` */
|
||||||
p = optarg;
|
p = optarg;
|
||||||
while (*p)
|
while (*p)
|
||||||
*(p++) = 'X';
|
*(p++) = 'X';
|
||||||
@ -723,7 +723,7 @@ main(int argc, char *argv[])
|
|||||||
|
|
||||||
if (g_height <= 0)
|
if (g_height <= 0)
|
||||||
{
|
{
|
||||||
logger(Core, Error, "invalid geometry heigth specified");
|
logger(Core, Error, "invalid geometry height specified");
|
||||||
return EX_USAGE;
|
return EX_USAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -866,7 +866,7 @@ main(int argc, char *argv[])
|
|||||||
g_rdp5_performanceflags = (PERF_DISABLE_WALLPAPER |
|
g_rdp5_performanceflags = (PERF_DISABLE_WALLPAPER |
|
||||||
PERF_ENABLE_FONT_SMOOTHING);
|
PERF_ENABLE_FONT_SMOOTHING);
|
||||||
}
|
}
|
||||||
else if (str_startswith(optarg, "l")) /* lan */
|
else if (str_startswith(optarg, "l")) /* LAN */
|
||||||
{
|
{
|
||||||
g_rdp5_performanceflags = PERF_ENABLE_FONT_SMOOTHING;
|
g_rdp5_performanceflags = PERF_ENABLE_FONT_SMOOTHING;
|
||||||
}
|
}
|
||||||
@ -1499,7 +1499,7 @@ hexdump(unsigned char *p, unsigned int len)
|
|||||||
Needle may be escaped by a backslash, in
|
Needle may be escaped by a backslash, in
|
||||||
that case we ignore that particular needle.
|
that case we ignore that particular needle.
|
||||||
return value: returns next src pointer, for
|
return value: returns next src pointer, for
|
||||||
succesive executions, like in a while loop
|
successive executions, like in a while loop
|
||||||
if retval is 0, then there are no more args.
|
if retval is 0, then there are no more args.
|
||||||
pitfalls:
|
pitfalls:
|
||||||
src is modified. 0x00 chars are inserted to
|
src is modified. 0x00 chars are inserted to
|
||||||
@ -1830,7 +1830,7 @@ rd_create_ui()
|
|||||||
{
|
{
|
||||||
if (!ui_have_window())
|
if (!ui_have_window())
|
||||||
{
|
{
|
||||||
/* create a window if we dont have one intialized */
|
/* create a window if we don't have one initialized */
|
||||||
if (!ui_create_window())
|
if (!ui_create_window())
|
||||||
exit(EX_OSERR);
|
exit(EX_OSERR);
|
||||||
}
|
}
|
||||||
|
@ -164,7 +164,7 @@
|
|||||||
((tvp)->tv_sec = (tvp)->tv_usec = 0)
|
((tvp)->tv_sec = (tvp)->tv_usec = 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If configure does not define the endianess, try
|
/* If configure does not define the endianness, try
|
||||||
to find it out */
|
to find it out */
|
||||||
#if !defined(L_ENDIAN) && !defined(B_ENDIAN)
|
#if !defined(L_ENDIAN) && !defined(B_ENDIAN)
|
||||||
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
||||||
|
@ -10,8 +10,7 @@ Packager: Peter Åstrand <astrand@cendio.se>
|
|||||||
|
|
||||||
%description
|
%description
|
||||||
rdesktop is a client for Remote Desktop Protocol (RDP), used in a number of
|
rdesktop is a client for Remote Desktop Protocol (RDP), used in a number of
|
||||||
Microsoft products including Windows NT Terminal Server, Windows 2000 Server,
|
Microsoft products. It is known to work with Microsoft Windows server versions ranging from NT 4 terminal server to Windows Server 2012 R2.
|
||||||
Windows XP, Windows 2003 Server and Windows 2008r2.
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
rm -rf $RPM_BUILD_ROOT
|
rm -rf $RPM_BUILD_ROOT
|
||||||
|
14
rdp.c
14
rdp.c
@ -354,7 +354,7 @@ rdp_send_logon_info(uint32 flags, char *domain, char *user,
|
|||||||
{
|
{
|
||||||
flags |= RDP_INFO_AUTOLOGON;
|
flags |= RDP_INFO_AUTOLOGON;
|
||||||
len_password = g_redirect_cookie_len;
|
len_password = g_redirect_cookie_len;
|
||||||
len_password -= 2; /* substract 2 bytes which is added below */
|
len_password -= 2; /* subtract 2 bytes which is added below */
|
||||||
logger(Protocol, Debug,
|
logger(Protocol, Debug,
|
||||||
"rdp_send_logon_info(), Using %d bytes redirect cookie as password",
|
"rdp_send_logon_info(), Using %d bytes redirect cookie as password",
|
||||||
g_redirect_cookie_len);
|
g_redirect_cookie_len);
|
||||||
@ -375,8 +375,8 @@ rdp_send_logon_info(uint32 flags, char *domain, char *user,
|
|||||||
2 + len_program + /* AlternateShell */
|
2 + len_program + /* AlternateShell */
|
||||||
2 + len_directory + /* WorkingDir */
|
2 + len_directory + /* WorkingDir */
|
||||||
/* size of TS_EXTENDED_INFO_PACKET */
|
/* size of TS_EXTENDED_INFO_PACKET */
|
||||||
2 + /* clientAdressFamily */
|
2 + /* clientAddressFamily */
|
||||||
2 + /* cbClientAdress */
|
2 + /* cbClientAddress */
|
||||||
len_ip + /* clientAddress */
|
len_ip + /* clientAddress */
|
||||||
2 + /* cbClientDir */
|
2 + /* cbClientDir */
|
||||||
len_dll + /* clientDir */
|
len_dll + /* clientDir */
|
||||||
@ -566,7 +566,7 @@ rdp_send_suppress_output_pdu(enum RDP_SUPPRESS_STATUS allowupdates)
|
|||||||
current_status = allowupdates;
|
current_status = allowupdates;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Send persistent bitmap cache enumeration PDU's */
|
/* Send persistent bitmap cache enumeration PDUs */
|
||||||
static void
|
static void
|
||||||
rdp_enum_bmpcache2(void)
|
rdp_enum_bmpcache2(void)
|
||||||
{
|
{
|
||||||
@ -1741,14 +1741,14 @@ process_redirect_pdu(STREAM s, RD_BOOL enhanced_redirect /*, uint32 * ext_disc_r
|
|||||||
{
|
{
|
||||||
in_uint32_le(s, len);
|
in_uint32_le(s, len);
|
||||||
|
|
||||||
/* Let target fqdn replace target ip address */
|
/* Let target FQDN replace target IP address */
|
||||||
if (g_redirect_server)
|
if (g_redirect_server)
|
||||||
{
|
{
|
||||||
free(g_redirect_server);
|
free(g_redirect_server);
|
||||||
g_redirect_server = NULL;
|
g_redirect_server = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* read fqdn string */
|
/* read FQDN string */
|
||||||
rdp_in_unistr(s, len, &g_redirect_server, &g_redirect_server_len);
|
rdp_in_unistr(s, len, &g_redirect_server, &g_redirect_server_len);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1806,7 +1806,7 @@ rdp_main_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* used in uiports and rdp_main_loop, processes the rdp packets waiting */
|
/* used in uiports and rdp_main_loop, processes the RDP packets waiting */
|
||||||
RD_BOOL
|
RD_BOOL
|
||||||
rdp_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason)
|
rdp_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason)
|
||||||
{
|
{
|
||||||
|
4
rdpdr.c
4
rdpdr.c
@ -83,7 +83,7 @@ char *g_rdpdr_clientname = NULL;
|
|||||||
|
|
||||||
/* Used to store incoming io request, until they are ready to be completed */
|
/* Used to store incoming io request, until they are ready to be completed */
|
||||||
/* using a linked list ensures that they are processed in the right order, */
|
/* using a linked list ensures that they are processed in the right order, */
|
||||||
/* if multiple ios are being done on the same fd */
|
/* if multiple IOs are being done on the same FD */
|
||||||
struct async_iorequest
|
struct async_iorequest
|
||||||
{
|
{
|
||||||
uint32 fd, major, minor, offset, device, id, length, partial_len;
|
uint32 fd, major, minor, offset, device, id, length, partial_len;
|
||||||
@ -929,7 +929,7 @@ rdpdr_init()
|
|||||||
void
|
void
|
||||||
rdpdr_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv, RD_BOOL * timeout)
|
rdpdr_add_fds(int *n, fd_set * rfds, fd_set * wfds, struct timeval *tv, RD_BOOL * timeout)
|
||||||
{
|
{
|
||||||
uint32 select_timeout = 0; /* Timeout value to be used for select() (in millisecons). */
|
uint32 select_timeout = 0; /* Timeout value to be used for select() (in milliseconds). */
|
||||||
struct async_iorequest *iorq;
|
struct async_iorequest *iorq;
|
||||||
char c;
|
char c;
|
||||||
|
|
||||||
|
2
rdpsnd.c
2
rdpsnd.c
@ -224,7 +224,7 @@ rdpsnd_process_negotiate(STREAM in)
|
|||||||
uint32 flags = TSSNDCAPS_VOLUME;
|
uint32 flags = TSSNDCAPS_VOLUME;
|
||||||
|
|
||||||
/* if sound is enabled, set snd caps to alive to enable
|
/* if sound is enabled, set snd caps to alive to enable
|
||||||
transmision of audio from server */
|
transmission of audio from server */
|
||||||
if (g_rdpsnd)
|
if (g_rdpsnd)
|
||||||
{
|
{
|
||||||
flags |= TSSNDCAPS_ALIVE;
|
flags |= TSSNDCAPS_ALIVE;
|
||||||
|
12
rdpsnd_dsp.c
12
rdpsnd_dsp.c
@ -228,12 +228,12 @@ rdpsnd_dsp_resample(unsigned char **out, unsigned char *in, unsigned int size,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* Expand 8bit input-samples to 16bit */
|
/* Expand 8-bit input-samples to 16-bit */
|
||||||
#ifndef HAVE_LIBSAMPLERATE /* libsamplerate needs 16bit samples */
|
#ifndef HAVE_LIBSAMPLERATE /* libsamplerate needs 16-bit samples */
|
||||||
if (format->wBitsPerSample != resample_to_bitspersample)
|
if (format->wBitsPerSample != resample_to_bitspersample)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
/* source: 8 bit, dest: 16bit */
|
/* source: 8 bit, dest: 16 bit */
|
||||||
if (format->wBitsPerSample == 8)
|
if (format->wBitsPerSample == 8)
|
||||||
{
|
{
|
||||||
tmp = tmpdata;
|
tmp = tmpdata;
|
||||||
@ -259,7 +259,7 @@ rdpsnd_dsp_resample(unsigned char **out, unsigned char *in, unsigned int size,
|
|||||||
if (src_converter == NULL)
|
if (src_converter == NULL)
|
||||||
{
|
{
|
||||||
logger(Sound, Warning,
|
logger(Sound, Warning,
|
||||||
"rdpsndp_dsp_resample_set(), no samplerate converter available");
|
"rdpsndp_dsp_resample_set(), no sample rate converter available");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,8 +368,8 @@ rdpsnd_dsp_resample(unsigned char **out, unsigned char *in, unsigned int size,
|
|||||||
if (tmpdata != NULL)
|
if (tmpdata != NULL)
|
||||||
xfree(tmpdata);
|
xfree(tmpdata);
|
||||||
|
|
||||||
/* Shrink 16bit output-samples to 8bit */
|
/* Shrink 16-bit output-samples to 8-bit */
|
||||||
#ifndef HAVE_LIBSAMPLERATE /* libsamplerate produces 16bit samples */
|
#ifndef HAVE_LIBSAMPLERATE /* libsamplerate produces 16-bit samples */
|
||||||
if (format->wBitsPerSample != resample_to_bitspersample)
|
if (format->wBitsPerSample != resample_to_bitspersample)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
0x61 - 0x79: Normal
|
0x61 - 0x79: Normal
|
||||||
0xfa - : keyboard drivers interpret these as responses from the 8042 chip
|
0xfa - : keyboard drivers interpret these as responses from the 8042 chip
|
||||||
|
|
||||||
We use bit 7 to indicate 0xe0 prefix instead of two-byte sequence (0xe0, something). Eq.,
|
We use bit 7 to indicate 0xe0 prefix instead of two-byte sequence (0xe0, something). E.g.
|
||||||
0xe 0x38 is defined as (0x80 | 0x38)
|
0xe 0x38 is defined as (0x80 | 0x38)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
16
scard.c
16
scard.c
@ -265,10 +265,10 @@ scard_enum_devices(uint32 * id, char *optarg)
|
|||||||
typedef struct _scard_handle_list_t
|
typedef struct _scard_handle_list_t
|
||||||
{
|
{
|
||||||
struct _scard_handle_list_t *next;
|
struct _scard_handle_list_t *next;
|
||||||
/* pcsc handles is datatype long which
|
/* PCSC handle is datatype long which
|
||||||
is arch sizedependent */
|
is arch size-dependent */
|
||||||
long handle;
|
long handle;
|
||||||
/* rdp server handles are always 32bit */
|
/* RDP server handles are always 32 bit */
|
||||||
uint32_t server;
|
uint32_t server;
|
||||||
} _scard_handle_list_t;
|
} _scard_handle_list_t;
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ void
|
|||||||
_scard_handle_list_add(long handle)
|
_scard_handle_list_add(long handle)
|
||||||
{
|
{
|
||||||
_scard_handle_list_t *list = g_scard_handle_list;
|
_scard_handle_list_t *list = g_scard_handle_list;
|
||||||
/* we dont care of order of list so to simplify the add
|
/* we don't care of order of list so to simplify the add
|
||||||
we add new items to front of list */
|
we add new items to front of list */
|
||||||
_scard_handle_list_t *item = xmalloc(sizeof(_scard_handle_list_t));
|
_scard_handle_list_t *item = xmalloc(sizeof(_scard_handle_list_t));
|
||||||
item->next = list;
|
item->next = list;
|
||||||
@ -730,7 +730,7 @@ TS_SCardEstablishContext(STREAM in, STREAM out)
|
|||||||
bail_out:
|
bail_out:
|
||||||
out_uint32_le(out, 0x00000004);
|
out_uint32_le(out, 0x00000004);
|
||||||
out_uint32_le(out, hContext); /* must not be 0 (Seems to be pointer), don't know what is this (I use hContext as value) */
|
out_uint32_le(out, hContext); /* must not be 0 (Seems to be pointer), don't know what is this (I use hContext as value) */
|
||||||
/* i hope it's not a pointer because i just downcasted it - jlj */
|
/* I hope it's not a pointer because i just downcasted it - jlj */
|
||||||
out_uint32_le(out, 0x00000004);
|
out_uint32_le(out, 0x00000004);
|
||||||
out_uint32_le(out, hContext);
|
out_uint32_le(out, hContext);
|
||||||
outForceAlignment(out, 8);
|
outForceAlignment(out, 8);
|
||||||
@ -1251,7 +1251,7 @@ TS_SCardGetStatusChange(STREAM in, STREAM out, RD_BOOL wide)
|
|||||||
memset(myRsArray, 0, dwCount * sizeof(SERVER_SCARD_READERSTATE_A));
|
memset(myRsArray, 0, dwCount * sizeof(SERVER_SCARD_READERSTATE_A));
|
||||||
copyReaderState_ServerToMyPCSC(rsArray, myRsArray, (SERVER_DWORD) dwCount);
|
copyReaderState_ServerToMyPCSC(rsArray, myRsArray, (SERVER_DWORD) dwCount);
|
||||||
|
|
||||||
/* Workaround for a bug in pcsclite, timeout value of 0 is handled as INFINIT
|
/* Workaround for a bug in pcsc-lite, timeout value of 0 is handled as INFINIT
|
||||||
but is by Windows PCSC spec. used for polling current state.
|
but is by Windows PCSC spec. used for polling current state.
|
||||||
*/
|
*/
|
||||||
if (dwTimeout == 0)
|
if (dwTimeout == 0)
|
||||||
@ -2292,7 +2292,7 @@ scard_device_control(RD_NTHANDLE handle, uint32 request, STREAM in, STREAM out)
|
|||||||
out_uint32_le(out, 0xCCCCCCCC);
|
out_uint32_le(out, 0xCCCCCCCC);
|
||||||
psize = out->p;
|
psize = out->p;
|
||||||
out_uint32_le(out, 0x00000000); /* Size of data portion */
|
out_uint32_le(out, 0x00000000); /* Size of data portion */
|
||||||
out_uint32_le(out, 0x00000000); /* Zero bytes (may be usefull) */
|
out_uint32_le(out, 0x00000000); /* Zero bytes (may be useful) */
|
||||||
pStatusCode = out->p;
|
pStatusCode = out->p;
|
||||||
out_uint32_le(out, 0x00000000); /* Status Code */
|
out_uint32_le(out, 0x00000000); /* Status Code */
|
||||||
|
|
||||||
@ -2590,7 +2590,7 @@ SC_deviceControl(PSCThreadData data)
|
|||||||
buffer_len = (size_t) data->out->p - (size_t) data->out->data;
|
buffer_len = (size_t) data->out->p - (size_t) data->out->data;
|
||||||
|
|
||||||
/* if iorequest belongs to another epoch, don't send response
|
/* if iorequest belongs to another epoch, don't send response
|
||||||
back to server due to it's considered as abdonend.
|
back to server due to it's considered as abandoned.
|
||||||
*/
|
*/
|
||||||
if (data->epoch == curEpoch)
|
if (data->epoch == curEpoch)
|
||||||
rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data,
|
rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data,
|
||||||
|
@ -359,7 +359,7 @@ seamless_line_handler(const char *line, void *data)
|
|||||||
{
|
{
|
||||||
if (!seamless_process_line(line, data))
|
if (!seamless_process_line(line, data))
|
||||||
{
|
{
|
||||||
logger(Core, Warning, "seamless_line_handler(), invlid request '%s'", line);
|
logger(Core, Warning, "seamless_line_handler(), invalid request '%s'", line);
|
||||||
}
|
}
|
||||||
return True;
|
return True;
|
||||||
}
|
}
|
||||||
|
4
secure.c
4
secure.c
@ -882,7 +882,7 @@ sec_recv(uint8 * rdpver)
|
|||||||
{
|
{
|
||||||
/* for some reason the PDU and the length seem to be swapped.
|
/* for some reason the PDU and the length seem to be swapped.
|
||||||
This isn't good, but we're going to do a byte for byte
|
This isn't good, but we're going to do a byte for byte
|
||||||
swap. So the first foure value appear as: 00 04 XX YY,
|
swap. So the first four value appear as: 00 04 XX YY,
|
||||||
where XX YY is the little endian length. We're going to
|
where XX YY is the little endian length. We're going to
|
||||||
use 04 00 as the PDU type, so after our swap this will look
|
use 04 00 as the PDU type, so after our swap this will look
|
||||||
like: XX YY 04 00 */
|
like: XX YY 04 00 */
|
||||||
@ -941,7 +941,7 @@ sec_connect(char *server, char *username, char *domain, char *password, RD_BOOL
|
|||||||
mcs_data.p = mcs_data.data = (uint8 *) xmalloc(mcs_data.size);
|
mcs_data.p = mcs_data.data = (uint8 *) xmalloc(mcs_data.size);
|
||||||
sec_out_mcs_connect_initial_pdu(&mcs_data, selected_proto);
|
sec_out_mcs_connect_initial_pdu(&mcs_data, selected_proto);
|
||||||
|
|
||||||
/* finialize the MCS connect sequence */
|
/* finalize the MCS connect sequence */
|
||||||
if (!mcs_connect_finalize(&mcs_data))
|
if (!mcs_connect_finalize(&mcs_data))
|
||||||
return False;
|
return False;
|
||||||
|
|
||||||
|
8
serial.c
8
serial.c
@ -92,14 +92,14 @@
|
|||||||
/* SERIAL_WAIT_ON_MASK */
|
/* SERIAL_WAIT_ON_MASK */
|
||||||
#define SERIAL_EV_RXCHAR 0x0001 /* Any Character received */
|
#define SERIAL_EV_RXCHAR 0x0001 /* Any Character received */
|
||||||
#define SERIAL_EV_RXFLAG 0x0002 /* Received certain character */
|
#define SERIAL_EV_RXFLAG 0x0002 /* Received certain character */
|
||||||
#define SERIAL_EV_TXEMPTY 0x0004 /* Transmitt Queue Empty */
|
#define SERIAL_EV_TXEMPTY 0x0004 /* Transmit Queue Empty */
|
||||||
#define SERIAL_EV_CTS 0x0008 /* CTS changed state */
|
#define SERIAL_EV_CTS 0x0008 /* CTS changed state */
|
||||||
#define SERIAL_EV_DSR 0x0010 /* DSR changed state */
|
#define SERIAL_EV_DSR 0x0010 /* DSR changed state */
|
||||||
#define SERIAL_EV_RLSD 0x0020 /* RLSD changed state */
|
#define SERIAL_EV_RLSD 0x0020 /* RLSD changed state */
|
||||||
#define SERIAL_EV_BREAK 0x0040 /* BREAK received */
|
#define SERIAL_EV_BREAK 0x0040 /* BREAK received */
|
||||||
#define SERIAL_EV_ERR 0x0080 /* Line status error occurred */
|
#define SERIAL_EV_ERR 0x0080 /* Line status error occurred */
|
||||||
#define SERIAL_EV_RING 0x0100 /* Ring signal detected */
|
#define SERIAL_EV_RING 0x0100 /* Ring signal detected */
|
||||||
#define SERIAL_EV_PERR 0x0200 /* Printer error occured */
|
#define SERIAL_EV_PERR 0x0200 /* Printer error occurred */
|
||||||
#define SERIAL_EV_RX80FULL 0x0400 /* Receive buffer is 80 percent full */
|
#define SERIAL_EV_RX80FULL 0x0400 /* Receive buffer is 80 percent full */
|
||||||
#define SERIAL_EV_EVENT1 0x0800 /* Provider specific event 1 */
|
#define SERIAL_EV_EVENT1 0x0800 /* Provider specific event 1 */
|
||||||
#define SERIAL_EV_EVENT2 0x1000 /* Provider specific event 2 */
|
#define SERIAL_EV_EVENT2 0x1000 /* Provider specific event 2 */
|
||||||
@ -502,7 +502,7 @@ set_termios(SERIAL_DEVICE * pser_inf, RD_NTHANDLE serial_fd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Enumeration of devices from rdesktop.c */
|
/* Enumeration of devices from rdesktop.c */
|
||||||
/* returns numer of units found and initialized. */
|
/* returns number of units found and initialized. */
|
||||||
/* optarg looks like ':com1=/dev/ttyS0' */
|
/* optarg looks like ':com1=/dev/ttyS0' */
|
||||||
/* when it arrives to this function. */
|
/* when it arrives to this function. */
|
||||||
/* :com1=/dev/ttyS0,com2=/dev/ttyS1 */
|
/* :com1=/dev/ttyS0,com2=/dev/ttyS1 */
|
||||||
@ -1057,7 +1057,7 @@ serial_get_event(RD_NTHANDLE handle, uint32 * result)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Read timeout for a given file descripter (device) when adding fd's to select() */
|
/* Read timeout for a given file descriptor (device) when adding FDs to select() */
|
||||||
RD_BOOL
|
RD_BOOL
|
||||||
serial_get_timeout(RD_NTHANDLE handle, uint32 length, uint32 * timeout, uint32 * itv_timeout)
|
serial_get_timeout(RD_NTHANDLE handle, uint32 length, uint32 * timeout, uint32 * itv_timeout)
|
||||||
{
|
{
|
||||||
|
2
ssl.c
2
ssl.c
@ -170,7 +170,7 @@ rdssl_cert_to_rkey(RDSSL_CERT * cert, uint32 * key_len)
|
|||||||
/* By some reason, Microsoft sets the OID of the Public RSA key to
|
/* By some reason, Microsoft sets the OID of the Public RSA key to
|
||||||
the oid for "MD5 with RSA Encryption" instead of "RSA Encryption"
|
the oid for "MD5 with RSA Encryption" instead of "RSA Encryption"
|
||||||
|
|
||||||
Kudos to Richard Levitte for the following (. intiutive .)
|
Kudos to Richard Levitte for the following (. intuitive .)
|
||||||
lines of code that resets the OID and let's us extract the key. */
|
lines of code that resets the OID and let's us extract the key. */
|
||||||
|
|
||||||
X509_PUBKEY *key = NULL;
|
X509_PUBKEY *key = NULL;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
This is the nanox ui port
|
This is the nanox ui port
|
||||||
tested with versions 0.90
|
tested with versions 0.90
|
||||||
|
|
||||||
makefile_nanox can be edited to change file localtions
|
makefile_nanox can be edited to change file locations
|
||||||
run make -f makefile_nanox in this directory to compile it
|
run make -f makefile_nanox in this directory to compile it
|
||||||
|
|
||||||
nanoxreadme.txt - notes, this file
|
nanoxreadme.txt - notes, this file
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
/*
|
/*
|
||||||
problems with nanox lib
|
problems with nanox lib
|
||||||
opcodes don't work, can only rely on copy
|
opcodes don't work, can only rely on copy
|
||||||
stipple orgins don't work
|
stipple origins don't work
|
||||||
clip seems to affect source too, it should only affect dest
|
clip seems to affect source too, it should only affect dest
|
||||||
in copyarea functions
|
in copyarea functions
|
||||||
*/
|
*/
|
||||||
@ -261,7 +261,7 @@ void ui_set_clip(int x, int y, int cx, int cy)
|
|||||||
region = GrNewRegion();
|
region = GrNewRegion();
|
||||||
GrUnionRectWithRegion(region, &g_clip);
|
GrUnionRectWithRegion(region, &g_clip);
|
||||||
GrSetGCRegion(g_gc, region); /* can't destroy region here, i guess gc */
|
GrSetGCRegion(g_gc, region); /* can't destroy region here, i guess gc */
|
||||||
/* takes owership, if you destroy it */
|
/* takes ownership, if you destroy it */
|
||||||
/* clip is reset, hum */
|
/* clip is reset, hum */
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -282,7 +282,7 @@ void ui_bell(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/* gota convert the rdp glyph to nanox glyph */
|
/* have to convert the RDP glyph to nanox glyph */
|
||||||
void * ui_create_glyph(int width, int height, uint8 * data)
|
void * ui_create_glyph(int width, int height, uint8 * data)
|
||||||
{
|
{
|
||||||
char * p, * q, * r;
|
char * p, * q, * r;
|
||||||
|
@ -3,7 +3,7 @@ qt should be installed in /usr/local/qt
|
|||||||
you may need to have LD_LIBRARY_PATH and QTDIR defined to run qtrdesktop
|
you may need to have LD_LIBRARY_PATH and QTDIR defined to run qtrdesktop
|
||||||
tested with versions 2.3, 3.1
|
tested with versions 2.3, 3.1
|
||||||
|
|
||||||
makefile_qte can be edited to change file localtions
|
makefile_qte can be edited to change file locations
|
||||||
run make -f makefile_qte in this directory to compile it
|
run make -f makefile_qte in this directory to compile it
|
||||||
|
|
||||||
qtereadme.txt - notes, this file
|
qtereadme.txt - notes, this file
|
||||||
|
@ -1094,7 +1094,7 @@ void set_pixel(int x, int y, int pixel, int op = 0xc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/******************************************************************************/
|
/******************************************************************************/
|
||||||
// adjust coordinates for cliping rect
|
// adjust coordinates for clipping rect
|
||||||
bool WarpCoords(int * x, int * y, int * cx, int * cy, int * srcx, int * srcy)
|
bool WarpCoords(int * x, int * y, int * cx, int * cy, int * srcx, int * srcy)
|
||||||
{
|
{
|
||||||
int dx, dy;
|
int dx, dy;
|
||||||
|
@ -3,7 +3,7 @@ qt should be installed in /usr/local/qt
|
|||||||
you may need to have LD_LIBRARY_PATH defined to run qtrdesktop
|
you may need to have LD_LIBRARY_PATH defined to run qtrdesktop
|
||||||
tested with versions 2.3.2, 3.1.2
|
tested with versions 2.3.2, 3.1.2
|
||||||
|
|
||||||
makefile_qt can be edited to change file localtions
|
makefile_qt can be edited to change file locations
|
||||||
run make -f makefile_qt in this directory to compile it
|
run make -f makefile_qt in this directory to compile it
|
||||||
|
|
||||||
qtreadme.txt - notes, this file
|
qtreadme.txt - notes, this file
|
||||||
|
@ -747,7 +747,7 @@ void ui_destroy_colourmap(RD_HCOLOURMAP map)
|
|||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
void ui_set_colourmap(void * map)
|
void ui_set_colourmap(void * map)
|
||||||
{
|
{
|
||||||
// destoy old colormap
|
// destroy old colormap
|
||||||
ui_destroy_colourmap(g_CM);
|
ui_destroy_colourmap(g_CM);
|
||||||
g_CM = (QColorMap*)map;
|
g_CM = (QColorMap*)map;
|
||||||
}
|
}
|
||||||
@ -813,7 +813,7 @@ RD_HBITMAP ui_create_bitmap(int width, int height, uint8 * data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//******************************************************************************
|
//******************************************************************************
|
||||||
// adjust coordinates for cliping rect
|
// adjust coordinates for clipping rect
|
||||||
int WarpCoords(int * x, int * y, int * cx, int * cy, int * srcx, int * srcy)
|
int WarpCoords(int * x, int * y, int * cx, int * cy, int * srcx, int * srcy)
|
||||||
{
|
{
|
||||||
int dx, dy;
|
int dx, dy;
|
||||||
|
@ -10,7 +10,7 @@ see xxxreadme.txt for info on a blank empty uiport
|
|||||||
|
|
||||||
see qtreadme.txt for info on the Qt/X11 uiport
|
see qtreadme.txt for info on the Qt/X11 uiport
|
||||||
|
|
||||||
see qtereadme.txt for info on the Qt embeded uiport
|
see qtereadme.txt for info on the Qt embedded uiport
|
||||||
|
|
||||||
see svgareadme.txt for info on the svga uiport
|
see svgareadme.txt for info on the svga uiport
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
This is the svga ui port
|
This is the svga ui port
|
||||||
send any fixes or improvments to me Jay Sorg(j@american-data.com)
|
send any fixes or improvements to me Jay Sorg(j@american-data.com)
|
||||||
svgalib should be installed
|
svgalib should be installed
|
||||||
tested with versions 1.4.3, 1.9.x
|
tested with versions 1.4.3, 1.9.x
|
||||||
|
|
||||||
@ -17,10 +17,10 @@ svgalib has some support for acceleration but most drivers
|
|||||||
do not support it. I hope they fix this.
|
do not support it. I hope they fix this.
|
||||||
The ones that do are Cirus Logic and ATI Mach 32 cards.
|
The ones that do are Cirus Logic and ATI Mach 32 cards.
|
||||||
If running on really slow hardware(486), use one of these cards,
|
If running on really slow hardware(486), use one of these cards,
|
||||||
it improves performance alot.
|
it improves performance a lot.
|
||||||
|
|
||||||
run ./svgardesktop with no parameters to see a list of
|
run ./svgardesktop with no parameters to see a list of
|
||||||
commnad line options
|
command line options
|
||||||
|
|
||||||
You will need to modify the libvga.config file most likely.
|
You will need to modify the libvga.config file most likely.
|
||||||
Its in /etc/vga.
|
Its in /etc/vga.
|
||||||
|
@ -74,7 +74,7 @@ static int scrolllock;
|
|||||||
// this is non null if vgalib has non accel functions available
|
// this is non null if vgalib has non accel functions available
|
||||||
// reading from video memory is sooo slow
|
// reading from video memory is sooo slow
|
||||||
static uint8* sdata = 0;
|
static uint8* sdata = 0;
|
||||||
static int g_save_mem = 0; // for video memory use eg sdata == 0
|
static int g_save_mem = 0; // for video memory use e.g. sdata == 0
|
||||||
|
|
||||||
// video acceleration
|
// video acceleration
|
||||||
static int use_accel = 1;
|
static int use_accel = 1;
|
||||||
@ -1819,7 +1819,7 @@ void out_params(void)
|
|||||||
fprintf(stderr, " -t: tcp port\n");
|
fprintf(stderr, " -t: tcp port\n");
|
||||||
fprintf(stderr, " -u: user name\n");
|
fprintf(stderr, " -u: user name\n");
|
||||||
fprintf(stderr, " -n: client hostname\n");
|
fprintf(stderr, " -n: client hostname\n");
|
||||||
fprintf(stderr, " -d: disable accel funcs\n");
|
fprintf(stderr, " -d: disable acceleration functions\n");
|
||||||
fprintf(stderr, " -a: connection colour depth\n");
|
fprintf(stderr, " -a: connection colour depth\n");
|
||||||
fprintf(stderr, " -l: low memory\n");
|
fprintf(stderr, " -l: low memory\n");
|
||||||
fprintf(stderr, "\n");
|
fprintf(stderr, "\n");
|
||||||
|
6
utils.c
6
utils.c
@ -170,7 +170,7 @@ utils_mkdir_p(const char *path, int mask)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Convert from system locale string to utf-8 */
|
/* Convert from system locale string to UTF-8 */
|
||||||
int
|
int
|
||||||
utils_locale_to_utf8(const char *src, size_t is, char *dest, size_t os)
|
utils_locale_to_utf8(const char *src, size_t is, char *dest, size_t os)
|
||||||
{
|
{
|
||||||
@ -206,7 +206,7 @@ utils_locale_to_utf8(const char *src, size_t is, char *dest, size_t os)
|
|||||||
goto pass_trough_as_is;
|
goto pass_trough_as_is;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Out couldn't hold the entire convertion */
|
/* Out couldn't hold the entire conversion */
|
||||||
if (is != 0)
|
if (is != 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
@ -228,7 +228,7 @@ utils_locale_to_utf8(const char *src, size_t is, char *dest, size_t os)
|
|||||||
|
|
||||||
static char *level[] = {
|
static char *level[] = {
|
||||||
"debug",
|
"debug",
|
||||||
"verbose", /* Verbose mesasge for end user, no prefixed lines */
|
"verbose", /* Verbose message for end user, no prefixed lines */
|
||||||
"warning",
|
"warning",
|
||||||
"error",
|
"error",
|
||||||
"notice" /* Normal messages for end user, no prefixed lines */
|
"notice" /* Normal messages for end user, no prefixed lines */
|
||||||
|
16
xclip.c
16
xclip.c
@ -154,7 +154,7 @@ utf16_lf2crlf(uint8 * data, uint32 * size)
|
|||||||
{
|
{
|
||||||
uint8 *result;
|
uint8 *result;
|
||||||
uint16 *inptr, *outptr;
|
uint16 *inptr, *outptr;
|
||||||
RD_BOOL swap_endianess;
|
RD_BOOL swap_endianness;
|
||||||
|
|
||||||
/* Worst case: Every char is LF */
|
/* Worst case: Every char is LF */
|
||||||
result = xmalloc((*size * 2) + 2);
|
result = xmalloc((*size * 2) + 2);
|
||||||
@ -165,16 +165,16 @@ utf16_lf2crlf(uint8 * data, uint32 * size)
|
|||||||
outptr = (uint16 *) result;
|
outptr = (uint16 *) result;
|
||||||
|
|
||||||
/* Check for a reversed BOM */
|
/* Check for a reversed BOM */
|
||||||
swap_endianess = (*inptr == 0xfffe);
|
swap_endianness = (*inptr == 0xfffe);
|
||||||
|
|
||||||
uint16 uvalue_previous = 0; /* Kept so we'll avoid translating CR-LF to CR-CR-LF */
|
uint16 uvalue_previous = 0; /* Kept so we'll avoid translating CR-LF to CR-CR-LF */
|
||||||
while ((uint8 *) inptr < data + *size)
|
while ((uint8 *) inptr < data + *size)
|
||||||
{
|
{
|
||||||
uint16 uvalue = *inptr;
|
uint16 uvalue = *inptr;
|
||||||
if (swap_endianess)
|
if (swap_endianness)
|
||||||
uvalue = ((uvalue << 8) & 0xff00) + (uvalue >> 8);
|
uvalue = ((uvalue << 8) & 0xff00) + (uvalue >> 8);
|
||||||
if ((uvalue == 0x0a) && (uvalue_previous != 0x0d))
|
if ((uvalue == 0x0a) && (uvalue_previous != 0x0d))
|
||||||
*outptr++ = swap_endianess ? 0x0d00 : 0x0d;
|
*outptr++ = swap_endianness ? 0x0d00 : 0x0d;
|
||||||
uvalue_previous = uvalue;
|
uvalue_previous = uvalue;
|
||||||
*outptr++ = *inptr++;
|
*outptr++ = *inptr++;
|
||||||
}
|
}
|
||||||
@ -873,7 +873,7 @@ xclip_handle_SelectionRequest(XSelectionRequestEvent * event)
|
|||||||
is offered by the RDP server (and when it is pasted inside RDP, there's no network
|
is offered by the RDP server (and when it is pasted inside RDP, there's no network
|
||||||
roundtrip).
|
roundtrip).
|
||||||
|
|
||||||
This event (SelectionClear) symbolizes this rdesktop lost onwership of the clipboard
|
This event (SelectionClear) symbolizes this rdesktop lost ownership of the clipboard
|
||||||
to some other X client. We should find out what clipboard formats this other
|
to some other X client. We should find out what clipboard formats this other
|
||||||
client offers and announce that to RDP. */
|
client offers and announce that to RDP. */
|
||||||
void
|
void
|
||||||
@ -902,7 +902,7 @@ xclip_handle_PropertyNotify(XPropertyEvent * event)
|
|||||||
|
|
||||||
while (bytes_left > 0)
|
while (bytes_left > 0)
|
||||||
{
|
{
|
||||||
/* Unlike the specification, we don't set the 'delete' arugment to True
|
/* Unlike the specification, we don't set the 'delete' argument to True
|
||||||
since we slurp the INCR's chunks in even-smaller chunks of 4096 bytes. */
|
since we slurp the INCR's chunks in even-smaller chunks of 4096 bytes. */
|
||||||
if ((XGetWindowProperty
|
if ((XGetWindowProperty
|
||||||
(g_display, g_wnd, rdesktop_clipboard_target_atom, offset, 4096L,
|
(g_display, g_wnd, rdesktop_clipboard_target_atom, offset, 4096L,
|
||||||
@ -967,11 +967,11 @@ ui_clip_format_announce(uint8 * data, uint32 length)
|
|||||||
|
|
||||||
XSetSelectionOwner(g_display, primary_atom, g_wnd, acquire_time);
|
XSetSelectionOwner(g_display, primary_atom, g_wnd, acquire_time);
|
||||||
if (XGetSelectionOwner(g_display, primary_atom) != g_wnd)
|
if (XGetSelectionOwner(g_display, primary_atom) != g_wnd)
|
||||||
logger(Clipboard, Warning, "failed to aquire ownership of PRIMARY clipboard");
|
logger(Clipboard, Warning, "failed to acquire ownership of PRIMARY clipboard");
|
||||||
|
|
||||||
XSetSelectionOwner(g_display, clipboard_atom, g_wnd, acquire_time);
|
XSetSelectionOwner(g_display, clipboard_atom, g_wnd, acquire_time);
|
||||||
if (XGetSelectionOwner(g_display, clipboard_atom) != g_wnd)
|
if (XGetSelectionOwner(g_display, clipboard_atom) != g_wnd)
|
||||||
logger(Clipboard, Warning, "failed to aquire ownership of CLIPBOARD clipboard");
|
logger(Clipboard, Warning, "failed to acquire ownership of CLIPBOARD clipboard");
|
||||||
|
|
||||||
if (formats_data)
|
if (formats_data)
|
||||||
xfree(formats_data);
|
xfree(formats_data);
|
||||||
|
@ -208,7 +208,7 @@ add_sequence(char *rest, char *mapname)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
logger(Keyboard, Debug, "add_sequence(), adding squence for keysym '%s' (0x%lx)", keyname,
|
logger(Keyboard, Debug, "add_sequence(), adding sequence for keysym '%s' (0x%lx)", keyname,
|
||||||
keysym);
|
keysym);
|
||||||
|
|
||||||
entry = new_key_translation_entry(keysym);
|
entry = new_key_translation_entry(keysym);
|
||||||
|
26
xwin.c
26
xwin.c
@ -151,7 +151,7 @@ static RD_BOOL g_compatible_arch;
|
|||||||
RDP(LE) <-> host(BE) <-> X-Server(LE)
|
RDP(LE) <-> host(BE) <-> X-Server(LE)
|
||||||
|
|
||||||
('host' is the machine running rdesktop; the host simply memcpy's
|
('host' is the machine running rdesktop; the host simply memcpy's
|
||||||
so its endianess doesn't matter)
|
so its endianness doesn't matter)
|
||||||
*/
|
*/
|
||||||
static RD_BOOL g_no_translate_image = False;
|
static RD_BOOL g_no_translate_image = False;
|
||||||
|
|
||||||
@ -576,9 +576,9 @@ sw_configurenotify_p(Display * display, XEvent * xevent, XPointer arg)
|
|||||||
throwing away crucial events like DestroyNotify.
|
throwing away crucial events like DestroyNotify.
|
||||||
|
|
||||||
After a ConfigureWindow, according to ICCCM section 4.1.5, we
|
After a ConfigureWindow, according to ICCCM section 4.1.5, we
|
||||||
should recieve a ConfigureNotify, either a real or synthetic
|
should receive a ConfigureNotify, either a real or synthetic
|
||||||
one. This indicates that the configure has been "completed".
|
one. This indicates that the configure has been "completed".
|
||||||
However, some WMs such as several versions of Metacity fails to
|
However, some WMs such as several versions of Metacity fail to
|
||||||
send synthetic events. See bug
|
send synthetic events. See bug
|
||||||
http://bugzilla.gnome.org/show_bug.cgi?id=322840. We need to use a
|
http://bugzilla.gnome.org/show_bug.cgi?id=322840. We need to use a
|
||||||
timeout to avoid a hang. Tk uses the same approach. */
|
timeout to avoid a hang. Tk uses the same approach. */
|
||||||
@ -873,7 +873,7 @@ translate_colour(uint32 colour)
|
|||||||
/* *INDENT-OFF* */
|
/* *INDENT-OFF* */
|
||||||
|
|
||||||
/* repeat and unroll, similar to bitmap.c */
|
/* repeat and unroll, similar to bitmap.c */
|
||||||
/* potentialy any of the following translate */
|
/* potentially any of the following translate */
|
||||||
/* functions can use repeat but just doing */
|
/* functions can use repeat but just doing */
|
||||||
/* the most common ones */
|
/* the most common ones */
|
||||||
|
|
||||||
@ -1883,8 +1883,8 @@ ui_init(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
uint16 endianess_test = 1;
|
uint16 endianness_test = 1;
|
||||||
g_host_be = !(RD_BOOL) (*(uint8 *) (&endianess_test));
|
g_host_be = !(RD_BOOL) (*(uint8 *) (&endianness_test));
|
||||||
}
|
}
|
||||||
|
|
||||||
g_old_error_handler = XSetErrorHandler(error_handler);
|
g_old_error_handler = XSetErrorHandler(error_handler);
|
||||||
@ -2314,7 +2314,7 @@ handle_button_event(XEvent xevent, RD_BOOL down)
|
|||||||
if (xevent.type == ButtonRelease)
|
if (xevent.type == ButtonRelease)
|
||||||
{
|
{
|
||||||
/* Release the mouse button outside the minimize button, to prevent the
|
/* Release the mouse button outside the minimize button, to prevent the
|
||||||
actual minimazation to happen */
|
actual minimization to happen */
|
||||||
rdp_send_input(time(NULL), input_type, button, 1, 1);
|
rdp_send_input(time(NULL), input_type, button, 1, 1);
|
||||||
XIconifyWindow(g_display, g_wnd, DefaultScreen(g_display));
|
XIconifyWindow(g_display, g_wnd, DefaultScreen(g_display));
|
||||||
return;
|
return;
|
||||||
@ -2939,7 +2939,7 @@ get_pixel(uint32 idx, uint8 * andmask, uint8 * xormask, int bpp, uint8 * xor_fla
|
|||||||
{
|
{
|
||||||
// If we have an xor bit is high and
|
// If we have an xor bit is high and
|
||||||
// andmask bit is low, we should
|
// andmask bit is low, we should
|
||||||
// render a black pixle due to we can
|
// render a black pixel due to we can
|
||||||
// not xor blit in X11.
|
// not xor blit in X11.
|
||||||
argb = 0xff000000;
|
argb = 0xff000000;
|
||||||
*xor_flag = 1;
|
*xor_flag = 1;
|
||||||
@ -2965,7 +2965,7 @@ get_pixel(uint32 idx, uint8 * andmask, uint8 * xormask, int bpp, uint8 * xor_fla
|
|||||||
return argb;
|
return argb;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Copies the pixles from src to dest with given color and offset */
|
/* Copies the pixels from src to dest with given color and offset */
|
||||||
static inline void
|
static inline void
|
||||||
xcursor_stencil(XcursorImage * src, XcursorImage * dst, int dx, int dy, uint32 argb)
|
xcursor_stencil(XcursorImage * src, XcursorImage * dst, int dx, int dy, uint32 argb)
|
||||||
{
|
{
|
||||||
@ -3674,7 +3674,7 @@ ui_ellipse(uint8 opcode,
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
logger(GUI, Warning, "Unimplemented brush styke %d", brush->style);
|
logger(GUI, Warning, "Unimplemented brush style %d", brush->style);
|
||||||
}
|
}
|
||||||
|
|
||||||
RESET_FUNCTION(opcode);
|
RESET_FUNCTION(opcode);
|
||||||
@ -4093,7 +4093,7 @@ ui_seamless_create_window(unsigned long id, unsigned long group, unsigned long p
|
|||||||
if (parent == 0xFFFFFFFF)
|
if (parent == 0xFFFFFFFF)
|
||||||
{
|
{
|
||||||
XSetTransientForHint(g_display, wnd, RootWindowOfScreen(g_screen));
|
XSetTransientForHint(g_display, wnd, RootWindowOfScreen(g_screen));
|
||||||
/* Some buggy wm:s (kwin) do not handle the above, so fake it
|
/* Some buggy WMs (kwin) do not handle the above, so fake it
|
||||||
using some other hints. */
|
using some other hints. */
|
||||||
ewmh_set_window_popup(wnd);
|
ewmh_set_window_popup(wnd);
|
||||||
}
|
}
|
||||||
@ -4104,13 +4104,13 @@ ui_seamless_create_window(unsigned long id, unsigned long group, unsigned long p
|
|||||||
if (sw_parent)
|
if (sw_parent)
|
||||||
XSetTransientForHint(g_display, wnd, sw_parent->wnd);
|
XSetTransientForHint(g_display, wnd, sw_parent->wnd);
|
||||||
else
|
else
|
||||||
logger(GUI, Warning, "ui_seamles_create_window(): no parent window 0x%lx\n",
|
logger(GUI, Warning, "ui_seamless_create_window(): no parent window 0x%lx\n",
|
||||||
parent);
|
parent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & SEAMLESSRDP_CREATE_MODAL)
|
if (flags & SEAMLESSRDP_CREATE_MODAL)
|
||||||
{
|
{
|
||||||
/* We do this to support buggy wm:s (*cough* metacity *cough*)
|
/* We do this to support buggy WMs (*cough* Metacity *cough*)
|
||||||
somewhat at least */
|
somewhat at least */
|
||||||
if (parent == 0x00000000)
|
if (parent == 0x00000000)
|
||||||
XSetTransientForHint(g_display, wnd, RootWindowOfScreen(g_screen));
|
XSetTransientForHint(g_display, wnd, RootWindowOfScreen(g_screen));
|
||||||
|
Loading…
Reference in New Issue
Block a user