Commit Graph

663 Commits (bc48578a907346caf36942052b262d4c58b5a29a)

Author SHA1 Message Date
Jay Sorg 54285d26dd remove empty crc16.h file 7 years ago
Jay Sorg 26507644e3 vsock, move some defines 7 years ago
Justin Terry (VM) 50bd624cc4 Implements XRDP over vsock
1. Implements the ability to use AV_VSOCK for the transport rather than TCP.
2. Updates the ini file to be able to conditionally turn this feature on.
7 years ago
Koichiro IWAO 2475893402 Constify extended mouse events 7 years ago
Koichiro IWAO 27aef96e81 Constify mouse event flags, use the MS name for constants 7 years ago
Koichiro IWAO 8e7e54e49f xrdp_wm: handle horizontal mouse wheel events 7 years ago
Koichiro IWAO 903a2bf83a xrdp_wm: make mouse button 6 and 7 act like button 4 and 5
because 6 and 7 are horizontal scroll. They should acts as same as
vertical scroll.
7 years ago
Soedarsono 3c3eb9ed73 Add dvorak keyboard layout 7 years ago
Felix Zhang eaed9af498 xrdp: corret the config file name in the comment 7 years ago
Oscar Salvador be23682f90 xrdp: get port from configfile in access_control()
This fixes #894
7 years ago
Koichiro IWAO ced3a4817f xrdp: constify input event type 7 years ago
cocoon 8ded88a0c6 Fixes #414 8 years ago
Koichiro IWAO e6b7d12191 xrdp: accept full path for ls_background_image
because ls_logo_filename accepts full path.
8 years ago
Koichiro IWAO 9ca52b05da add Belgian keyboard 8 years ago
Koichiro IWAO b34fc6da55 don't use hard coded constant values 8 years ago
Koichiro IWAO df32f74519 use g_free() 8 years ago
Koichiro IWAO 04187945a8 move base64 functions to base64.c 8 years ago
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.
8 years ago
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.
8 years ago
Koichiro IWAO b83b5510f4 Fix Xvnc backend disconnects when some data copied to clipboard
Should fix #755.
8 years ago
Koichiro IWAO 5def0596e0 int function should return 8 years ago
Koichiro IWAO 1d89000d90 xrdp: exit main process with failure status if listen failed (daemon mode) 8 years ago
Koichiro IWAO 7aad2c83c6 xrdp: exit with failure status if listen failed (foreground mode) 8 years ago
Koichiro IWAO 252cb20365 xrdp: xrdp_listen_main_loop pass through trans_listen_address return value 8 years ago
Koichiro IWAO 606984baad add Spanish keylayout 8 years ago
Koichiro IWAO 0299d64fa8 sort xrdp_keyboard.ini 8 years ago
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.
8 years ago
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'.
8 years ago
Koichiro IWAO 0e7844ab02 Constify MCS connectionType 8 years ago
Pavel Roskin 148afd1170 Rename file_loc.h to xrdp_sockets.h, install it
Include xrdp_sockets.h directly, not through headers.
8 years ago
Pavel Roskin 43899b7e0c Allocate space for tls_ciphers dynamically 8 years ago
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.
8 years ago
Koichiro IWAO a2d9272bc9 Propel xorgxrdp as default backend, give xorgxrdp the first place 8 years ago
Pavel Roskin 6ed4c969f4 Eliminate APP_CC and DEFAULT_CC 8 years ago
Pavel Roskin 8be83473b7 Call log_end() on xrdp exit 8 years ago
Jay Sorg 3f14559822 frame ack code cleanup, add comments for possible client acks, when pointer, use NULL, not 0 8 years ago
Jay Sorg 3ac0120fe7 add xrdp_mm_process_enc_done for processing encoder output 8 years ago
Jay Sorg e0583f606a checkup frame ack code, combine dup code 8 years ago
Jay Sorg 3b056ec052 frame ack fix change, cleanup 8 years ago
Pavel Roskin 30a7a947b1 Don't include config_ac.h from any header files 8 years ago
Pavel Roskin b2d3dcf169 Include config_ac.h from all source files 8 years ago
Koichiro IWAO 849c1a22a2 TLS: switch ssl_protocols to a comma separated list 8 years ago
Koichiro IWAO 03b5be5fd0 docs: document maximum length of tls_ciphers 8 years ago
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.
8 years ago
Jay Sorg b8c79452f6 encoder, remove check for UINT16_MAX, not really needed 8 years ago
Jay Sorg 79796b77b7 changes and cleanup to process_enc_rfx 8 years ago
Jay Sorg 8c0dcbbd4f fix for frames in flight = 0 8 years ago
Jay Sorg 815b9b8bb8 frame ack change for slow client falling behind 8 years ago
Jay Sorg fde04e802c rfx fixes for large tile sets, performance change, Xorg will start next frame earlier 8 years ago
Jay Sorg 7825246d7a fix warning new since stdint.h change 8 years ago