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
Armin Novak
e622e26c70
[server,proxy] fix install location of proxy library
2023-11-02 11:30:55 +01:00
Armin Novak
c91a250623
[warnings] add WINPR_FORMAT_ARG
...
with WINPR_FORMAT_ARG format strings are marked for MSVC to avoid
warnings
2023-10-16 15:10:13 +02:00
akallabeth
89429885a0
[cmake] make generated pkg-config files relocatable
...
* new CMake option PKG_CONFIG_RELOCATABLE (default ON) allows generating
traditional or relocatable pc files
2023-10-10 19:35:27 +02:00
akallabeth
7df03ed5b4
[server,proxy] fix function pointer warning
2023-09-25 08:39:01 +02:00
akallabeth
6ff4db76bd
[server,proxy] fix function pointer type warning
2023-09-25 08:39:01 +02:00
akallabeth
99f26f1f01
[shadow,mac] remove function pointer casts
2023-09-21 10:57:43 +02:00
akallabeth
5a7a1c159d
[casts] remove fnObject* function pointer casts
...
use proper types that match the function pointer definition to avoid
surprises if the code should be refactored
2023-09-20 21:11:30 +02:00
akallabeth
bb5345c60e
[freerdp,api] add FREERDP_ENTRY_POINT
...
C requires prototypes or compilers will complain about them missing. Our
library entry points do not have such, therefore add the macro
FREERDP_ENTRY_POINT which declares the function prototype automatically
before the function.
2023-08-25 14:36:05 +02:00
akallabeth
4e824b243f
[winpr] add WINPR_ATTR_FORMAT_ARG
...
this macro declares the function argument (pos,arg) to be a printf
style format string and enables compiler checks for that.
2023-08-25 12:56:36 +02:00
akallabeth
7a71441476
[warnings] fix integer multiplications
...
Ensure the integer width for size arguments is 64bit in a
multiplication. Leading 64bit constant 1ull expands width, a trailing
one is ignored.
2023-08-22 11:55:00 +02:00
Armin Novak
3cfa4ed6f2
[server,shadow] fix initialization of [MS-RDPEGFX]
...
the channel was initialized with handling messages in a thread and
handling the channel messages on main thread. fix that.
2023-08-21 16:09:05 +02:00
Armin Novak
dd9757d686
[server] add exerimental and unmaintained warnings
2023-08-21 15:42:10 +02:00
Armin Novak
c0df9a50e5
[proxy,drdynvc] fix #9303 broken format string
2023-08-21 10:42:33 +02:00
akallabeth
41bd8bd3fb
[various] fix integer conversions
2023-08-04 15:07:56 +02:00
Kai Pastor
5ecc011c13
Export interface include directories
2023-08-01 11:12:46 +02:00
Kai Pastor
21cfc456f5
find_dependency for exported cmake config
2023-08-01 08:13:30 +02:00
Armin Novak
f08ed58367
[server,shadow] handle gfx thread in shadow server
2023-07-31 20:18:48 +02:00
Armin Novak
a8b9451807
[server,shadow] unify sending caps confirm
2023-07-31 20:18:48 +02:00
Armin Novak
1caa439a54
[server,shadow] add return checks
...
add return checks and simplified cleanup for shadow_screen_new
2023-07-31 20:18:48 +02:00
Armin Novak
8ed3f8bf40
[server,shadow] fix loop increment warning
2023-07-31 08:32:43 +02:00
Armin Novak
5b27ada80a
[server,sample] fix unused result warnings
2023-07-31 08:32:43 +02:00
ehdgks0627
d04ba8d6ef
Correct typos and formatting errors in format strings
...
In several files, fixed typos in format strings that were causing unexpected output and formatting issues.
2023-07-28 15:34:46 +02:00
Armin Novak
3df928a8d2
[client,sdl] fixed member initialization order and casts
2023-07-28 13:42:12 +02:00
Armin Novak
e61880d077
[standard] replace __FUNCTION__ with __func__
2023-07-27 20:02:43 +02:00
Armin Novak
3024c1e3b0
[cmake] add option to disable platform server
...
add a new option to disable platform server implementations
2023-07-26 16:19:07 +02:00
akallabeth
5d3b7ef0c2
[server,peer] server instance must support multimon
2023-07-06 09:16:51 +02:00
akallabeth
764936fe64
[proxy,modules] fix c++ 11 compatibility
2023-07-05 08:46:00 +02:00
akallabeth
c7f7f38367
[ci] deactivate proxy modules on windows
...
current builder is too old for c++11
2023-07-05 08:46:00 +02:00
akallabeth
8802901b53
[server,mac] make the sample compile again
2023-07-05 08:46:00 +02:00
akallabeth
fc1238a8da
[proxy,module] fix missing library linking
2023-07-05 08:46:00 +02:00
Martin Fleisz
622a2a8df0
misc: More int to BOOL conversion fixes
...
This is a follow up to #9129 .
This PR fixes some problematic `int` to `BOOL` conversions that might
cause overflows when checking for bit flags.
2023-07-04 09:45:20 +02:00
akallabeth
be7ff37069
[proxy,rdpdr] fix boroken logger calls
2023-06-29 21:06:47 +02:00
akallabeth
2ac8946950
[proxy,channels] drdynvc logging context
...
* Use a dynamic logger for dynamic proxy channel
* Set logger context for dynamic channel
2023-06-29 14:30:09 +02:00
akallabeth
ead2be382c
[proxy,channels] use logger context for rdpdr
2023-06-29 14:30:09 +02:00
Armin Novak
133585cd5e
[proxy,drdynvc] remove dynamic channels on open
...
dynamic channels can be opened at any time during a session. If we
receive a CREATE_REQUEST_PDU and the channel id is already in use, print
out a warning with the existing channel details and discard it before
creating the newly requested channel.
2023-06-29 11:05:37 +02:00
Armin Novak
1dfe7878f6
[proxy,module] always check path exists for dyn-channel-dump
2023-06-29 11:05:37 +02:00
Armin Novak
ceb346241b
[proxy,modules] add dump session handling
...
Use a new subdirectory for each session opened on the proxy
2023-06-29 11:05:37 +02:00
Armin Novak
ed93474a07
[proxy,modules] dyn-channel-dump one packet per file
2023-06-29 11:05:37 +02:00
Armin Novak
0876fb555d
[proxy,modules] dyn-channel-dump check config for NULL
2023-06-29 11:05:37 +02:00
Armin Novak
80058caa4d
[proxy,modules] check return of pf_modules_run_hook
2023-06-29 11:05:37 +02:00
Armin Novak
a85aee580f
[proxy,modules] add channel dump plugin
2023-06-27 17:36:57 +02:00
Armin Novak
fd338c3bd4
[server,proxy] allow reading arbitrary keys from config
...
Allow the proxy configuration to contain arbitrary section/key/value
entries which can be used by plugins for configuration.
2023-06-27 17:36:57 +02:00
akallabeth
1fc0d5b4b1
[winpr] remove casts for winpr_RAND calls
2023-06-21 09:57:52 +02:00
Armin Novak
4803ba046c
[server,shadow] implement CheckPeerAcceptRestrictions
...
Implement a (optional) peer limitation check for shadow server.
with the command line option /max-connections:<number> the maximum
number of simultaneous connections can be limited.
2023-06-14 17:15:21 +02:00
Armin Novak
3648c05c56
[shadow,subsystem] refactor builtin loader
2023-06-13 08:02:02 +02:00
akallabeth
a71da162ae
[server,shadow] require NLA off if -auth is requested.
...
* Default to authentication required for shadow server (invert previous
default)
* force NLA off if authentication is disabled
2023-06-12 15:04:05 +02:00
Armin Novak
c991f73041
[CMake] refactor shadow build scripts
...
* fix a bug with platform modules not being correctly build
* simplify build, use subdirectory CMakeLists.txt
2023-06-12 15:04:05 +02:00
Armin Novak
98b7c88df7
[proxy,modules] fix bitmap filter drdynvc write
2023-06-08 08:13:16 +02:00
Armin Novak
970f0c54e8
[stream] use const correct Stream_Pointer access
2023-06-08 08:09:33 +02:00
Armin Novak
a4c6b36a19
[build] fix memory sanitizer stack frame warnings
2023-06-07 09:14:45 +02:00
Armin Novak
3e44efc841
[cmake] use FindX11 from CMake 3.13
2023-05-31 11:05:56 +02:00
akallabeth
105f0d2366
[channel,audin] move common code to server channel
...
* manage channel related callbacks with default implementations
* use dynamic logger for server audin channel
2023-05-17 13:33:35 +02:00
Pascal Nowack
c5278c874f
channels/audin: Rework API to be closer to documentation
...
The current server side channel handling of AUDIO_INPUT is currently
very constrained:
- Server implementations cannot measure the clients uplink, since the
Incoming Data PDU is currently unhandled and FreeRDPs DSP handling
delays the callback call of ReceiveSamples
- Servers currently cannot prefer a different protocol version
- Servers currently cannot change the used format
To solve these issues without running into the risk that some
simplifications constraint certain API usage, rework the current channel
handling to be very close to the documentation.
This means, that all documented API calls can be made by server
implementations and all documented PDUs, that the server side is
expected to receive are just parsed inside FreeRDP and then forwarded to
the API implementation.
2023-05-17 13:33:35 +02:00
Armin Novak
16a78e07dd
[server,sample] move assert in SuppressOutput
...
if allowDisplayUpdates == 0 no area rectangle is available.
2023-05-15 22:42:05 +02:00
akallabeth
52786d0f12
[input] update to use new WINPR_KEYBOARD_TYPE*
...
* Use new enum constants with WINPR_KEYBOARD_* prefix
* Fix mapping of keycodes and scancodes, the offset of 8 is no longer
required if the proper keyboard type is used.
2023-05-12 09:52:01 +02:00
akallabeth
2b3c8c47a4
[build] fix install with BUILD_SHARED_LIBS=OFF
...
generate proper CMake targets so static linking works again.
2023-05-12 08:03:56 +02:00
David Fort
7b84f2f740
proxy: fix treatment of client channels
...
Iteration on channels was done with the wrong counter leading to incorrect behaviour.
2023-05-09 07:52:06 +02:00
Armin Novak
7212621eae
[proxy,config] PEM length must contain '\0'
2023-05-08 22:54:53 +02:00
akallabeth
516668d02b
[fclose] ensure no invalid pointers are passed.
...
fclose has undefined behaviour for NULL pointers, so check for these.
2023-04-28 07:39:35 +02:00
Armin Novak
fad46c4455
[server,proxy] add additional PEM headers
...
there are some more PEM formats in use, add the headers
2023-04-26 09:55:26 +02:00