Commit Graph

3185 Commits (d958d1f0186968200da32bafc3d9be4a4aa7212d)
 

Author SHA1 Message Date
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
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
Koichiro IWAO e879cf5fce add TODO comments 8 years ago
Koichiro IWAO bedf04cd9f instfiles: substitute directories in systemd service files
Do not expect prefix is always /usr. /usr/local is often used when users
compile xrdp manually.
8 years ago
Koichiro IWAO 67aab0a706 configure: fix confusing help text about painter and librfxcodec
painter and librfxcodec are enabled by default. --disable-* options
disables them.

Before:
  --disable-painter       Use included painter library (default: yes)
  --disable-rfxcodec      Use included librfxcodec library (default: yes)

After:
  --disable-painter       Do not use included painter library (default: no)
  --disable-rfxcodec      Do not use included librfxcodec library (default:
                          no)
8 years ago
Koichiro IWAO 3c3c362946 ignore *.so (pulseaudio modules) 8 years ago
Koichiro IWAO e1d11a74da pulse: respect XRDP_SOCKET_PATH environment variable 8 years ago
Koichiro IWAO 1acef2567c sesman: pass xrdp socket path to user session
via environment variable.
8 years ago
Koichiro IWAO c7f8e360fd common: separate sockets macros into basename and fullpath
since sometimes socket directory is obtained from environment variable.
8 years ago
Jay Sorg 2c96908ea5 common: if SSL_shutdown fails, only call one more time 8 years ago
Jay Sorg 75fd3fcf89 common: ssl_tls_write / read return 0 on socket close 8 years ago
Fuminobu TAKEYAMA 1f27a4d850 startwm.sh: do not call pseudo shell code for /etc/X11/xdm/Xsession
Since /etc/X11/xdm/Xsession calls user's login shell, startwm.sh
should not execute the pseudo code; It causes to execute
~/.profile twice.
8 years ago
MichaelSweden 5c668dc420 Removed error message while falling back to IPv4 (issue #714) 8 years ago
MichaelSweden 106ae2cd43 Fix to handle OS disabled IPv6, issue #714.
- Changes made only in the os_calls.c file.
- Exported functions changed: g_tcp_bind g_tcp_bind_address g_tcp_connect
- Support three network configurations:
  1) Normal network, with IPv6
  2) Partly disabled IPv6 via sysctl.conf
  3) Total disabled IPv6 via grub
8 years ago
Koichiro IWAO 10fe699466 pulse: define default socket directory in Makefile 8 years ago
Koichiro IWAO 06ce0d7ee3 sesman: LOGNAME should be set to username
which is used to store login name. The login name shall be the string
that would be returned by the getlogin() function [1]. Some applications
only refers LOGNAME environment variable and don't fallback to other
variables such as USER.

Fixes #725.  Reported by @seidler2547.

[1] The Single UNIX Specification, Issue 7
8 years ago
speidy 7a7445fefd update submodules to their release tag head commit 8 years ago
speidy d7882d5041 Bump version number to v0.9.2 8 years ago
speidy 5bae117fec update NEWS file for v0.9.2 release 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 a7ec7237c4 Remove readme.txt, it has been replaced by README.md 8 years ago
speidy 1c70e4915f xrdp_orders_rail: fix resulting unicode length 8 years ago
speidy 22f0b05b03 libxrdp: window update, simplify length checks 8 years ago
speidy 954b68314d xrdp_orders_rail: fix g_mbstowcs error handling 8 years ago
speidy dfd639a3a9 RAIL: use fixed size length for window texts 8 years ago
Jay Sorg fdb6195bbc rail, text length checks 8 years ago
Jay Sorg 3c95a2aef2 rail, text length checks 8 years ago
Koichiro IWAO 8220afceab pulse: refer correct path to file_loc.h 8 years ago
Koichiro IWAO a20d88335f pulse: use correct macro for audio in/out sockets 8 years ago
speidy 2f382d2a16 libxrdp: print connected client name to log 8 years ago
speidy 9d578d9c5f libxrdp: fix misleading variable name 8 years ago
speidy b905967ba6 libxrdp: improve unicode_in 8 years ago
Pavel Roskin 95506a169f Log socket fd in g_sck_accept(), fix AF_UNIX logging 8 years ago
Jay Sorg 4b8a33e087 sesman: move auth/pam calls to main process 8 years ago
Pavel Roskin 43899b7e0c Allocate space for tls_ciphers dynamically 8 years ago
Pavel Roskin b0c2f18521 xrdp-chansrv: default to INFO log level rather than ERROR 8 years ago
Jay Sorg 05c599666d sesman: remove sessvc, one less process to manage 8 years ago
Pavel Roskin 5c8f050c1a X11rdp: respect XRDP_SOCKET_PATH environment variable 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
Pavel Roskin fc2572f60b Remove chansrv_cleanup(), it doesn't do anything useful
xrdp_chansrv_%8.8x_main_term and xrdp_chansrv_%8.8x_thread_done are both
wait objects, not sockets. They are created and cleaned up in chansrv.c

Wait objects are pairs of file descriptors on POSIX. They are closed
automatically when the process exits.

On Windows, wait objects are handles that are closed by CloseHandle().
Those handles should also be closed on the process exit.

In any case, there is no way for a parent process to clean up file
handles of the child process.
8 years ago
Koichiro IWAO a2d9272bc9 Propel xorgxrdp as default backend, give xorgxrdp the first place 8 years ago
speidy cfdbc2b4db chansrv: dvc, check channel exists on get/remove api struct 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
Pavel Roskin 9cdcb38d87 Fix memory leak in tls_ciphers parsing 8 years ago
Koichiro IWAO 08ba9ed4a8 Remove useless comment, no logic change
Now client addr and port are properly logged.
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