Commit Graph

1548 Commits

Author SHA1 Message Date
akallabeth
749023bacb
Merge pull request #10555 from akallabeth/cast-fix-tls
[crypto,tls] simplify function pointer cast
2024-09-05 17:18:27 +02:00
akallabeth
e3f94e6622 nodiscard 2024-09-04 22:17:35 +02:00
akallabeth
9ae37b094f fix implicit widening of multiplication result 2024-09-04 22:01:09 +02:00
akallabeth
6a1c3b4545
[function pointer] use macro for GetProcAddress
Cast all results of GetProcAddress with WINPR_FUNC_PTR_CAST
2024-09-04 21:31:48 +02:00
akallabeth
245afb706c
[function pointers] unify casts with macro 2024-09-04 20:06:45 +02:00
akallabeth
5e123735fa
[warnings] fixed sign-compare 2024-09-04 10:14:05 +02:00
akallabeth
9a027833b9
[warnings] fix misplaced widening cast 2024-09-03 17:40:55 +02:00
akallabeth
5a4a1a40ad
fix declaration and implementation parameter names 2024-09-03 12:24:53 +02:00
akallabeth
190929c018
[warnings] fix function pointer casts 2024-08-30 15:40:01 +02:00
akallabeth
500495dc00
[warnings] fix SDL3 related issues 2024-08-29 16:03:51 +02:00
akallabeth
24cd7828c9
[warnings] fix clang-tidy issues in server 2024-08-29 15:20:42 +02:00
akallabeth
9c9d74e920
[warnings] fix redundant casts 2024-08-29 12:03:09 +02:00
akallabeth
15456e1ee1
[warnings] fix implicit widening conversion 2024-08-29 10:47:20 +02:00
akallabeth
1d33095500
[warnings] fix cert-err33-c
Fix unused return values, cast to void if on purpose
2024-08-29 10:19:27 +02:00
akallabeth
56d660f258
[cmake] mark dependency includes SYSTEM
Mark all dependency include paths SYSTEM so warnings from system headers
are excluded from ci warning statistics
2024-08-26 11:10:49 +02:00
Armin Novak
1f83198bb1
[server,shadow] send BitmapUpdate with single rectangle
See https://github.com/FreeRDP/FreeRDP/issues/10413

Microsoft ditched support for RFX and multiple rectangles in BitmapUpdate for
windows 11 24H2.

So send all updates only with a single rectangle.
2024-08-08 08:37:51 +02:00
akallabeth
3820858c63
[server,proxy] discard closed dyn channel data
If a dynamic channel does no longer exist or has been closed discard the
channel data received from client
2024-07-25 12:02:51 +02:00
akallabeth
eaf0bd8a69
[server,proxy] automatic intercept for drdynvc
* By default no special treatment for drdynvc
* If any of the configuration options requires drdynvc intercept do that
  independently of the intercept/passthrough lists
2024-07-25 11:19:20 +02:00
akallabeth
784f9eab24
[server,proxy] only intercept drdynvc if requested 2024-07-25 11:19:17 +02:00
Armin Novak
9b6e39a880
[server,sample] fix NSCodec and SurfaceBitsCommand 2024-07-24 21:54:49 +02:00
Armin Novak
62eba8dacb
[server,shadow] fix NSCoded and SurfaceBitsCommand 2024-07-24 21:54:46 +02:00
Armin Novak
d757dfee24
[server,shadow] Fix RFX SurfaceBitsCommands
* Use RLGR mode from settings (might be overwritten by client)
* Only send RFX SurfaceBits if SURFCMDS_STREAM_SURFACE_BITS was set in
  capabilities
2024-07-24 21:54:36 +02:00
Armin Novak
557844277f
[server,sample] use RFX RLGR from settings 2024-07-24 21:54:33 +02:00
Armin Novak
dbfa447f67
[server,shadow] allow RFX and NSC to be disabled 2024-07-24 09:30:52 +02:00
akallabeth
23295dc386
[server,shadow] add option to disable GFX 2024-07-23 16:38:30 +02:00
Armin Novak
68a081f538
[server,shadow] fix XShm library name 2024-07-03 15:52:34 +02:00
akallabeth
23c8f36358
Merge pull request #10315 from akallabeth/shadow_speedup
[server,shadow] optimize image comparison
2024-07-02 08:23:28 +02:00
akallabeth
00e15e736c
[server,shadow] optimize image comparison
Implement per format comparison functions
2024-07-02 08:06:18 +02:00
akallabeth
15e49da638
Merge pull request #10322 from akallabeth/proxy-del-config
[server,proxy] remove sample config.ini
2024-07-01 17:33:01 +02:00
akallabeth
8f4d105f50
[server,proxy] remove unused section from config
Remote GFXSettings and Clipboard section as it was no longer used. This
is a non breaking change, existing entries will be ignored (just like up
until now) but the generated config now no longer contains it.
2024-07-01 11:40:10 +02:00
akallabeth
605395028c
[server,proxy] remove sample config.ini
the sample can be dynamically generated by proxy binary, do not leave an
(outdated) config example in the repo.
2024-07-01 09:58:45 +02:00
Armin Novak
1806daa375
[channel,server] fix unguarded use of functions
If functions of channel_<name>_server are used guard them so the code
compiles if the channel is not compiled in.
2024-06-12 09:58:08 +02:00
akallabeth
7aa72a7507
[core,settings] unify configuration paths
* Add new function freerdp_settings_get_config_path to get current
  user configuration directory
* Add CMake option WITH_FULL_CONFIG_PATH (default OFF): If defined, use
  <appdata>/Vendor/Product as config directory, otherwise use
  <appdata>/vendor (lowercase, only if vendor equal to product)
2024-06-06 11:31:22 +02:00
Armin Novak
2c4604ed1c
[proxy,modules] replace global constructor 2024-06-05 15:57:46 +02:00
akallabeth
1b3f3a0408
[codec,color] expose freerdp_image_copy (no)overlap
expose functions for overlapping and non overlapping images to use
directly
2024-05-23 14:48:36 +02:00
akallabeth
a403b3bd1c [server,proxy] add missing WINPR_NORETURN 2024-05-08 14:53:39 +02:00
Konstantin Kharlamov
4900b15391 shadow: mention in "help" output that auth defaults to "required"
It's marked as "off" currently but it is "on" by default.
2024-04-19 08:36:05 +02:00
Armin Novak
f98e459833 [coverity] 1543936 Missing unlock 2024-04-15 12:40:01 +02:00
Armin Novak
ffa8029883 [coverity] 1543186 Data race condition 2024-04-15 11:30:31 +02:00
Armin Novak
09060a9a49 [coverity] 1543072 Data race condition 2024-04-15 11:30:31 +02:00
akallabeth
1197384315 [coverity] 1543218 Resource leak 2024-04-11 12:04:07 +02:00
akallabeth
b4fb4161d9 [coverity] 1088726 Resource leak 2024-04-11 12:04:07 +02:00
akallabeth
c831717cb0 [coverity] 1543129 Uninitialized scalar variable 2024-04-11 12:04:07 +02:00
akallabeth
1473931ecd [coverity] 1543220 Double free 2024-04-11 12:04:07 +02:00
akallabeth
678ff144ab [cmake] unify windows resource file generation
* use a macro to add resource files for executables and shared libraries
* use that macro to declare targets
* use that macro to set library/binary versioning
* use that macro to set target output name
* use a macro to create manpages and names
2024-03-20 11:17:18 +01:00
akallabeth
bdd866c3d3 [server,shadow] cast incompatible pointer
the context pointer to WTSOpenServerA is intentional, cast to LPSTR to
match definition
2024-03-18 13:27:32 +01:00
Kai Pastor
552428ca53 Fix wfreerdp-server-cli output and pdb name 2024-03-12 10:12:51 +01:00
akallabeth
938e1ca2f1 [server,shadow] initialize subsystem->format before use 2024-03-05 10:03:23 +01:00
akallabeth
9268cee35e [server,shadow] shadow_subsystem_pointer_convert_alpha_pointer_data
the function uses implicit color formats. Replace this with the function
shadow_subsystem_pointer_convert_alpha_pointer_data_to_format with
explicit source color format.
Deprecate the old function.
2024-03-05 10:03:23 +01:00
akallabeth
fe149f3f57 [server,shadow] deprecate shadow_capture_compare
the function uses implicit color format layout, so move to a version
with explicit format layout.
2024-03-05 10:03:23 +01:00
akallabeth
730d67c7e3 [server,shadow] add WINPR_RESTRICT to comparison
shadow_capture_compare_with_format and shadow_capture_compare always
operate on distinct memory areas. Allow better optimization of
operations with the WINPR_RESTRICT keyword
2024-03-05 10:03:23 +01:00
akallabeth
e4a0746cdc [server,shadow] detect changes no alpha
add shadow_capture_compare_with_format no alpha comparison option. If
not both, source and destination have alpha, just ignore it.
2024-03-05 10:03:23 +01:00
nin
dc4bd6609b [server,shadow] add image format support for capture
when capturing bitmap data take the source image format into account on
copy and compare.
2024-03-05 10:03:23 +01:00
akallabeth
c61fc2a0fa [server,shadow] improve shadow help and startup checks
a SAM file is required for the shadow server to work if NLA is
activated. Better document that and abort startup if no file is
available.
2024-02-26 20:59:39 +01:00
akallabeth
67f1376b52 [server,win] fix undeclared identifier #9900 2024-02-26 10:26:58 +01:00
akallabeth
05e555feb7 fixed unused-variable warnings 2024-02-22 12:31:50 +01:00
akallabeth
43eae6029f [clang-tidy] fix various review warnings 2024-02-22 12:31:50 +01:00
akallabeth
d7ebec5a65 [tidy] move loop variable declaration to loop 2024-02-22 12:31:50 +01:00
akallabeth
0e44b2c674 [clang-tidy] clang-analyzer-unix.Malloc 2024-02-15 11:49:16 +01:00
akallabeth
81d2c1f057 [clang-tidy] clang-analyzer-core.NullDereference 2024-02-15 11:49:16 +01:00
akallabeth
f69e1fe697 [clang-tidy] readability-duplicate-include 2024-02-15 11:49:16 +01:00
akallabeth
0ba995655d [clang-tidy] cppcoreguidelines-init-variables 2024-02-15 11:49:16 +01:00
akallabeth
207def5c56 [clang-tidy] readability-isolate-declaration 2024-02-15 11:49:16 +01:00
akallabeth
b193f9ab59 [cmake] guard cmake_policy(CMP0091)
only set the policy to NEW if it is defined
2024-02-13 16:22:37 +01:00
akallabeth
bf72c307b0 [server,sample] add bounds checks
* test_peer_draw_icon should ignore requests if the resulting image is
  out of bounds of desktop size.
2024-02-12 17:01:16 +01:00
akallabeth
53d88c1c96 [server,sample] delay WTSVirtualChannelManagerCheckFileDescriptor
Only call WTSVirtualChannelManagerCheckFileDescriptor if there was a
event pending on WTSVirtualChannelManagerGetEventHandle
This ensures that the drdynvc channel is not opened before it is
initialized.
2024-02-12 14:06:51 +01:00
akallabeth
e8d1bc5f4b [server,sample] fix resource location
if binary versioning is enabled the installation path was wrong.
2024-02-08 09:47:56 +01:00
akallabeth
0cea2461c1 [server,sample] use wImage to load cursor icon
replace the custom PPM loader with the winpr_image* family of functions.
2024-02-07 13:14:02 +01:00
akallabeth
eb8b2828dc [server,sample] provide sample-icons formats
provide the cursor icon in different formats.
2024-02-07 13:14:02 +01:00
akallabeth
ba8cf8cf21 [build] fix Wmismatched-deallocator warnings
With custom malloc function attributes the fail path in the _New
functions produces warnings due to allocator mismatches. Silence them.
2024-02-05 08:16:55 +01:00
akallabeth
bb42d425ed [gcc,clang] add support for attribute(malloc)
Mark all malloc like functions and add their appropriate free function
to let the compiler complain on mismatches
2024-02-02 15:10:40 +01:00
akallabeth
4add7836fa [server,shadow] wait for rdpegfx channel ready
we need to wait until the capability messages are exchanged before
starting to issue gfx commands
2024-01-29 19:26:18 +01:00
Armin Novak
a4425d945c [server,proxy] drop capture plugin
the capture plugin was written for FreeRDP2 proxy, which used a
different approach that is no longer working with FreeRDP3.
Drop the module so that we don´t diffuse people into thinking that this
is working.
2024-01-18 11:20:29 +01:00
Armin Novak
b4587efad1 [proxy,modules] fix module load check 2024-01-17 11:31:13 +01:00
efferre79
5b731aca4d command line help should not be part of the log info 2024-01-11 09:12:57 +01:00
akallabeth
59ed125eed [server,proxy] add TlsSecLevel option to config
To support legacy targets add the TlsSecLevel configuration option that
is equivalent to the /tls:seclevel option of the client implementations.
This allows automatic configuration of OpenSSL legacy providers if they
are available.
2024-01-09 15:53:22 +01:00
akallabeth
f6a208f75e [cmake] generate relative pkgconfig path
generate the relative pkgconfig path from the actual install locations.
fixes #9718
2024-01-05 14:19:34 +01:00
Armin Novak
a7decba8c2 [cmake] unify common options 2023-12-22 16:21:30 +01:00
Armin Novak
7debd0f621 [cmake] set policy 0091
On windows we need to set the runtime linker settings extra
https://cmake.org/cmake/help/latest/policy/CMP0091.html
2023-12-22 15:37:56 +01:00
Armin Novak
175a3ca09a [cmake] do not append EXECUTABLE_SUFFIX to OUTPUT_NAME 2023-12-22 15:37:56 +01:00
Armin Novak
7d641a67b9 [doc,manpage] name manpages versioned
if WITH_BINARY_VERSIONING is activated also version the manpages to
match the binary names
2023-12-22 10:24:09 +01:00
Armin Novak
b1cb6b3efc [server,proxy] update manpage with config steps 2023-12-22 10:24:09 +01:00
Armin Novak
b04271ae2d [cmake] add executable versioning
optionally append API version to generated binaries
2023-12-21 18:56:51 +01:00
Armin Novak
7f25a7cebf [cmake] provide default project version
each subproject inherits the project version of the top level project
2023-12-21 18:56:51 +01:00
Armin Novak
07d7d35731 [server,proxy] add manpage 2023-12-20 09:21:31 +01:00
Armin Novak
a446c53ef3 [freerdp,proxy] add version command 2023-12-20 09:21:31 +01:00
Armin Novak
3735440166 [server,shadow] force relative mouse disabled
Since we do not implement the required callbacks ensure we do not send
the capability for it to connecting clients.
2023-12-19 21:26:46 +01:00
Joan Torres
2079455eec [proxy,modules] allow compiling with old c++ compiler
For dyn-channel-dump.

On C++17 there's the filesystem standard library.
Newer c++ compilers use it with <filesystem>.
However, older c++ compilers use it with <experimental/filesystem>.
2023-12-18 14:11:37 +01:00
Armin Novak
736658a2d1 [server,shadow] fix missing set NULL after free 2023-12-15 23:21:37 +01:00
Armin Novak
f791cf6308 [proxy,modules] explicitly build shared libraries
The proxy modules must always be shared libraries. To have the proper
system extension, use keyword SHARED instead of MOUDLE
2023-12-14 14:05:39 +01:00
Armin Novak
9e9ad3815d fix typos in various places 2023-12-12 19:36:54 +01:00
Martin Fleisz
5d40fb34e7 server: Fix compilation on Windows after recent settings changes 2023-11-28 14:45:19 +01:00
akallabeth
1b31852d32 [git] remove .gitignore
we do no longer allow in source builds, so remove all the .gitignore
files just hiding generated files
2023-11-28 12:14:55 +01:00
akallabeth
6b9245849c [warnings] type casts 2023-11-24 18:19:03 +01:00
Armin Novak
9449c8c3df [server,shadow] fix opaque settings build 2023-11-24 18:19:03 +01:00
akallabeth
6eb4ff6212 [server,proxy] fix pf_context_copy_settings
possible memory leaks in failure case fixed
2023-11-24 14:54:56 +01:00
Armin Novak
6e6559c41a [settings] fix type mismatch warnings 2023-11-24 14:54:56 +01:00
akallabeth
1f236ade7a [server] make settings opaque 2023-11-24 14:54:56 +01:00
David Fort
061148f856 [nla] initial server-side remote credential guard support
Adds support for server-side remote credential guard in NLA. When enabled that allows
the remote user to connect without shipping credentials in TSCred packets. Instead
it will send his TGT encoded with a TGS from the remote server. This way the server
is able to populate that TGT in a local credential cache without knowing the user's
password.

The patch only treats the NLA part and does not contain the associated RDPEAR channel
that allows to have the complete interaction to retrieve new access tokens.
2023-11-20 16:17:00 +01:00
Armin Novak
e0e72f9c28 [cmake] use CMAKE_MSVC_RUNTIME_LIBRARY
* Increase required CMake version to 3.15 (windows only)
* Use
  https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html#prop_tgt:MSVC_RUNTIME_LIBRARY
  to select windows runtime
2023-11-16 10:40:04 +01:00