Armin Novak
9e361b613d
[channels,rdpdr] fix user loggedon handling
...
PAKID_CORE_USER_LOGGEDON might happen in quite a lot of combinations not
obvious from the spec at first glance. Relax state checks so that all
valid combinations are allowed.
2023-11-02 11:21:32 +01:00
David Fort
4a0e0ae88f
[egfx] reset total decoded frames when receiving caps
...
It seems like some windows servers don't like to receive ack frame messages
with a totalDecodedFrame number that is bigger than the frameId.
That can happen if the connection starts, some frames are decoded, we receive a
renegotiate message, then egfx channel is reopened and the frame ids we receive
go back to 1. In the previous situation, we ended up with sending an ack
with frameId=1 and totalDecodedFrames=38, with the patch totalDecodedFrames is
reset when receiving caps, so it's always lower than frameId.
2023-10-27 19:09:41 +02:00
Pascal Nowack
687ed017d3
server: Add channel handling for mouse cursor channel ([MS-RDPEMSC])
...
The mouse cursor channel enables remoting of the mouse cursor (bitmap)
over a DVC. The main use case is UDP, as only virtual channels can be
transported via UDP in RDP.
2023-10-25 12:57:26 +02:00
Pascal Nowack
aac8945fe9
server: Add channel handling for location channel ([MS-RDPEL])
...
With the location channel, an RDP server can redirect the location of
the user from the client side to the server side.
The PDUs are almost the same as in the documentation, except for the
encoded types, these ones are here already parsed.
Optional values are accessed via pointers. If the pointer of a value is
NULL, then that value was not supplied by the client side.
2023-10-17 10:18:08 +02:00
Armin Novak
60390ea40c
[pragma] unify compiler diagnostics
2023-10-16 15:10:13 +02: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
Armin Novak
07543a6042
[warnings] fix various warnings
...
* missing const in casts
* missing static for functions
* missing WINPR_ATTR_FORMAT_ARG for printf like functions
2023-10-16 15:10:13 +02:00
akallabeth
822ba31c31
[bsd] clean up bsd related detections
2023-10-10 22:59:53 +02:00
akallabeth
f1eaa01de2
[oss] moved detection to module
2023-10-10 22:59:53 +02:00
akallabeth
f977de89e3
[pulse] move detection to module
2023-10-10 22:59:53 +02:00
akallabeth
f06c027824
[alsa] move detection to module
2023-10-10 22:59:53 +02:00
akallabeth
046767b195
[opensles] moved detection to modules
...
* Rename variables to match package name
* Move find_package to where it is actually used
2023-10-10 22:59:53 +02:00
ichaoX
a6e9cfa6d9
[channels,rdpei] fix pen contact
2023-09-13 15:57:59 +02:00
akallabeth
4eb3a16120
[channels,audin] fix return value type
2023-09-02 07:56:21 +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
ad51c6a0f5
[channels,printer] default CUPS to being enabled
...
* printer support now enabled by default unless iOS or ANDROID is build.
* Move cups library detection to printer module
2023-08-25 13:54:29 +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
9cee9b3c08
[c standard] use WINPR_FALLTHROUGH
...
use the macro to silence intentional switch fallthrough locations
2023-08-25 12:56:36 +02:00
akallabeth
04f5790fd4
[channel,rdpgfx] fix wrong return type
2023-08-25 08:42:31 +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
Marc-André Moreau
c691ef9c8d
allow selecting smartcard emulator at runtime rather than link time
2023-08-21 12:00:17 +02:00
akallabeth
41bd8bd3fb
[various] fix integer conversions
2023-08-04 15:07:56 +02:00
ehdgks0627
8e3d72e814
Add return statement when not enough data
2023-08-03 10:16:05 +02:00
Martin Fleisz
45ee30da5e
rdpdr: Fix potential null pointer access
2023-08-02 19:09:26 +02:00
Kai Pastor
5ecc011c13
Export interface include directories
2023-08-01 11:12:46 +02:00
Armin Novak
ef5c0e78ab
[build] use define WINPR_FALLTHROUGH
...
with c17 compatible compilers annotate with [[fallthrough]]
2023-07-31 23:46:53 +02:00
Armin Novak
62da5c7e8e
[channels,rdpgfx] make internal server thread optional
2023-07-31 20:18:48 +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
045fcedd12
[channels,printer] fix backend load function
...
changed the signature of the backend loader function. the previous
version casted the allocated pointer to UINT which might not be able to
hold a pointer.
2023-07-28 12:24:22 +02:00
Armin Novak
3612948bad
[channels,audin] assertions and warning fixes
2023-07-27 20:02:43 +02:00
Armin Novak
70e437dbeb
[channels,echo] assertions and warning fixes
2023-07-27 20:02:43 +02:00
Armin Novak
bd0d927b08
[channels,encomsp] assertions and warning fixes
2023-07-27 20:02:43 +02:00
Armin Novak
e61880d077
[standard] replace __FUNCTION__ with __func__
2023-07-27 20:02:43 +02:00
Armin Novak
99bf501f0f
[channels,drive] remove unused member filename
2023-07-26 10:57:42 +02:00
Armin Novak
70ddb6518a
[PathCchAppend] fix missing return checks
2023-07-26 10:57:42 +02:00
Armin Novak
4154779672
[channel,drive] path must not end with separator
...
the fullpath string must not end with a path separator as FindFirstFile
returns an error in such cases.
2023-07-26 10:57:42 +02:00
Armin Novak
c4f93891fd
[channels,drive] use winpr recursive directory remove
2023-07-26 10:57:42 +02:00
Pascal Nowack
b8c2b6abd7
channels/cliprdr: Fix writing incorrect PDU type for unlock PDUs
2023-07-20 11:36:11 +02:00
Martin Fleisz
c88c777482
drive: Fix double free in client drive channel
2023-07-05 14:02:31 +02:00
akallabeth
bd7f0ecd24
[collections] fix ListDictionary usage
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
Armin Novak
9af563d4d1
[smartcard] fix message queuing
...
the queye key must not be 0
2023-07-03 20:53:46 +02:00
akallabeth
e03b6596c6
[build] fix unused but set variable warnings
2023-06-29 18:34:51 +02:00
akallabeth
3f78b3c379
[build] fix unused compiler warnings
2023-06-28 09:45:09 +02:00
Vic Lee
eda91e6695
[channels,audin] negotiated format must be cleaned after closing.
2023-06-28 08:39:33 +02:00
akallabeth
54847499e9
[winpr,collections] fix ListDictionary New/Free handling
2023-06-27 15:05:43 +02:00
akallabeth
63d4da2d0d
[winpr,collections] ListDictionary_GetKeys
2023-06-27 15:05:43 +02:00
akallabeth
ac39e8aac2
[winpr,collections] ListDictionary_Count
2023-06-27 15:05:43 +02:00
Armin Novak
535faeb879
[channels,rdpei] simplify new contact detection
2023-06-26 11:22:32 +02:00
Armin Novak
d6ae30e7fa
[channels,rdpei] add variadic argument calls
2023-06-26 11:22:32 +02:00
digitalsignalperson
9c7a541d9c
Implement pen functionality for X11, including pressure, hover, and eraser
2023-06-21 18:42:38 +02:00
Martin Fleisz
3b9a19e993
cliprdr: Fix an issue with file format filtering on Windows
...
This PR fixes an issue caused by clipboard format filtering which
discarded all formats but `FileGroupDescriptorW` to enable clipboard
file transfer. However at least on windows we also need `FileContents`
to be placed in the clipboard to make file transfer work correctly.
The PR also unifies list filtering into a single functions instead of
having two different functions.
2023-06-14 17:14:14 +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
akallabeth
00b393c094
[channels,rdpdr] enforce client state checks
...
Keep track of client channel state and abort on invalid messages for a
certain state
2023-06-05 09:56:43 +02:00
Armin Novak
3e44efc841
[cmake] use FindX11 from CMake 3.13
2023-05-31 11:05:56 +02:00
Armin Novak
e3f660e11f
[channels,cliprdr] fix sending of empty format list
2023-05-30 13:42:28 +02:00
akallabeth
98fb56b767
[channels,cliprdr] implement client clipboard direction filter
...
* Filter remote -> local or local -> remote clipboard depending on
setting.
* Filter remote -> local or local -> remote file clipboard
depending on setting.
2023-05-25 16:26:39 +02:00
akallabeth
fc78064ec3
[warnings] fix -Wunused-variable
2023-05-24 08:24:32 +02:00
akallabeth
066276a85a
[warnings] fix -Wsometimes-uninitialized
2023-05-24 08:24:32 +02:00
akallabeth
27d0da9df0
[cmake] remove duplicate setting for position independent code
2023-05-23 08:51:18 +02:00
Armin Novak
b15edda614
[cmake] changed rdpsnd-common to STATIC library
2023-05-22 12:57:16 +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
akallabeth
7073aef79f
[channel,cliprdr] add missing include in header
2023-05-12 13:57:56 +02:00
akallabeth
239cd9212e
[channels] fix static linking of common libraries
2023-05-12 08:03:56 +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
Joerg Pulz
61983cd6dc
Replace deprecated ffmpeg functions:
...
avpicture_get_size -> av_image_get_buffer_size
avpicture_fill -> av_image_fill_arrays
av_picture_copy -> av_image_copy
Add missing includes.
This fixes build with ffmpeg-6.x.x
2023-05-02 15:12:07 +02:00
akallabeth
c950ca375c
[client,common] fix value present flag check
...
need to check for COMMAND_LINE_VALUE_PRESENT instad of COMMAND_LINE_ARGUMENT_PRESENT
2023-04-28 07:39:35 +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
David Fort
0b16fcef18
rail: add missing server-side calls
...
This patch adds support for text_scale and caret_blink messages on the server-side.
2023-04-25 07:27:37 +02:00
Richard Markiewicz
13e52cfae2
[channels,settings] add a setting to ignore invalid devices
2023-04-24 11:29:05 +02:00
Armin Novak
9005e1edfb
[channels,printer] fix printer_save_default_config
2023-04-24 10:58:01 +02:00
Andrey Af
58cdc9e82b
rdpdr_server_drive_close_file_callback remaining length fixed
2023-04-24 09:33:26 +02:00
Pascal Nowack
4be3950fd8
rdpecam/server: Remove wrong assertion
...
Some PDUs, like the Activate Device Request only contain the header.
As a result, the size of the rest of the PDU is 0.
The assertion for the PDU size in device_server_packet_new only
considers the size of the body of the PDU.
When that value is 0, the assertion is hit and the server implementation
crashes.
To fix this issue, simply remove this assertion. Since the allocation
size is always at least the header size, there won't ever be an attempt
to create a stream with a size of 0.
2023-04-19 22:20:04 +02:00
Martin Fleisz
ecb4712a10
channels: Check return value of EnumPrinters
2023-03-23 17:40:08 +01:00
akallabeth
e28760f91e
[cmake] fix OBJECT library link deps
...
Follow up to #8801 , OBJECT libraries need to link dependencies with
PUBLIC so that the library using the OBJECT libraries can link against
these too
2023-03-16 10:58:01 +01:00
Marc-André Moreau
3cc12d5886
use cmake object libraries for built-in virtual channel plugins
2023-03-15 16:20:50 +01:00
Armin Novak
b54d2c1db3
[channels] removed duplicate includes
2023-03-15 08:22:23 +01:00
akallabeth
a5b42f0f84
[includes] untangled circular includes
2023-03-15 08:22:23 +01:00
akallabeth
a360f1ca8c
[build] fix a few compiler warnings
2023-03-13 13:04:45 +01:00
Armin Novak
1bf0bb1a26
[server] fixed build without CHANNEL_AUDIN_SERVER
2023-03-06 21:46:51 +01:00
Armin Novak
3d8cb485f4
[warnings] Fixed strict-prototypes warnings
2023-03-06 10:04:59 +01:00
Armin Novak
1b28bd0d36
[channels,cliprdr] use logger tag macros
2023-03-05 17:55:28 +01:00
Armin Novak
9c56ce1336
[channels,tsmf] drop gstreamer 0.1 support
2023-03-01 15:34:09 +01:00
akallabeth
273bb6a7a8
[build] use static libraries as intermediate
2023-03-01 08:18:34 +01:00
akallabeth
b4e9c8b39f
[build] removed complex libraries
...
* remove obsolete complex libraries helper
* fix static linking
2023-03-01 08:18:34 +01:00
akallabeth
c054666311
[channels] simplified channel subsystem linking
2023-03-01 08:18:34 +01:00
akallabeth
cf9777cd92
[channels] simplified server linking
2023-03-01 08:18:34 +01:00
akallabeth
c3a82daad6
[channels] simplified client linking
2023-03-01 08:18:34 +01:00
akallabeth
0307482506
[channels,rdpsnd] add rdpsnd-common object lib
2023-03-01 08:18:34 +01:00
akallabeth
aa2cb9aa5f
Fixed #8686 : Update h264 to use new FFMPEG API
2023-02-27 09:45:44 +01:00
Armin Novak
6256933e75
[channels,cliprdr] remove clipboard data hex dump
...
just too noisy for logging
2023-02-23 20:28:15 +01:00
Armin Novak
70f6c09ff4
[core] fix persistent bitmap cache setting
...
* Only activate if both, client and server support the capability
* Use settings getter to access setting
2023-01-26 09:30:17 +01:00
Armin Novak
641022b795
[logging] remove __FUNCTION__ from actual message
...
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
akallabeth
075506f6c8
[winpr,stream] use new Stream_CheckAndLogRequiredLength*
2023-01-25 14:27:32 +01:00
akallabeth
8ed37e68d2
[stream] use logging capacity checks
2023-01-25 14:27:32 +01:00
akallabeth
275741cc75
[core,utils] add drdynvc stringification functions
2023-01-12 22:54:25 +01:00
akallabeth
6d7c07076d
[chanenls,drdynvc] use proper types instead of int
2023-01-12 22:54:25 +01:00
akallabeth
82ba9ede9c
[freerdp] use FREERDP_/UWAC_/RDTK_ prefix for conditional headers
2023-01-10 17:38:00 +01:00