Commit Graph

656 Commits

Author SHA1 Message Date
Soedarsono
3c3eb9ed73 Add dvorak keyboard layout 2017-11-01 10:24:54 -07:00
Felix Zhang
eaed9af498 xrdp: corret the config file name in the comment 2017-10-09 21:38:10 +09:00
Oscar Salvador
be23682f90 xrdp: get port from configfile in access_control()
This fixes #894
2017-10-03 09:45:24 +09:00
Koichiro IWAO
ced3a4817f xrdp: constify input event type 2017-10-02 09:39:48 +09:00
cocoon
8ded88a0c6 Fixes #414 2017-09-17 18:03:07 +09:00
Koichiro IWAO
e6b7d12191 xrdp: accept full path for ls_background_image
because ls_logo_filename accepts full path.
2017-09-05 17:17:33 +09:00
Koichiro IWAO
9ca52b05da add Belgian keyboard 2017-09-01 10:08:26 +09:00
Koichiro IWAO
b34fc6da55 don't use hard coded constant values 2017-08-01 08:40:30 +09:00
Koichiro IWAO
df32f74519 use g_free() 2017-08-01 08:40:30 +09:00
Koichiro IWAO
04187945a8 move base64 functions to base64.c 2017-08-01 08:40:30 +09:00
Koichiro IWAO
a89cb93bc7 decode base64 login window parameter
such as prefill username and password:
    username=ask{base64}YmFzZTY0
    username={base64}YmFzZTY0
    password=ask{base64}YmFzZTs2NCFwYXNzd29yZCM=
    password={base64}YmFzZTs2NCFwYXNzd29yZCM=

';', '#', '!' means comment in .ini files. If prefill username or
password contains such symbols, these can be provided base64 encoded.
2017-08-01 08:40:30 +09:00
Ben Cohen
8b4d057af2 Allow UDS connection from non-root users
If you run xrdp with a Unix Domain Socket (UDS) for the port specified in
/etc/xrdp/xrdp.ini then only root can connect to it.

Test case:

1. Edit /etc/xrdp/xrdp.ini to set "port=/var/run/xrdp-local.socket".

2. Restart xrdp.

3. Run the following, as a non-root user.

  socat TCP-LISTEN:12345 UNIX-CONNECT:/var/run/xrdp-local.socket &
  rdesktop localhost:12345

Expected behaviour: rdesktop starts up and displays the logon dialog.
Observed behaviour: rdesktop exits with "ERROR: Connection closed" and
socat exits with "Permission denied".  (But it suceeds if root runs
socat.)

UDS files are created by trans_listen_address() and given permissions
0660, so only root can connect to it.  In this case, for the RDP client
connection, it it fine for any user to connect so it should be given
permissions 0666.

Note that this is only relevant when the port in /etc/xrdp/xrdp.ini has
been set to create a UDS instead of a TCP socket.  When a TCP port is
created any user (including remote users, unless the loopback interface
is used) can connect so this is not less secure.
2017-07-20 09:13:06 +09:00
Koichiro IWAO
b83b5510f4 Fix Xvnc backend disconnects when some data copied to clipboard
Should fix #755.
2017-07-06 13:44:53 +09:00
Koichiro IWAO
5def0596e0 int function should return 2017-06-20 14:29:02 +09:00
Koichiro IWAO
1d89000d90 xrdp: exit main process with failure status if listen failed (daemon mode) 2017-06-20 14:29:02 +09:00
Koichiro IWAO
7aad2c83c6 xrdp: exit with failure status if listen failed (foreground mode) 2017-06-20 14:29:02 +09:00
Koichiro IWAO
252cb20365 xrdp: xrdp_listen_main_loop pass through trans_listen_address return value 2017-06-20 14:29:02 +09:00
Koichiro IWAO
606984baad add Spanish keylayout 2017-06-17 16:31:17 +09:00
Koichiro IWAO
0299d64fa8 sort xrdp_keyboard.ini 2017-06-09 15:55:22 +09:00
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