Commit Graph

539 Commits

Author SHA1 Message Date
Koichiro IWAO
43f6ac0723
use MS name for constants 2018-11-27 15:08:22 +09:00
daixj
fcb1b825c5 neutrinordp: don't enable remote_app if the INFO_RAIL flag is not set 2018-11-23 17:18:26 +08:00
daixj
bc150c2e56 set use_cache_glyph_v2 on if the client support 2018-10-25 17:02:43 +08:00
daixj
b3a1889200 Support Cache Glyph Revison 2, issue #367 2018-10-25 10:34:00 +08:00
jsorg71
ae1514c167
dynamic virtual channel improvements
remove not used chansrv <-> xrdp messages
move static channel disable control into libxrdp
remove some blocking read, write chansrv calls
add drdynvc calls to libxrdp
add drdynvc calls to chansrv
channel cleanup
2018-10-11 22:09:20 -07:00
daixj
828079b442 libxrdp: fix memory leak 2018-02-13 16:44:37 +09:00
Koichiro IWAO
b17c45d86f
fix potential fd leak
In most cases, checking fd > 0 is not valid. open(2) returns -1 on
error, 0 on stdin, 1 on stdout, 2 on stderr, >2 . The border should be
between -1 and 0. Additionally, between 2 and 3.

Pointed out by: #919
2018-01-17 09:38:28 +09:00
Koichiro IWAO
a20d5c29e8 xrdp_caps: remove unneeded comment on case statement 2017-12-01 11:20:42 +09:00
Koichiro IWAO
64f15d6553 xrdp_caps: constify and sort capability set 2017-12-01 11:20:42 +09:00
Koichiro IWAO
788ae1467a xrdp_sec: constify color depth value 2017-12-01 11:20:42 +09:00
Koichiro IWAO
391c69731c libxrdp: advertise horizontal mouse wheel capability 2017-11-06 16:18:42 +09:00
Jay Sorg
9d36983ae7 fix for protocol error when 32 bit and non rfx 2017-07-12 15:03:08 +09:00
Jay Sorg
8d63c32899 move openssl calls to common/libssl.c, check for defines 2017-06-22 11:47:48 +09:00
Koichiro IWAO
a1b0344db5 Use the words "cannot read" rather than "cannot open"
as the code actually tests readability.
2017-06-12 16:57:04 +09:00
Koichiro IWAO
4f7969b562 Check certificate/privkey readability not existence
to fail RDP security negotiation if certificate/privkey is not readable
2017-06-12 16:57:04 +09:00
Koichiro IWAO
65c1fe87d7 Log user-friendly message when certificate/privkey is inaccessible
We shouldn't assume that xrdp daemon is running under root privilege.
In many cases, root privilege is not really needed for xrdp daemon.
xrdp may fail to load certificate/privkey due to lack of permissions
when running under user privilege. Checking existence of files is not
enough and xrdp should output user-friendly log in such case.

Reported by Debian user in bug 856436 [1].

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=856436
2017-06-12 16:57:04 +09:00
Pavel Roskin
148afd1170 Rename file_loc.h to xrdp_sockets.h, install it
Include xrdp_sockets.h directly, not through headers.
2017-03-28 00:59:16 -07:00
speidy
1c70e4915f xrdp_orders_rail: fix resulting unicode length 2017-03-24 15:36:36 +09:00
speidy
22f0b05b03 libxrdp: window update, simplify length checks 2017-03-24 15:36:36 +09:00
speidy
954b68314d xrdp_orders_rail: fix g_mbstowcs error handling 2017-03-24 15:36:36 +09:00
speidy
dfd639a3a9 RAIL: use fixed size length for window texts 2017-03-24 15:36:36 +09:00
Jay Sorg
fdb6195bbc rail, text length checks 2017-03-24 15:36:36 +09:00
Jay Sorg
3c95a2aef2 rail, text length checks 2017-03-24 15:36:36 +09:00
speidy
2f382d2a16 libxrdp: print connected client name to log 2017-03-21 22:02:29 -07:00
speidy
9d578d9c5f libxrdp: fix misleading variable name 2017-03-21 22:02:29 -07:00
speidy
b905967ba6 libxrdp: improve unicode_in 2017-03-21 22:02:29 -07:00
Pavel Roskin
43899b7e0c Allocate space for tls_ciphers dynamically 2017-03-21 10:39:40 -07:00
Pavel Roskin
6ed4c969f4 Eliminate APP_CC and DEFAULT_CC 2017-03-14 00:21:48 -07:00
Pavel Roskin
9cdcb38d87 Fix memory leak in tls_ciphers parsing 2017-03-13 17:17:06 +09:00
Koichiro IWAO
08ba9ed4a8 Remove useless comment, no logic change
Now client addr and port are properly logged.
2017-03-09 15:42:14 +09:00
Pavel Roskin
30a7a947b1 Don't include config_ac.h from any header files 2017-03-04 00:52:34 -08:00
Pavel Roskin
b2d3dcf169 Include config_ac.h from all source files 2017-03-04 00:52:34 -08:00
Pavel Roskin
1c355409a7 Fix compilation on MacOS
xrdp_rdp.c includes openssl/ssl.h now, make sure the OpenSSL include path
is used.
2017-03-01 20:39:48 -08:00
Koichiro IWAO
096baec331 no cast is needed for NULL 2017-02-27 14:17:25 +09:00
Koichiro IWAO
849c1a22a2 TLS: switch ssl_protocols to a comma separated list 2017-02-27 14:17:25 +09:00
Koichiro IWAO
c64e9992e6 TLS: warn if no SSL/TLS protocols enabled 2017-02-27 14:17:25 +09:00
Koichiro IWAO
e94ab10e14 TLS: new method to specify SSL/TLS version
SSL/TLS protocols only listed in ssl_protocols should be used.
The name "ssl_protocols" comes from nginx.

Resolves #428.
2017-02-27 14:17:25 +09:00
Jay Sorg
7825246d7a fix warning new since stdint.h change 2017-02-22 20:39:56 -08:00
Pavel Roskin
0bb048d35e Fix several cases of discarding return values 2017-01-25 23:22:29 -08:00
Idan Freiberg
482671fd18 Merge pull request #625 from speidy/proxy_session_info
Pass session info in proxy mode
2017-01-23 08:15:18 +02:00
Idan Freiberg
19375dda7a Merge pull request #426 from metalefty/log-tls-version-and-cipher
TLS: log TLS version and cipher
2017-01-16 07:26:51 +02:00
speidy
b7da395b5e libxrdp: use constant RDP_DATA_PDU_LOGON 2017-01-15 08:51:43 +02:00
speidy
0a5bc44a0b libxrdp: use log_message 2017-01-15 08:46:04 +02:00
Jay Sorg
6f74efa70a add session_info
Conflicts:
	libxrdp/libxrdp.h
2017-01-15 08:20:50 +02:00
Koichiro IWAO
f29a98b243 TLS: log client port in addition to ssl protocol and cipher 2017-01-13 17:59:29 +09:00
speidy
6810aa3f79 libxrdp: libxrdp_send_to_channel, improve error message 2017-01-06 08:32:30 +02:00
speidy
58d8cb0fd2 libxrdp: ignore incoming channels with empty names 2017-01-06 08:01:33 +02:00
speidy
94cdbdcee6 libxrdp: change channel_code into a meaningful name 2017-01-06 07:59:49 +02:00
Pavel Roskin
bcaa1709e0 Fix all warnings in TurboJPEG code
Actually use the error code from tjCompress() by logging the errors.

Make sure width is more than zero before filling the pad with the last
pixel data.
2017-01-05 17:27:12 -08:00
jsorg71
5194311d9d Merge pull request #611 from volth/support-enable-xrdpdebug=yes-2
fix build with --enable-xrdpdebug=yes
2017-01-05 16:00:51 -08:00
volth
26a26ef906 fix build with --enable-xrdpdebug=yes 2017-01-04 19:20:44 +00:00
speidy
70e9132ab1 xrdp: add some logging, remove unused var 2016-12-29 08:38:59 -05:00
speidy
a62c467f71 libxrdp: frame acks, make sure max unacked frames value is valid. 2016-12-29 00:33:17 -05:00
speidy
a96c91b38e libxrdp: fix Fast-Path Synchronize Update message 2016-12-27 09:53:53 +02:00
speidy
38253f1371 libxrdp: add XRDP_RFXCODEC to Makefile.am 2016-12-22 11:43:41 -05:00
metalefty
1753f6317c Merge pull request #550 from jsorg71/bitmap_update
fixes for bitmap update
2016-12-20 17:01:32 +09:00
metalefty
25e5243ecf Merge pull request #553 from jsorg71/libpainter
add libpainter for drawing when client does not have minimum orders
2016-12-20 17:00:48 +09:00
Pavel Roskin
c21b9a78f4 Distribute all files except git and github specific data
It is better to distribute a few useless file than not to distribute
needed files.
2016-12-18 00:00:11 -08:00
jsorg71
9584e22ba6 Merge pull request #549 from jsorg71/rlelimit
fixes for rle bitmap compress limits and raw bitmaps
2016-12-17 11:58:57 -08:00
Jay Sorg
74ec00a6a6 some code cleanup 2016-12-15 21:52:05 -08:00
jsorg71
870f028692 Merge pull request #546 from proski/jpeg-warning
Fix a warning in jpeg compression code with --enable-jpeg
2016-12-15 21:33:25 -08:00
Jay Sorg
1f51586769 add libpainter for drawing when client does not have minimum orders 2016-12-15 21:17:50 -08:00
Jay Sorg
81e72fc99c code cleanup, add some comments 2016-12-15 14:47:37 -08:00
Jay Sorg
519359a823 fixes for bitmap update 2016-12-15 00:39:13 -08:00
Jay Sorg
492116d535 fixes for rle bitmap compress limits and raw bitmaps 2016-12-14 23:55:13 -08:00
Pavel Roskin
380729e982 Fix a warning in jpeg compression code with --enable-jpeg
If the image width is not divisible by 4, the image is padded to the next
multiple of 4. The additional pixels are filled with the colors of the
last pixel in the row.

The last pixel colors may not be initialized if the width is 0. In this
case, the would be no padding, but the compiler doesn't know that.

Add a check that the width is more that 0 before filling the padding.
2016-12-14 22:35:08 -08:00
speidy
a614b60157 lixrdp: typo fix 2016-12-13 18:19:32 -05:00
speidy
917aadd2d1 libxrdp: more constants 2016-12-13 18:18:34 -05:00
speidy
3dc0f2860c Merge branch 'surface_cmds' of git://github.com/speidy/xrdp into surface_cmds 2016-12-13 15:08:37 -05:00
speidy
5e39bb1f87 libxrdp: caps, group caps require fastpath output, use FASTPATH_OUTPUT_SUPPORTED constant 2016-12-13 15:05:39 -05:00
speidy
d6a470e973 libxrdp: improve messages 2016-12-13 14:31:27 -05:00
Speidy
a0cf6030df Merge branch 'devel' of https://github.com/neutrinolabs/xrdp into surface_cmds 2016-12-12 15:51:39 -08:00
jsorg71
5966de4ee2 Merge pull request #536 from jsorg71/unicode
add unicode support
2016-12-11 17:15:34 -08:00
Jay Sorg
c264862afe change some magics to defines 2016-12-10 01:06:45 -08:00
Jay Sorg
7a1a481ff9 use defines for flags 2016-12-10 00:43:33 -08:00
Jay Sorg
2f8d3ba9da add unicode support 2016-12-10 00:11:28 -08:00
speidy
1ef5c2412c xrdp_caps: fix jpeg codec properties 2016-12-10 02:14:50 -05:00
speidy
4f04801b11 o caps: advertise remotefx codec capsets only when supported (RFX mode,
proxy mode)
o xrdp_encoder: do not initialze encoder context for RFX when rfxcodec
is not supported
2016-12-10 02:03:20 -05:00
speidy
bf07c20571 no logic change, indent only 2016-12-08 20:12:00 -05:00
speidy
8a0fec5e66 o send RFX tiles as stream (Stream Surface Bits Command)
o silent frame ack logging
o support surface commands in capsets
o fix some wrong constants
2016-12-08 20:12:00 -05:00
speidy
1fe048b63d xrdp_encoder: do not initialize for non-UNIX rdp clients
xrdp_encoder: comment about temporary workaround
2016-11-29 15:25:14 -05:00
Pavel Roskin
d3c36b0376 Don't select SSL protocol if no keys, fall back to RDP for "hybrid"
If both the client and the server are configured to allow both RDP and
SSL connections, the server is free to choose RDP in absense of the SSL
keys.
2016-11-28 00:18:33 -08:00
Pavel Roskin
d73f20499e Log the result of the security level negotiation 2016-11-28 00:18:16 -08:00
Pavel Roskin
8069b29429 Recognize security_layer=negotiate in xrdp.ini, improve logging
security_layer=negotiate is documented, but the code is complaining
loudly about it. Fix it, make sure not to change the actual behavior
apart from the logging.

Improve the log message for unrecognized security_layer setting.
2016-11-27 23:49:32 -08:00
Pavel Roskin
077e3f5bfc Fix pointer sign warnings in TurboJPEG compression code 2016-11-22 08:34:45 -08:00
Pavel Roskin
e7433ec69c Fix pointer sign warnings in JPEG compression code 2016-11-22 08:34:45 -08:00
Koichiro IWAO
2c9ff1a4d4 log non TLS session 2016-11-22 10:50:31 +09:00
Koichiro IWAO
40e8194122 TLS: log TLS version and cipher 2016-11-22 10:50:30 +09:00
Jay Sorg
da9439f24d libxrdp: warn when using 512 bit key 2016-11-11 22:29:54 -08:00
Pavel Roskin
a370306f75 Get rid of EXTRA_LIBS, use variables with more specific names 2016-10-20 10:43:02 -07:00
Pavel Roskin
5c69f3cd57 Eliminate EXTRA_FLAGS, it's a poor name, use AM_LDFLAGS 2016-10-20 10:43:02 -07:00
Pavel Roskin
0422734fc7 Merge EXTRA_DEFINES and EXTRA_INCLUDES into AM_CPPFLAGS
AM_CPPFLAGS is a documented Automake variable for C preprocessor flags
that should not be overridden when compiling the package.

There is no need to have two additional variables that are ultimately
merged into AM_CPPFLAGS.

Their names are also confusing. EXTDA_DIST is a documented Automake
variable. Everything else that starts with "EXTRA" is not.
2016-10-20 10:43:02 -07:00
Pavel Roskin
9ac592b218 Don't use term "missing" when using default files, it's too alarming
Also improve messages when non-absolute path is rejected.
2016-10-17 08:38:22 -07:00
Koichiro IWAO
e2d4b65787 libxrdp: cleanup log log in xrdp_load_keyboard_layout 2016-09-06 15:55:11 +09:00
Koichiro IWAO
2488159645 libxrdp: log keyboard type/subtype 2016-09-02 13:44:11 +09:00
Koichiro IWAO
644242fc53 libxrdp: log keyboard options 2016-09-02 13:44:11 +09:00
metalefty
b934e55fc8 Merge pull request #364 from laigor/devel
Allows use the xkb options that for example allows you to specify a key combination to change the layouts.
2016-08-30 09:28:25 +09:00
Alex Illsley
47124df4ed new options for xrdp.ini disableSSlv3=yes and tls_ciphers=HIGH and code to implement 2016-08-25 11:20:47 -07:00
jsorg71
97cd690f84 Merge pull request #384 from CarstenGrohmann/improve_cert_log_messages
Improve certificate log messages
2016-08-05 14:44:34 -07:00
Pavel Roskin
aeeb3d2c2e Fix warnings detected by -Wwrite-strings 2016-07-08 04:29:42 +00:00
Pavel Roskin
ae5bb5bf9c Fix incorrect use of "it's" and "its", adjust wording 2016-06-21 16:30:15 -07:00
Carsten Grohmann
7f0d059d84 Improve certificate log messages 2016-06-11 10:58:15 +02:00
speidy
f5ec7f4102 libxrdp: oops, fix virtual desktop size check 2016-05-18 00:24:16 -04:00
speidy
881756a82c libxrdp: oops, fix virtual desktop size check 2016-05-18 00:23:07 -04:00
speidy
36c17767b7 libxrdp: in CS_MONITOR, validate virtual desktop size we got from client 2016-05-18 00:20:41 -04:00
speidy
b38dcf1bb0 xrdp_wm: fix for multimon, draw login window and log window on primary
monitor
2016-05-17 20:11:49 -04:00
Pavel Roskin
ca9cbcafc8 Typo fixes 2016-05-04 23:33:30 -07:00
Pavel Roskin
70f3d4c5e2 Fix warnings for unused variables read from byte streams 2016-04-23 00:18:38 -07:00
Pavel Roskin
0629b25d5f Fix warnings about unused variables and functions 2016-04-21 22:27:27 -07:00
laigor
59be4134c3 Allows use the xkb options that for example allows you to specify a key combination to change the layouts.
Example of xrdp_keyboard.ini for russian keyboard

[default_rdp_layouts]
rdp_layout_us=0x00000409
rdp_layout_de=0x00000407
rdp_layout_fr=0x0000040C
rdp_layout_it=0x00000410
rdp_layout_jp=0x00000411
rdp_layout_jp2=0xe0010411
rdp_layout_jp3=0xe0200411
rdp_layout_jp4=0xe0210411
rdp_layout_ru=0x00000419
rdp_layout_se=0x0000041D
rdp_layout_pt=0x00000816
rdp_layout_br=0x00000416
rdp_layout_pl=0x00000415

[rdp_keyboard_ru]
keyboard_type=4
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru
2016-04-14 22:35:56 +03:00
Jay Sorg
87208db090 fix warnings 2016-04-09 22:10:12 -07:00
Jay Sorg
38241f2a0b Fix all format warnings and some unused variable warnings 2016-03-14 17:04:08 -07:00
Pavel Roskin
59a5fb0ddb Move headers from EXTRA_DIST to sources, sort alphabetically
There should be no functional difference.
2016-02-21 23:06:48 -08:00
Pavel Roskin
92a6833e9b Fix typos 2016-02-13 20:41:07 -08:00
Pavel Roskin
dcab7552db Stop redefining libdir, use moduledir for ${libdir}/xrdp
libdir is for shared and static libraries. Some xrdp libraries are loaded
dynamically from a non-standard directory, so they are used like modules.

Having separate libdir and moduledir would eventually allow to separate
dynamically loaded modules from shared libraries.
2016-02-12 23:52:46 -08:00
Pavel Roskin
22e808a186 Add missing spaces in the strings that are split for line wrapping 2016-02-12 23:52:45 -08:00
Pavel Roskin
a452d8d36a Merge AM_CFLAGS and INCLUDES info AM_CPPFLAGS
AM_CPPFLAGS is for flags passed to the preprocessor, such as defines and
includes. AM_CFLAGS is for flags affecting the compiler, such as debug
and optimization settings.

INCLUDES is an obsolete name. Users can pass INCLUDES and break
compilation. AM_CPPFLAGS is more explicit that the flags come from
Automake and should not be overridden.
2016-01-29 22:45:00 -08:00
Pavel Roskin
ee1a237685 Remove GOT_PREFIX, it's a broken hack of limited utility
To add flags to the compiler, CFLAGS, CPPFLAGS or LDFLAGS can be used on
the configure command line.

The need to add flags depends on the location of the headers and
libraries of the dependencies, which is orthogonal to the directory where
xrdp will be installed.

The implementation in configure.ac has a stray closing bracket, making
GOT_PREFIX true even if --prefix is not passed.

The implementation is inconsistent - the only affected makefiles are for
xrdp and libxrdp.

Changing rpath manually is wrong in most cases. Libtool should be able to
set rpath correctly on its own.

Using $(prefix)/lib ignores the libdir setting. For many 64-bit systems,
/usr/lib is used for 32-bit libraries. Adding 32-bit libraries to the
rpath slows down 64-bit executables, as the dynamic loader searches for
libraries in a wrong directory.

There is no way to disable GOT_PREFIX if --prefix has to be passed.
Fedora RPM patches configure.ac and needs to rerun autoconf and automake
after that.
2016-01-26 22:36:59 -08:00
Pavel Roskin
964e860072 Run through codespell 2016-01-14 08:47:50 -08:00
Jay Sorg
96a237c8ef libxrdp: rail fix for when no flags are set 2015-12-11 20:05:40 -08:00
Jay Sorg
a303f9aaec remove trailing white space 2015-08-03 20:37:43 -07:00
Jay Sorg
a4f8705e99 multimon fix, mstsc reports desktop width and height of primary only 2015-08-03 17:12:46 -07:00
itamarjp
960cc62a0e add missing files into extra_dist,
this is required when using make dist to generate a tarball
2015-07-14 11:35:33 -03:00
Jay Sorg
914b4acf39 fix for libxrdp_reset 2015-07-11 00:13:50 -07:00
Jay Sorg
b56aa9832e work on main loop changes 2015-07-05 23:14:46 -07:00
speidy
9fb02e381d libxrdp: xrdp_iso: changed logs, some fixes in security layer
negotiation.
2015-06-04 16:48:41 +03:00
Jay Sorg
33167a7c74 add frame acks and h264 codec mode basics 2015-03-28 18:34:25 -07:00
Jay Sorg
253028431c libxrdp: opps, fix typeo 2014-12-23 22:51:10 -06:00
Jay Sorg
25809f4f1c libxrdp: no logic change, tabs to spaces 2014-12-23 20:04:20 -08:00
Jay Sorg
eddf0eefdc libxrdp: no logic change, statis functions, indent 2014-12-18 19:40:26 -08:00
Jay Sorg
ce1a4e660b libxrdp: fastpath RDP_INPUT_SYNCHRONIZE fix 2014-12-16 17:36:18 -08:00
Jay Sorg
69a551cdf7 libxrdp: indent, no logic change 2014-12-16 12:20:57 -08:00
Jay Sorg
d1bc5b0bf7 libxrdp: no logic change, tabs to spaces 2014-12-15 16:26:32 -08:00
speidy
5e89424129 libxrdp: fix for 'low' RDP security level (issue #202) 2014-12-15 22:12:16 +02:00
speidy
bf622c46a6 libxrdp: security layer, error handling 2014-12-13 16:36:23 +02:00
speidy
fb306e624e libxrdp: changes for security layer negotiation,
security_layer=negotiate is working now
2014-12-13 16:24:07 +02:00
speidy
52cac06092 libxrdp: delete NLA header detection for now, TLS is working now with
mstsc
2014-11-21 03:17:45 +02:00
Jay Sorg
605df27103 libxrdp: remove a global, remove some tabs 2014-11-06 16:51:39 -08:00
speidy
4015f526db work on tls mode 2014-08-22 09:13:33 +03:00
Jay Sorg
c7144744a4 security change for none 2014-08-05 14:41:59 -07:00
Jay Sorg
ffed349875 added option to set rdp crypto level to none 2014-08-05 12:28:54 -07:00
Jay Sorg
821bf3e2a5 no logic change, convert tabs to spaces 2014-08-05 11:59:52 -07:00
Jay Sorg
779f0bf470 add xrdp_keyboard.ini to Makefile.am 2014-07-31 21:54:16 -07:00
Jay Sorg
4ef60f163d load the rdp to X11 keybaord mappings from file 2014-07-31 16:17:19 -07:00
Laxmikant Rashinkar
0915d33d70 coverity: dead code 2014-07-26 15:06:35 -07:00
Idan Freiberg
16929efb05 Merge branch 'devel' of https://github.com/neutrinolabs/xrdp into
devel

Conflicts:
	libxrdp/xrdp_sec.c
2014-07-23 16:44:59 +03:00
Idan Freiberg
0795400fe2 libxrdp: mcs, delete temp hexdump 2014-07-23 15:51:21 +03:00
Idan Freiberg
5a0d1f028a libxrdp: work on TLS mode 2014-07-23 15:42:19 +03:00
Idan Freiberg
afdf638c7b libxrdp, common: work on TLS mode 2014-07-23 15:31:45 +03:00
speidy
1acdc3085e libxrdp: work on TLS mode, temporary changes 2014-07-21 07:00:12 +03:00