Commit Graph

4635 Commits

Author SHA1 Message Date
Schen
84901958a5 Fix a systemd dependency ("network-online.target")
- Fix a problem that the xrdp.service fail to auto-start when instructed to listen on a specific interface
- By changing the "network.target" systemd dependency to "network-online.target"
- The "network-online.target", in short, means at least one network interface has finished IP level setup.
- The previously used "network.target" is vague and does not provide such guarantee (ref: man systemd.special(7)).
- Which often cause "xrdp.service" fail to auto-start when the service is configured to listen on a specific interface (e.g. in xrdp.ini, "port=tcp://192.168.0.1:3389"). Because the interface may have not finish setting up its IP, when "xrdp.service" starts.

(cherry picked from commit 21e11de157)
2024-05-23 11:41:59 +01:00
matt335672
dcaa31ef16 chansrv FUSE fixes
1) [Regression] If the specified mountpoint is not immediately below an
   existing directory, the directory is not created.
2) The message to ask the user to unmount an existing mounted directory
   has been moved to the right place.

(cherry picked from commit e0a1339b34)
2024-05-22 09:55:01 +01:00
metalefty
8c614cdf9c
Merge pull request #3068 from metalefty/v0.10-update-news
Turn off cache explicitly when fetching NEWS from wiki
2024-05-10 17:58:22 +09:00
Koichiro Iwao
dad7766afc Turn off cache explicitly when fetching NEWS from wiki 2024-05-10 17:36:32 +09:00
metalefty
cc35ac63c9
Merge pull request #3034 from metalefty/v0.10-release
Release v0.10.0-beta.3
2024-04-19 23:43:44 +09:00
Koichiro Iwao
7ea81186c6 Add script to update NEWS from wiki 2024-04-19 11:57:51 +09:00
Koichiro Iwao
3329f60318 Bump version to v0.10.0-beta.3 2024-04-19 11:57:51 +09:00
Koichiro Iwao
492f8b5cf7 Update NEWS
It is still a beta release at the moment so release date is not
determined.
2024-04-19 11:57:47 +09:00
matt335672
0a7e556d7d
Merge pull request #3032 from matt335672/v0_10_update_rfxcodec
[V0.10] Merge updates from librfxcodec
2024-04-18 16:35:34 +01:00
matt335672
cb50f18da9 Merge updates from librfxcodec
1) add SSE2 simd for dwt_shift_rem and diff_count

   make dwt_shift_rem easier to read
   move common rlgr defines to common file
   move common dwt defines to common file

2) Fix 'make distcheck'

3) Fix compiler warnings on tests
2024-04-18 15:47:40 +01:00
matt335672
b45630e879
Merge pull request #3017 from matt335672/cherry_picks_to_v0_10
Cherry picks to v0 10
2024-04-15 20:37:47 +01:00
Jay Sorg
dfa52c1183 format change
(cherry picked from commit 898e1ca135)
2024-04-15 19:26:48 +01:00
Jay Sorg
7030a74ab9 gfx send multiple wire to surface messages when compressed data is larger than max_compressed_bytes
(cherry picked from commit 95bfb349a8)
2024-04-15 19:26:35 +01:00
matt335672
f688e680c9 Simplify allowed system calls for xrdp
- The command 'systemd-analyze syscall-filter' shows that the group
  @system-service added to the xrdp-service SystemCallFilter
  actually includes all of the other listed groups and individual
  services.  Consequently this line can be simplified to just specify
  @system-service.

- (reversion) The SystemCallErrorNumber setting in xrdp.service has been
  removed so that unauthorized system calls cause an immediate process exit.

(cherry picked from commit e0e9177f5e)
2024-04-12 11:16:37 +01:00
matt335672
252243ab6c Fix permissions on user socket directory
The user socket directory needs to be SGID so that they inherit
the group ownnership. Then xrdp can write to them.

(cherry picked from commit 200e4d84f4)
2024-03-27 09:50:27 +00:00
Jay Sorg
9dbe504878 remove per frame log entry when client frame acks is off
(cherry picked from commit 651fcf85b7)
2024-03-27 09:49:57 +00:00
matt335672
02dc01d31e Remove hard-coded version from scripts/run_astyle.sh
This script now works the same way as cppcheck. The version to
be used is specified once in the github CI action

(cherry picked from commit b9fd19e6b5)
2024-03-27 09:49:24 +00:00
matt335672
2ee512ba52 Remove unnecessary '-lrt' from common lib link
The '-lrt' added to the Makefile for the common library appears
to be unnecessary.

- On modern Linuxes, this library has been merged with libc, and the
  supplied library is empty.
- On older ones (e.g. Devuan 4), the library contains routines we
  do not use in xrdp (although we use 'shm_open()' in xorgxrdp).
- On FreeBSD 14 the library contains only mq_*  and timer_* routines
  which, again, are not required.

(cherry picked from commit e821eddb62)
2024-03-27 09:48:53 +00:00
matt335672
40b0eaf455 Improve performance on long fat networks (LFNs)
On Linux, the TCP send buffer size is increased to 32768 if it is less
that this (which it normally is). This however has the effect of disabling
dynamic buffer sizing, leading to a maximum available bandwidth of

max_bandwidth = 262144 (bits) / round_trip_time (secs)

This is not noticeable on a LAN with an RTT of around 0.5ms, but
very noticeable on a WAN with an RTT of 0.25s.

Comments in the config file and manpage in this area are improved, as
is the logging if the parameters are actually set.

(cherry picked from commit b23d6f89d5)
2024-03-27 09:48:16 +00:00
metalefty
fc34c2b4c8
Merge pull request #3007 from metalefty/v0.10-release
Bump version to v0.10.0-beta.2
2024-03-20 23:13:14 +09:00
Koichiro Iwao
a48ea06e9b Bump version to v0.10.0-beta.2 2024-03-20 23:12:25 +09:00
metalefty
04da549942
Merge pull request #3003 from matt335672/v0_10_detect_missing_drdynvc
[V0.10] detect missing drdynvc
2024-03-17 22:50:31 +09:00
matt335672
68f6113430 Load channel config in xrdp_wm_create()
This commit moves the '[Channels]' parsing code for xrdp.ini
from xrdp_wm_init() to an earlier location in xrdp_wm_create().

libxrdp can now check that drdynvc is not disabled before starting it,
and xrdp_wm can disable GFX if virtual channels are not available.
2024-03-15 10:31:58 +00:00
matt335672
84fd2a510b Start the drdynvc channel within xrdp_wm
The responsibility for starting the drdynvc channel is moved out of
libxrdp into the application. This will make it easier to allow the
application to check the channel is enabled before starting it.
2024-03-15 10:31:46 +00:00
metalefty
01d3dedfdf
Merge pull request #2987 from matt335672/fix_freebsd_core
Don't generate a corefile when generating SIGSEGV
2024-03-14 09:12:00 +09:00
matt335672
8e08066bc8 Don't generate a corefile when generating SIGSEGV
One of the tests uses a child process which generates SIGSEGV.
On FreeBSD this generates a corefile by default which breaks
the 'make distcheck' process.
2024-03-09 17:01:40 +00:00
metalefty
ac67abe9b6
Merge pull request #2985 from metalefty/v0.10-release
Release v0.10.0-beta.1
2024-03-10 00:00:14 +09:00
Koichiro Iwao
02c265c5a5 Bump version to v0.10.0-beta.1 2024-03-09 23:53:51 +09:00
Koichiro Iwao
fb2a863d12 Update NEWS
It is still draft because stil a beta release.
2024-03-09 23:53:25 +09:00
metalefty
19b4905018
Merge pull request #2983 from metalefty/v0.10-release-tarball
[v0.10] Add script to make release tarball
2024-03-08 23:26:49 +09:00
metalefty
c5e6c4e117
Merge pull request #2977 from metalefty/v0.10-cherry-pick
[v0.10] cherry picks
2024-03-08 23:22:16 +09:00
Koichiro Iwao
9985737e9b Add script to make release tarball 2024-03-08 22:23:13 +09:00
rowlap
790834a947 Remove duplicate DEBUG output
allow_multimon and new_cursors are printed twice

(cherry picked from commit bf81557cdc)
2024-03-06 17:20:47 +09:00
metalefty
7700fcb1dc
Merge pull request #2957 from metalefty/v0.10-cherry-pick
[v0.10] cherry picks
2024-03-04 09:05:39 +09:00
matt335672
d6cf81a4da Increase GFX output buffer size
Size the GFX output buffer pessimistically based on the largest monitor
in the configuration.

(cherry picked from commit 90e4aca26a)
2024-03-03 10:04:28 +09:00
Koichiro Iwao
ab2430ac76 Suppress some logs when no errors
This outputs per-frame logs when using VNC backend and on login screen.

(cherry picked from commit 0b4150ff48)
2024-03-01 00:06:14 +09:00
rowlap
72d30061b0 Remove tcutils channel from xrdp.ini
According to #1943 tcutils was removed, so update the channel section to match.

(cherry picked from commit 2a0c2a612f)
2024-02-27 22:32:41 +09:00
Derek Schrock
a7115cced2 Fall back to IPv4 if IPv6 capable but don't have an IPv6 address set
When xrdp is built with IPv6 support it will only fall back to IPv4 if
IPv6 is not supported (EAFNOSUPPORT).  However, if the system is IPv6
capable but doesn't have an IPv6 address set (at least inside a FreeBSD
jail) EPROTONOSUPPORT is returned from socket().

(cherry picked from commit 5afbca4954)
2024-02-26 20:57:01 +09:00
matt335672
83f9d4ec17 GFX: Fix disconnect on resize of busy windows
When a resize is underway on a busy X server, it is possible for a
queued EGFX cmd (order #62) to be processed after the decoder has been
deleted. This causes a client disconnect with no useful error message.

(cherry picked from commit 3430b8898c)
2024-02-24 00:52:00 +09:00
matt335672
d0edde791e Migrate github actions to Node 20
Github actions are transitioning to Node 20 ans Node 16 is EOL.

https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20
(cherry picked from commit 4ba026be38)
2024-02-22 22:51:49 +09:00
Koichiro Iwao
99cf0e19f7 Bump copyright year and make easier to bump
(cherry picked from commit ae249c6755)
2024-02-22 22:51:37 +09:00
Koichiro Iwao
9b33d299d0 GFX: Relegate some logs to LOG_LEVEL_DEBUG
(cherry picked from commit 7e305f9e24)
2024-02-22 22:51:14 +09:00
metalefty
c3cb8554b6
Merge pull request #2951 from metalefty/v0.10-monitor-hotplug
[v0.10] Fixes some problems with monitor hotplug
2024-02-21 00:41:30 +09:00
metalefty
12ff5d4814
Merge pull request #2952 from metalefty/v0.10-just-log-image-remotefx
[v0.10] Just log Image RemoteFX codec
2024-02-21 00:38:00 +09:00
Koichiro Iwao
8a1e6f74f7 Just log Image RemoteFX codec 2024-02-21 00:16:56 +09:00
matt335672
d769b402bc GFX: Prevent MM screen being written to the client
In GFX mode, if we're using xorgxrdp, frame updates are send directly
from the client, bypassing the screen buffer in xrdp_mm.

This commit only allows the xrdp_mm screen buffer to be invalidated
if the painter has drawn into it since the module was loaded. This
prevents the unused (and invalid) frame buffer being pushed to the client
in GFX mode with xorgxrdp.
2024-02-21 00:14:26 +09:00
matt335672
ab698c3d58 Clear memory allocated to resized bitmaps
This prevents valgrind errors when resizing the screen to
a larger size on GFX systems.
2024-02-21 00:14:26 +09:00
matt335672
355a71fe6d Prevent EGFX drawing while channel is down
Clear egfx_up as soon as the channel starts to close so that
xrdp_mm_draw_dirty() doesn't send data to a closed channel.
2024-02-21 00:14:26 +09:00
matt335672
ee37eb2803 EGFX: Ignore incoming messages after close sent 2024-02-21 00:14:26 +09:00
matt335672
74c2f7c4a7 Rework xrdp to support new module resize interface
This commit compiles.
2024-02-21 00:14:26 +09:00