Commit Graph

15890 Commits

Author SHA1 Message Date
fifthdegree
1c012b09b8 implement proper SPNEGO negotiation 2022-06-21 10:27:17 +02:00
Armin Novak
9a98f28b06 Add git revision to buildconfig by default
if someone is using the source without GIT, let them have the work
to provide a proper version information
2022-06-20 15:39:32 +02:00
Armin Novak
fcb2d7c60d Fixed double free by implicit fallthrough (#7974) 2022-06-20 15:39:20 +02:00
akallabeth
f44554e16d
Added proxy module callbacks for session init and started (#7976) 2022-06-20 13:02:25 +02:00
akallabeth
44582f821b Added utility module for string functions 2022-06-17 08:41:46 +02:00
akallabeth
f25261e271 Unifiy string append functions 2022-06-17 08:41:46 +02:00
David Fort
aff8fdac26 proxy: correctly handle dynamic channel fragmentation
This big patch fixes fragmentation handling in the dynamic channel. We used to
have a single state to handle fragmentation at the main dynamic channel level, but
in fact packets can be fragmented per sub channel. So we have to maintain a fragmentation
state per sub channel, this involve treating dynamic and static channels differentely
(so the size of the patch that has to implement state tracking per dynamic channels).
2022-06-17 08:38:57 +02:00
David Fort
cfe80694da proxy: add fixed user/domain/passwd
This adds a User, Domain and Password parameter in the Target section of the configuration
to specify and use a fixed backend user, domain or password (overriding the one
passed by the front user).
2022-06-15 14:05:45 +02:00
David Fort
e389210673 client channels: mutualize common types between dynamic channels
Most dynamic channels share the same copied and pasted code for the XXX_CHANNEL_CALLBACK
and XXX_LISTENER_CALLBACK types. This patch introduce GENERIC_CHANNEL_CALLBACK and
GENERIC_LISTENER_CALLBACK that fits for most channels and discard custom type definitions.
2022-06-15 14:04:58 +02:00
akallabeth
c2b394c528 Invert RDPGFX_CAPVERSION_106_ERR and RDPGFX_CAPVERSION_106 values
Define the actual value as RDPGFX_CAPVERSION_106 and the wrongly
documented one as RDPGFX_CAPVERSION_106_ERR
2022-06-09 14:03:36 +02:00
Marc-André Moreau
161617c4a4 Implement RDP persistent bitmap cache 2022-06-08 23:37:06 +02:00
Pascal Nowack
9d627e0df2 channels/server: Add APIs for DVCs to get notified of channel id
This allows server implementations to watch these channel ids for their
creation statuses.
2022-06-08 15:26:51 +02:00
Pascal Nowack
1f0b3c8004 audin/server: Do not overwrite values of the server audio formats
It just makes the usage of codecs impossible.
2022-06-08 15:26:51 +02:00
Derek Foreman
a547f8c4b0 Fix monitorlayout PDU
commit ec699f6c75 moved the array
allocation into display_convert_rdp_monitor_to_monitor_def without
updating its only call site.

This leads to display_convert_rdp_monitor_to_monitor_def failing
because the array already exists.
2022-06-08 15:09:48 +02:00
Pascal Nowack
dacc1e1c0f server: Add channel handling for telemetry channel 2022-06-08 09:30:30 +02:00
Pascal Nowack
3337810520 server/rdpsnd: Add API to get notified of channel id 2022-06-08 09:30:30 +02:00
Pascal Nowack
bc111b04d3 core/server: Add APIs to get notified of DVC creation statuses
This allows server implementations to add handling for situations,
where the client side does not support them.
Particularly useful for the audio output channels (static channel as
fallback, when dynamic channel is not supported).
2022-06-08 09:30:30 +02:00
akallabeth
5460bb3133 Fixed rfx_process_message use 2022-06-03 08:51:40 +02:00
akallabeth
1cc06dc3a5 Fixed mac compilation warnings 2022-06-03 08:51:40 +02:00
akallabeth
31708d8b20 Disable LTO on apple devices 2022-06-03 08:51:40 +02:00
akallabeth
1aacf504a1 Increase C standard to C11 2022-06-03 08:51:40 +02:00
akallabeth
a0ca2b4a6e Add LTO settings 2022-06-03 08:51:40 +02:00
akallabeth
35f575a753 Refactored rdpsnd server
* Assert all input arguments
* Unify stream buffer handling
2022-06-03 08:48:46 +02:00
akallabeth
b69499c060 Improve ABI compatibility 2022-06-03 08:48:46 +02:00
Pascal Nowack
902727df5e rdpsnd: Enhance server implementation
The current server sided channel handling of RDPSND/AUDIO_PLAYBACK_DVC
is currently very constrained.
So, solve this. This means:

- Add the missing Training/Training Confirm PDUs
- Stop overriding the average bytes per second values, when submitting
  the audio formats, as this currently makes the usage of codecs
  impossible
- Add a way to send the server formats manually again, to be able to
  restart the protocol after a Close PDU was sent
- Add a way to send already encoded audio data to let server
  implementations to take care of the encoding process and to set
  custom audio timestamps for the Video Optimized Remoting channel
- Add public attributes to let server implementations know the initial
  volume and pitch values
- Add public attribute to let server implementations know the quality
  mode setting
2022-06-03 08:48:46 +02:00
Richard Dymond
e1610a7524 Add WTSChannelGetOptions 2022-06-02 14:12:12 +02:00
akallabeth
3d65e5a138 Fix return of getlogin() 2022-06-02 13:57:09 +02:00
Marc-André Moreau
51f378308f * libfreerdp-codec: fix ClearCodec context reset 2022-06-01 15:26:12 +02:00
Marc-André Moreau
227aa6a55f Fix WinPR SSPI unit tests to always use SSPI function table 2022-06-01 15:16:12 +02:00
Marc-André Moreau
1d5c0be5ec Add settings to load a custom SSPI shared library module 2022-06-01 15:16:12 +02:00
Marc-André Moreau
4c4b5bfd87 Revert "* libfreerdp-codec: fix XCRUSH context reset"
This reverts commit dd57a4fae8.
2022-05-30 18:10:47 +02:00
David Fort
0a404d5728 fix a warning seen on the MacOS CI 2022-05-30 14:05:41 +02:00
David Fort
094cc7ca77 utils: add implementation of POD(primitive object data) arrays
This allows to have simple array of primitive types with basic utility functions.
2022-05-30 14:05:41 +02:00
Marc-André Moreau
135d508a78 * libfreerdp-channels: fix remdesk, encomsp channel event handling 2022-05-26 17:18:40 +02:00
Marc-André Moreau
1ce00d9084 * libfreerdp-gdi: fix processing of RemoteFX codec handling 2022-05-26 17:15:19 +02:00
Marc-André Moreau
dd57a4fae8 * libfreerdp-codec: fix XCRUSH context reset 2022-05-26 17:14:36 +02:00
akallabeth
46ccf6d0d7
Fixed RDPGFX_CAPVERSION_106 according to errata (#7924)
The [MS-RDPEGFX] spec is not really sure which value to use, so we
just announce both, the one from the spec and the one from errata.
2022-05-25 13:11:29 +02:00
akallabeth
dc6c54af49 Fixed missing WINAPI for callback function declarations 2022-05-25 10:31:21 +02:00
akallabeth
2677ca0aaf
Always call HOOK_TYPE_CLIENT_UNINIT_CONNECT in pf_client_thread_proc (#7920) 2022-05-25 09:45:31 +02:00
Armin Novak
387d4bd8fd Disable scaled output PDU if no scaling support compiled 2022-05-24 10:08:53 +02:00
Armin Novak
40f5578206 Add GFX 10.7 capsets 2022-05-24 10:08:53 +02:00
Armin Novak
226a20025a Updated RDPGFX_CAPSET_VERSION106 code to conform to spec 2022-05-24 10:08:53 +02:00
akallabeth
bbf3b8deba Cleaned up xf_AppWindowFromX11Window use 2022-05-19 11:23:43 +02:00
2fly2
8f831ed324 fix RAIL abort when reconnect
Signed-off-by: 2fly2 <wjatchd@163.com>
2022-05-19 11:23:43 +02:00
Martin Fleisz
8a06ed9299 proxy: Reset stream position before length check 2022-05-19 09:23:32 +02:00
Martin Fleisz
ed53038daa proxy: Add handling of server caps when in rdpdr client running state 2022-05-19 09:23:32 +02:00
Pascal Nowack
7d18ca4dc2
rdpsnd/client: Fix handling of WaveConfirm PDUs (#7910)
Currently, all FreeRDP-based clients don't send any WaveConfirm PDUs
for received samples, when using a dynamic channel for audio output
redirection.
[MS-RDPEA] 2.2.3.8 Wave Confirm PDU mentions, that a WaveConfirm PDU
MUST be sent, when a WaveInfo PDU + Wave PDU, or Wave2 PDU is received
and when the audio data sample is emitted to completion by the client.
The first WaveConfirm PDU is used by the server to determine the
network latency and the second WaveConfirm PDU is used by the server to
determine the render latency.

So, fix the current behaviour, where FreeRDP currently does not send
any WaveConfirm PDU, when using the dynamic channel, or only sends one
WaveConfirm PDU for the sample.
For the first WaveConfirm PDU, use the same timestamp, that was
included in the first WaveInfo/Wave2 PDU.
For the second WaveConfirm PDU, add the render latency on top of the
arrival timestamp.
2022-05-18 08:47:54 +02:00
David Fort
13d56dbfb2
core: fix warning (#7906) 2022-05-16 15:29:07 +02:00
David Fort
97c65d9701
Console mode fix (#7902)
* core: correctly handle console mode server-side

In server-side we were not interpreting redirected session flag to compute a
console mode flag. In the proxy that was leading client connecting with /admin to front
to not connect with /admin on the back server.

* nla: fix the printinng of the package name
2022-05-16 09:05:48 +02:00
Martin Fleisz
372153bba3 gids: Fix broken check in GIDS emulation 2022-05-13 12:55:37 +02:00