Commit Graph

4866 Commits

Author SHA1 Message Date
Koichiro Iwao 5fb59a7c38 Set different frame capture interval for H.264 and RFX
and pass them to xorgxrdp.

(cherry picked from commit c55694c51b570d84ad63bfb5dc7bdec75fee57da)
2024-11-18 23:19:35 +09:00
matt335672 b40ace381c Merge pull request #3312 from matt335672/cppcheck_add_have_boost
Re-introduce -DHAVE_BOOST to cppcheck builds
2024-11-15 14:41:13 +00:00
matt335672 01c262abdd Re-introduce -DHAVE_BOOST to cppcheck builds
A regression introduced in cppcheck 2.15.0 has been fixed in 2.16.0
2024-11-15 12:07:10 +00:00
matt335672 595bda604c Merge pull request #3291 from matt335672/update_cppcheck_ver
Update cppcheck version to 2.16.0
2024-11-14 10:22:14 +00:00
matt335672 9c0a0a8c16 Merge pull request #3294 from matt335672/rework_video_size_warning
Clarify size limit for uploaded videos
2024-11-04 11:54:00 +00:00
matt335672 e58796d69b Clarify size limit for uploaded videos 2024-11-04 11:26:43 +00:00
matt335672 1e3acce73e cppcheck 2.15.0 -> 2.16.0 2024-10-28 14:17:37 +00:00
matt335672 a958e37e20 Remove calls to SSL_CTX_set_ecdh_auto()
SSL_CTX_set_ecdh_auto() was introduced for  OpenSSL 1.0.2. It
has no effect for OpenSSL 1.1.0 and later. For versions before
1.0.2 and after (and including 1.1.0) it should not be called.

The macro was erroneously being called twice for OpenSSL 3.0.0 and
later - this has also been remedied
2024-10-28 14:15:38 +00:00
matt335672 514c62c7c1 Merge pull request #3275 from matt335672/move_to_fuse3
Move to fuse3
2024-10-23 10:12:35 +01:00
matt335672 b31862462a Merge pull request #3281 from matt335672/no_videos
Ask for no videos on the bug form
2024-10-23 09:51:01 +01:00
matt335672 6a54c21998 Merge pull request #3243 from matt335672/chansrv_connect_to_sesman
Fix v0.10.x regressions in standalone chansrv
2024-10-22 12:40:59 +01:00
matt335672 d17d12d078 Add optional UID to DISPLAY() in chansrvport
The code to determine the socket address of chansrv when using
a manually started xrdp-chansrv may need some help determining
the UID of the session.

This commit allows a UID to be optionally specified in the
DISPLAY() function, if the code is unable to determine the
UID automatically from the connection parameters.

If a manual chansrvport is entered, xrdp now logs what it is
connecting to, to assist in debugging.
2024-10-22 12:21:25 +01:00
matt335672 c46eece00f Add support for creating sockdir to chansrv
Chansrv now checks for the user sockdir being present. If it
isn't, it connects to chansrv and requests it be created.

This also needs the sesman port to be added to the chansrv
config struct.
2024-10-22 12:21:25 +01:00
matt335672 661885f71d Add support for SCP create_sockdir message to sesman 2024-10-22 12:21:25 +01:00
matt335672 c0ccb56908 Add calls to SCP to request sockdir creation
THe SCP interface is modified so that a program can connect to
sesman and ask for the sockdir to be created for the currently
authenticated user
2024-10-22 12:21:25 +01:00
matt335672 4d80cf6d77 Move SCP synch calls from sesman tools to library
The sesman tools have some private functions to make syncronous calls
to sesman over SCP. This commit moves these calls to a new module
scp_sync in libipm so that they can be utilised by other parts of
xrdp (i.e. chansrv)
2024-10-22 12:21:25 +01:00
matt335672 dd1dc7c630 Use proper define for sesman listen_port size
The size of the listen_port for sesman cannot exceed
XRDP_SOCKETS_MAXPATH. We should use this value rather than
an arbitrary value of 256.
2024-10-22 12:21:25 +01:00
matt335672 ab56c2b52a Fix minor comment errors in libipm/scp.h 2024-10-22 12:21:25 +01:00
matt335672 2c19a20d85 Bug report 'no videos' text updated after comments 2024-10-22 12:01:51 +01:00
matt335672 c734be35d6 Ask for no videos on the bug form 2024-10-22 11:48:55 +01:00
matt335672 b5772cef91 Only use fuse_set_log_func() for libfuse >= 3.7 2024-10-21 16:55:24 +01:00
matt335672 28ad8c6ee1 Merge pull request #3261 from matt335672/skip_channeljoin
Improve channel join request processing
2024-10-21 16:00:04 +01:00
matt335672 edd4276633 Migrate chansrv to FUSE3 interface 2024-10-15 11:44:16 +01:00
matt335672 dea4b0096c Update xrdp CI build dependencies for FUSE3 2024-10-14 20:39:41 +01:00
matt335672 b9703af7ee Pick up correct includes/libraries for FUSE3 2024-10-14 16:44:09 +01:00
matt335672 493e01eb81 Merge pull request #3263 from matt335672/remove_xrdp_sec_in_mcs_data
Remove xrdp_sec_in_mcs_data() function
2024-10-14 09:34:08 +01:00
matt335672 10cf8f2d1c Remove xrdp_sec_in_mcs_data() function
THe function xrdp_sec_in_mcs_data() parses data within the
TS_UD_CS_CORE struct which could just as easily be parsed
when xrdp_sec_process_mcs_data_CS_CORE() is called.

Currently the contents of the MSC Connect Initial PDU are stored within
the client_mcs_data member of the xrdp_sec struct. This stream is parsed
once by xrdp_sec_process_mcs_data() and then separately by
xrdp_sec_in_mcs_data(). There is no reason not to perform the parse in
a single pass through the stream.

This commit folds the functionality in xrdp_sec_in_mcs_data() into
xrdp_sec_process_mcs_data_CS_CORE() and removes xrdp_sec_in_mcs_data()
2024-09-30 14:59:43 +01:00
matt335672 f4d73054a9 Use client earlyCapabilities to determine channel join count
We always now indicate we support skipping channel joins. If the client
indicates this too, expect no channel join requests from the client.

If we do get some, process them anyway.
2024-09-29 14:51:38 +01:00
matt335672 fcc82c3499 Announce server RNS_UD_SC_SKIP_CHANNELJOIN_SUPPORTED 2024-09-29 14:20:48 +01:00
matt335672 7eb586d1ae Combine code paths for handling channel joins
The existing code contains separate TLS and non-TLS code paths for
hadling channel join PDUs. This was introduced in
8fdc1ba216 and was based on a
misunderstanding of where in the connection sequence the TLS client hello
is processed (if a TLS connection is negotiated). The assumption was
the TLS client hello is received after the channel join PDUs. However,
it is actually received immediately after the X.224 Connection Confirm
PDU some time before channel join requests are processed.

Consequently, there is no reason not to adopt a single code path for
handling channel joins.
2024-09-29 14:11:02 +01:00
matt335672 65993312b7 Merge pull request #3255 from bobcarroll/fuse-direct-io
add option to enable FUSE direct i/o on file open
2024-09-25 10:06:46 +01:00
Bob Carroll 89a4a1b8f7 update man page and fix code style issue 2024-09-24 18:03:40 -07:00
Bob Carroll 66e5eebb1c add option to enable FUSE direct i/o on file open 2024-09-20 20:23:47 -07:00
matt335672 d4c30d5fc9 Merge pull request #3239 from matt335672/support_non_resizeable_vnc
Regression: Support fixed-size VNC sessions
2024-09-11 09:50:55 +01:00
matt335672 984b71449e Regression: Support fixed-size VNC sessions
This is a regression introduced in v0.10.x

This version introduced a state machine to handle resizes requested
by the client and the server. Most configurations support resizeable
sessions, but one that doesn't is xrdp connecting to x11vnc on (e.g.) a
Raspberry PI.

If the session size requested by a client is differnt from the x11vnc
size, an error is logged and the state machine fails to complete,
resulting in a black screen.

This PR handles the problem by queueing a resize to the supported
server size and then continuing with the state machine. It's not an
optimal solution, but involves the least change to v0.10.x code.
2024-09-09 15:07:31 +01:00
matt335672 ea69f9a26a Merge pull request #3234 from matt335672/update_sesman_policy
Minor update to policy description in sesman.ini
2024-09-05 14:52:09 +01:00
matt335672 7efcaaf027 Minor update to policy description in sesman.ini 2024-09-05 11:24:17 +01:00
matt335672 37d2c2d41b Merge pull request #3037 from matt335672/update_cppcheck
Update cppcheck and astyle versions
2024-09-04 17:20:55 +01:00
matt335672 82c95faaa9 Allow a cppcheck check_level to be specified
Version 2.14.0 of cppcheck generates errors relating to the
check level (e.g.):-

    common/base64.c:0:0: information: Limiting analysis of branches. Use --check-level=exhaustive to analyze all branches. [normalCheckLevelMaxBranches]

This does not happen with the same sources (commit
f781962a55) under 2.13.0.

This PR disables the warnings above for 2.14.0, but also allows a '-f'
argument to be passed in to request an exhaustive test. This could be used
(for example) before a major release. An exhaustive test takes a *lot*
longer. The first run with a git runner was around an hour.

The --check-level=flag was only added for 2.11.0, and so this now needs
a version check.
2024-09-02 15:36:50 +01:00
matt335672 eab3cbb1d5 Bump CI tools versions
- cppcheck 2.13.0 -> 2.15.0
- astyle 3.4.12 -> 3.4.14

Release notes
- https://github.com/danmar/cppcheck/releases/tag/2.14.0
- https://github.com/danmar/cppcheck/releases/tag/2.14.1
- https://github.com/danmar/cppcheck/releases/tag/2.14.2
- https://github.com/danmar/cppcheck/releases/tag/2.15.0
- https://astyle.sourceforge.net/notes.html

Later versions of astyle up to 3.5.1 have (currently) a problem with
align-pointer=name which confuses multiplication with a
pointer-dereference. See https://sourceforge.net/p/astyle/bugs/572/
2024-09-02 15:36:50 +01:00
matt335672 af22422260 Make scripts/install_cppcheck.sh shellcheck-compatible 2024-09-02 15:36:50 +01:00
matt335672 bc3f0e63f6 Update scripts/install_cppcheck.sh for v2.15.0
Remove the setting of CPPFLAGS for cppcheck v2.15.0 as this
upsets the setting of FILESDIR
2024-09-02 15:27:34 +01:00
metalefty 27f0febb04 Merge pull request #3218 from metalefty/gfx_codec_order
GFX: add config which to prefer H264 vs RFX
2024-08-29 22:51:57 +09:00
matt335672 5351511272 Further changes to selectable H.264 support
- Fix CI errors
- tconfig_load_gfx() removes H.264 from the supported codec list
  if significant errors are found loading the H.264 configuration
- tconfig_load_gfx() always produces a usable config, even if the
  specified file can't be loaded
2024-08-29 21:02:36 +09:00
metalefty abfa633a35 Merge pull request #3059 from chipitsine/coverity
CI: scheduled coverity scan
2024-08-29 18:14:45 +09:00
Ilia Shipitsin a00374d1a4 CI: scheduled coverity scan 2024-08-29 10:28:08 +02:00
matt335672 1ac216da1d Rework codec order in tconfig
Replaced codec idx values with a list of codecs from the
config file.

Added some logging for debugging
2024-08-28 21:18:05 +09:00
metalefty e251512ba4 Merge pull request #3223 from metalefty/x264-ci
x264: add CI test
2024-08-27 13:34:23 +09:00
Koichiro Iwao 2c2585cc90 GFX: use the preferred codec preferred in the config (H264 or RFX) 2024-08-27 11:46:52 +09:00
Koichiro Iwao 7238f8f99d Introduce XRDP_H264 macro to indicate any H264 encoder enabled 2024-08-27 11:46:52 +09:00