Commit Graph

687 Commits

Author SHA1 Message Date
Ben Cohen
bb9756f6c5 Fix UK/GB keyboard layout
The UK/GB keyboard doesn't work properly connecting to xrdp with xorgxrdp.
It does work when connecting to xrdp with x11vnc, however.

This is because the layout is not declared in xrdp_keyboard.ini.  It needs
to be called "gb" not "uk".  (There are other layouts that have
km-nnnn.ini files that aren't declared in xrdp_keyboard.ini, so they might
have the same bug, but I haven't tested that.  This is analagous to the
commits for the "ch" and "pl" layouts.)

Test case:

1. Use a PC with the UK/GB keyboard layout.

2. Create /etc/xrdp/startwm.sh as follows:

     #!/bin/sh
     export LANG=en_GB.UTF-8
     export MDM_LANG=en_GB.UTF-8
     export XTERM_LOCALE=en_GB.UTF-8
     xterm
     exit 0

3. Connect using rdesktop to localhost (from a session where the same
   environment variables are defined).

4. Test layout-specific keys such as:
      \ (backslash)
      | (bar)
      # (numbersign)
      ~ (asciitilde)
      £ (sterling: Shift-3)
      € (EuroSign: AltGr-4)

These keys should produce the appropriate symbol but they don't.  With
the change in this commit the keys produce the correct symbol.
2017-06-08 13:31:30 +09:00
Koichiro IWAO
84596e7392 Pick up the first section if given section(domain) doesn't match anything
As some clinents (AFAIK Windows 10) always send domain name, the backend
module is not selected properly. This causes the default usage with
Windows 10 fails with 'xrdp_wm_log_msg: Section "XXX" not configured'.
2017-06-07 14:08:26 +09:00
Koichiro IWAO
0e7844ab02 Constify MCS connectionType 2017-06-06 10:04:48 +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
Pavel Roskin
43899b7e0c Allocate space for tls_ciphers dynamically 2017-03-21 10:39:40 -07:00
Pavel Roskin
58c9cb43e9 Make socket directory configurable, don't hardcode /tmp/.xrdp
Use XRDP_SOCKET_PATH in file_loc.h

Don't define any non-socket paths in file_loc.h, they should come from
the makefiles.

Define all paths unconditionally, they should not be defined elsewhere.

Pass XRDP_SOCKET_PATH as environment variable to the backends.
2017-03-17 22:25:05 -07:00
Koichiro IWAO
a2d9272bc9 Propel xorgxrdp as default backend, give xorgxrdp the first place 2017-03-17 09:21:51 +09:00
Pavel Roskin
6ed4c969f4 Eliminate APP_CC and DEFAULT_CC 2017-03-14 00:21:48 -07:00
Pavel Roskin
8be83473b7 Call log_end() on xrdp exit 2017-03-13 17:17:06 +09:00
Jay Sorg
3f14559822 frame ack code cleanup, add comments for possible client acks, when pointer, use NULL, not 0 2017-03-06 22:44:26 -08:00
Jay Sorg
3ac0120fe7 add xrdp_mm_process_enc_done for processing encoder output 2017-03-06 22:44:26 -08:00
Jay Sorg
e0583f606a checkup frame ack code, combine dup code 2017-03-06 22:44:26 -08:00
Jay Sorg
3b056ec052 frame ack fix change, cleanup 2017-03-06 22:44:26 -08: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
Koichiro IWAO
849c1a22a2 TLS: switch ssl_protocols to a comma separated list 2017-02-27 14:17:25 +09:00
Koichiro IWAO
03b5be5fd0 docs: document maximum length of tls_ciphers 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
b8c79452f6 encoder, remove check for UINT16_MAX, not really needed 2017-02-22 20:57:33 -08:00
Jay Sorg
79796b77b7 changes and cleanup to process_enc_rfx 2017-02-22 20:57:33 -08:00
Jay Sorg
8c0dcbbd4f fix for frames in flight = 0 2017-02-22 20:57:33 -08:00
Jay Sorg
815b9b8bb8 frame ack change for slow client falling behind 2017-02-22 20:57:33 -08:00
Jay Sorg
fde04e802c rfx fixes for large tile sets, performance change, Xorg will start next frame earlier 2017-02-22 20:57:33 -08:00
Jay Sorg
7825246d7a fix warning new since stdint.h change 2017-02-22 20:39:56 -08:00
Koichiro IWAO
2424a9c020 Workaround for a regression of JP keyboard detection #663
caused by 9c31bd5.  This is not a complete fix but just a workaround
because keylayout value of Japanese keyboard can be other than these
4 values. This workaround still doesn't cover all JP keyboards.

  - 0x00000411
  - 0xe0010411
  - 0xe0200411
  - 0xe0210411

Looking for `0411` in lower 16 bits is enough to detect JP keyboards.
2017-02-16 18:40:06 +09:00
Pavel Roskin
8a1de8dbc4 Remove trailing whitespace 2017-02-08 13:30:56 +09:00
Pavel Roskin
130fa12845 Don't use ACCESS macro
ACCESS is defined unconditionally in the files that use it. No comments
exist about that macro. The code guarded by the macro is PAM related.
2017-02-02 21:28:53 -08:00
Pavel Roskin
0bb048d35e Fix several cases of discarding return values 2017-01-25 23:22:29 -08:00
Idan Freiberg
6a5f90ca6e Merge pull request #636 from proski/painter
Fix incorrect argument to painter_line()
2017-01-23 08:15:39 +02: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
Pavel Roskin
6807b616ed Fix incorrect argument to painter_line() 2017-01-21 18:20:27 -08:00
Pavel Roskin
2b614ed4ab Remove librdp.so sources, it's obsoleted by neutrinordp
Remove "rdp-any" section from xrdp.ini.
2017-01-19 20:13:49 -08:00
Pavel Roskin
0799523c13 List shorthand versions of command line switches in the help text 2017-01-17 18:09:47 -08:00
Pavel Roskin
9d162d7301 Implement "-n" alias for "--nodaemon" as documented in the manpage 2017-01-17 18:09:47 -08:00
Idan Freiberg
a64e1789c5 Merge pull request #615 from speidy/channels_fixes
Channels improvements
2017-01-15 08:55:00 +02:00
Jay Sorg
6f74efa70a add session_info
Conflicts:
	libxrdp/libxrdp.h
2017-01-15 08:20:50 +02:00
Pavel Roskin
d46a26c1c3 Don't call file_read_section() on unitialized section name
This can only happen if xrdp.ini is corrupted and has no sections for
backends.
2017-01-11 12:24:59 -08:00
Pavel Roskin
b8ed23daab Constify the value argument to mod_set_param 2017-01-11 11:59:11 -08:00
Ricardo Duarte
a959a9f851 Move mouse before click 2017-01-10 12:22:06 -08:00
speidy
a82d412754 libxrdp: channels, respect xrdp.ini channel blocking also for data
coming in from chansrv
2017-01-06 08:32:30 +02:00
jsorg71
15a24ff1c4 Merge pull request #612 from proski/includes
Use <> for system includes, move system includes above local ones
2017-01-05 16:01:52 -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
Pavel Roskin
7ba3610787 Use <> for system includes, move system includes above local ones 2017-01-04 13:13:20 -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
1f930f252f xrdp: fix for codec frame acks handling.
can handle zero unacked frames now.

This should make RemoteFX usable with Parallels Client. they always
wan't zero unacked frames on the wire.
2016-12-29 00:41:16 -05:00
Pavel Roskin
0e7bc6e111 Compile libpainter only if enabled, fix path to libpainter.a
When subpackages are compiled outside the build tree, the build artifacts
are placed under top_builddir.
2016-12-20 13:07:48 -08: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
77d6fd0807 Fix Parallels Client on Mac
self->line_size should be calculated in xrdp_bitmap_create_with_data()

The code was in the original noorders branch but got lost. Without this
fix, the image is garbled.

The client should be configured with compression disabled, or it will
disconnect. That's a known problem.
2016-12-18 09:24:06 -08: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
Idan Freiberg
0f6d1aabc2 Merge pull request #548 from proski/autorun
Set autorun to empty, improve autorun documentation
2016-12-18 02:48:58 -05:00
Pavel Roskin
0c6b5111af Regression fix: session matching uses wrong bpp for Xorg
The removal of "xserverbpp=24" from the Xorg entry lead to a regression.
Clients with a different bpp would not reconnect to an xorgxrdp session
if the client's bpp is different, even though xorgxrdp is always using 24
bpp.

Imply "xserverbpp=24" for "code=20" in xrdp.ini.
2016-12-17 16:15:07 -08:00
Pavel Roskin
65be965ebd Set autorun to empty, improve autorun documentation
Setting autorun to empty keeps X11rdp as the default backend for
autologin (since it's the first section), but it also enables the backend
selection by the domain name.

Describe the autorun interaction with the domain name both in the config
file and in the manual.
2016-12-17 16:14:44 -08:00
Pavel Roskin
e65aa594e8 Make librfxcodec a subpackage
Since libpainter is going to become a subpackage, we can make librfxcodec
a subpackage as well.

With this change, librfxcodec is configured, built and linked to xrdp
automatically if enabled by "--enable-rfxcodec"

librfxcodec is packaged by "make dist" regardless of "--enable-rfxcodec"

librfxcodec/confgure is run unconditionally, it's needed for "make dist"
to work. But librfxcodec is only compiled if enabled.
2016-12-15 22:37:20 -08:00
jsorg71
d4e96f0c4c Merge pull request #531 from speidy/surface_cmds
xrdp_encoder: make RemoteFX work with MSTSC client
2016-12-15 21:26:41 -08:00
Jay Sorg
1f51586769 add libpainter for drawing when client does not have minimum orders 2016-12-15 21:17:50 -08:00
Westporch
2ea8eddc25 Sort alphabetically 2016-12-14 15:30:31 +09:00
Westporch
52081cb8bc Add 'rdp_layout_kr=kr' 2016-12-14 14:38:27 +09: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
2f8d3ba9da add unicode support 2016-12-10 00:11:28 -08: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
bb8b85759d xrdp_encoder: remove temporary workaround for RFX to avoid mstsc 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
Pavel Roskin
9cfe477f60 Document xserverbpp, add it to Xvnc section, remove from Xorg section
xserverbpp affects X11rdp and Xvnc, but not Xorg. No need to have
xserverbpp in the Xorg section where it has no effect. Add commented out
xserverbpp to Xvnc, some users may want to experiment with that setting.
2016-12-06 14:40:38 -08:00
jsorg71
bbae1a98c6 Merge pull request #523 from jsorg71/vpf
vnc: change password file to use guid hash
2016-12-06 12:05:23 -08:00
Pavel Roskin
c759a1a645 Make configure show it's looking for "pixman", not "xrdp_pixman"
The pixman library in not part of xrdp. If users see that "xrdp_pixman"
is not found, they might assume it is some xrdp specific library.

The Automake conditional is still XRDP_PIXMAN, but the pkg-config
variables become PIXMAN_LIBS and PIXMAN_CFLAGS.
2016-12-04 19:38:45 -08:00
Jay Sorg
9a517b34f0 vnc: code cleanup 2016-12-04 15:39:10 -08:00
Jay Sorg
57905d71ad vnc: change password file to use guid hash 2016-12-03 23:12:48 -08:00
Itamar Reis Peixoto
fb892c7d80 Merge pull request #516 from metalefty/keymaps
Adjust Japanese keymaps
2016-12-02 15:22:04 -02:00
Koichiro IWAO
9c31bd5cc4 unify Japanese keymap in xrdp_keyboard.ini 2016-12-02 16:48:23 +09: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
Jay Sorg
e8308d58b3 xrdp: do case insensitive compare for section names 2016-11-19 07:44:28 +00:00
Itamar Reis Peixoto
f7b0b0d89c Merge pull request #488 from metalefty/docs
Update man pages and config files
2016-11-17 23:12:49 -02:00
metalefty
b89956d06e Merge pull request #485 from proski/code-standards
Code standards
2016-11-16 17:05:21 +09:00
Pavel Roskin
5d2ce60340 Fix regression in domain to session type mapping
If no domain is passed, self->session->client_info->domain is an empty
string that is incorrectly treated as if the domain were passed by the
client.

The regression was introduced in fc753a95, when an incorrect check for
non-empty domain was added. That check was removed in 67119ecc based on
coverity report, leaving no trace of the original intention.

Check domain both for '_' and '\0' as the initial character. In either
case, select the first session type section in xrdp.ini.
2016-11-15 22:42:04 -08:00
Pavel Roskin
16c3bbdb8d Remove all tabs in sources 2016-11-15 22:40:06 -08:00
Koichiro IWAO
0a7f1bb007 docs: revise description for disableSSLv3 in xrdp.ini 2016-11-16 15:02:46 +09:00
Koichiro IWAO
d74366a6f2 config: change order of parameters
Put same layer configuration parameters together, bring low layer
parameters earlier.
2016-11-16 14:15:44 +09:00
Koichiro IWAO
cb1960e0fc config: use semicolon to comment out descriptions in config files
and use number sign to comment out actual configurations.
For example:

    ; if set to true, enables foobar
    #foobar=true
2016-11-16 14:15:44 +09:00
Koichiro IWAO
181830bf61 config: Capitalize section title to fit documents 2016-11-16 14:15:44 +09:00
Koichiro IWAO
4f2d94505a config: unify all boolean values in config to true/false 2016-11-16 14:15:44 +09:00
Jay Sorg
4f33a9db1d change xrdp.ini security_layer=negotiate and auto generate tls keys on make install 2016-11-11 22:55:21 -08:00
Koichiro IWAO
5725200e82 Use km-0000yyyy.ini if km-xxxxyyyy.ini doen't exist
upper 16 bits of keylayout value indicates keyboard layout.
lower 16 bits of keylayout value indicates country/language.

If the keymap file doesn't match exactly to keylayout value,
the typical keyboard of the country/language should be used.

For example [1]:
  0x00000409: US English
  0x00010409: US Dvorak
  0x00020409: US International
  0x00030409: US Dvorak for left hand
  0x00040409: US Dvorak for right hang
  0x0000040e: Hungarian
  0x0001040e: Hungarian 101-key

[1] https://msdn.microsoft.com/windows/hardware/commercialize/manufacture/desktop/windows-language-pack-default-values
2016-11-04 17:25:02 +09:00
Itamar Reis Peixoto
f94920171e Merge pull request #437 from metalefty/switch-to-8-hex-digit-keymap-file
Switch to 8 hex digit keymapfile
2016-11-02 01:14:19 -02:00
Pavel Roskin
61811466e2 Simplify names of xrdp.ini sections, rename "Session Manager" to "Xorg"
Make section names equal to the names in the "name=" setting to avoid
confusion and the need to renumber sections. Avoid "sesman-" in the
names, it's not helpful to the user. Move "Xorg" just below "X11rdp",
that would give xorgxrdp more visibility.
2016-11-01 13:38:42 -07:00
Koichiro IWAO
c654c86206 Switch to 8 hex digit keymapfile
as the value keyboardLayout is actually 32-bit unsigned integer.
See [MS-RDPBCGR] - v20160714 p.45.
2016-10-24 15:19:23 +09: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
09746fcebc Leave only one "autorun" in xrdp.ini, improve comment 2016-10-17 08:54:07 -07:00
Pavel Roskin
a618d4f757 Don't use final newline in log calls, it's already appended 2016-10-17 08:54:07 -07:00
Koichiro IWAO
ee3a38f93d xrdp: librfxcodc link fix
as same fix as done in 4a815d5 for libpainter
2016-10-13 14:07:53 +09:00
Jay Sorg
b24f8d8fef remove a debug message 2016-10-03 20:34:12 -07:00
Jay Sorg
409878666f xrdp: handle 3 byte PDU 2016-10-03 20:05:14 -07:00
Pavel Roskin
49ae93130a Improve message about listening socket is a wrong state 2016-09-08 20:26:19 -07: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
Jay Sorg
bb7bac2d9b add region intersect 2016-08-08 23:12:52 -07:00
Jay Sorg
58c777783b add more advances region support using pixman 2016-08-08 20:02:10 -07:00