Commit Graph

2738 Commits

Author SHA1 Message Date
Armin Novak
8c0b07ab78 [include] provide invalid 0 entry for enum values
Some enum values have no valid 0 entry producing warnings when
initializing a struct with { 0 }. Add an *_Invalid entry to these to
explicitly mark that value invalid and define it for use.
2026-02-10 15:53:06 +01:00
Armin Novak
baf31336a8 [utils,helpers] add freerdp_getApplicationDetailsString 2026-02-09 19:55:48 +01:00
Armin Novak
39e33d9e9d [utils,helpers] add application details getter/setter
* Allow an application to set a vendor/product/version namespace to search
  for configuration files/settings/...
* Replace all FREERDP_VENDOR_STRING and similar macros with these
  getters.
2026-01-29 22:47:45 +01:00
Armin Novak
0a8ab5724d [utils] fix typo in doxygen 2026-01-29 22:06:55 +01:00
akallabeth
067524438a [channels,rdpecam] fix PROPERTY_DESCRIPTION parsing
* The Capabilities field is a mask, so allow combination of all valid
  values.
* Adjust header to hold a mask
* Use enum to define constants for parsed values
2026-01-28 08:42:08 +01:00
Jonas Ådahl
4ea803134e peer: Disconnect if Logon() returned FALSE
Returning FALSE implies the client was not authorized, but it does not
have any real impact on the connection, other than setting the
authorized field.

Change this by disconnecting the client if a Logon() callback returned
that a client was not authorized.
2026-01-27 19:39:42 +01:00
akallabeth
08415bda4d [settings] mark functions [[nodiscard]]
* All getters marked (obviously only required to get the value)
* Copy and parser functions marked (invalid state if they fail)
2026-01-26 13:39:42 +01:00
akallabeth
7990eec166 [freerdp] mark all WINPR_ATTR_MALLOC also nodiscard 2026-01-26 13:39:39 +01:00
akallabeth
7bbf3be7e6 [streamdump] mark WINPR_ATTR_NODISCARD 2026-01-26 13:22:25 +01:00
akallabeth
3170a21418 [utils] add WINPR_ATTR_NODISCARD
* Add WINPR_ATTR_NODISCARD to functions returning a value
* Add some missing WINPR_ATTR_MALLOC
2026-01-26 13:22:23 +01:00
akallabeth
5013b28e8b Merge pull request #12171 from jadahl/wip/ntlm-kerberos-package-info
Add support for querying SECPKG_ATTR_PACKAGE_INFO to NTLM and Kerberos
2026-01-25 17:04:48 +01:00
akallabeth
7d943a9c21 [documentation] fix a few doxygen warnings 2026-01-25 09:38:33 +01:00
akallabeth
eb83f339b4 [channels,rdpdr] flag definition and stringify
* Use a enum to define RDPDR_DTYP_* constants
* Add public API freerdp_device_type_string for stringify
* Add WINPR_ATTR_NODISCARD in rdpdr_utils.h
2026-01-25 09:15:05 +01:00
akallabeth
09ae30a0f9 [core,settings] define OrderSupport flags and stringify
* Define OrderSupportFlags as enum
* Add public API stringify function
2026-01-25 09:14:59 +01:00
akallabeth
6673e8a86f [core,utils] add freerdp_input_touch_state_string
* Add freerdp_input_touch_state_string
* Remove duplicate from xfreerdp
2026-01-25 09:00:03 +01:00
akallabeth
d4ae1a546f [client,common] add FREERDP_TOUCH_CANCEL
* Add flag FREERDP_TOUCH_CANCEL
* Add function freerdp_handle_touch_cancel
2026-01-25 08:56:03 +01:00
akallabeth
a8ca59e290 [channels,disp] Unify definitions and add stringify
* Unify FreeRDP_DesktopRotationFlags definitions (needed in settings
  and display channel)
* Add stringify function for the flags
2026-01-25 08:55:58 +01:00
akallabeth
089758f967 [crypto] adjust deprecation warning
due to new API functions next release will be 3.22.0
2026-01-25 07:35:08 +01:00
Jonas Ådahl
e6aa564bd7 Add freerdp_nla_FreeContextBuffer()
This function should be used to free certain buffers retrieved using
freerdp_nla_QueryContextAttributes(). It fetches the right vfunc table
to call into, which typically ends up in sspi_FreeContextBuffer() in
sspi_winpr.c.

This is needed to allow querying the PackageInfo attribute.
2026-01-22 12:50:24 +01:00
Armin Novak
01e1f1b595 [crypto] deprecate er and der modules
These are unused and not well tested, mark them deprecated to announce
removal once FreeRDP 4 is released.
2026-01-21 16:41:25 +01:00
akallabeth
3bc1eeb4f6 [codec,color] add freerdp_glyph_convert_ex
The function freerdp_glyph_convert does not check input buffer length,
deprecate it and provide a replacement that does properly check.
2026-01-16 12:09:26 +01:00
Armin Novak
684ddeb168 [utils,rdpdr] add RDPDR_CAPS_IRP_MJ stringify functions 2026-01-15 13:05:15 +01:00
akallabeth
9fc9181473 [core,codecs] fix freerdp_codec_id_to_str
Use UINT32 as argument instead of enum RDP_CODEC_ID as the value might
be an invalid value in the enum.
2026-01-09 09:24:31 +01:00
akallabeth
9e32181a54 [channels,rdpdr] FILE_DIRECTORY_INFORMATION::FileName as WCHAR 2025-12-12 19:26:52 +01:00
David Fort
65bb6c59fc rdpear: handle basic NTLM commands and fix server-side
This patch adds the handling of basic NTLM commands. Because there's some mysterious
4 zero bytes after pickle header in Kerberos packets, not present in NTLM commands, the
patch also had to rework a bit the packet parsing / forging.

The patch also addresses a server-side bug when parsing supplemental creds, if the client
was sending an empty list, we were considering this as an error.

And finally we also implement the parsing of MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL.
This breaks the public API, anyway this was basically unused (as not parsed before) and
the previous API was wrong as what we receive is MSV1_0_REMOTE_SUPPLEMENTAL_CREDENTIAL
not MSV1_0_SUPPLEMENTAL_CREDENTIAL, so I guess the API breakage is ok.
2025-12-04 11:31:09 +01:00
David Fort
8df50f44b6 Fix remote credential guard channel loading
This patch fixes the loading of the RCG channel. It also adds a guard so the
/remoteGuard cmdline doesn't work if the channel is not built in.
2025-12-01 18:13:05 +01:00
akallabeth
c632a703df [core,input] Add debug log to keyboard state sync 2025-11-18 14:26:45 +01:00
akallabeth
ce87165719 [c,attributes] mark functions with attirbute malloc 2025-11-07 11:20:39 +01:00
akallabeth
c8698a1b9c [core,settings] add new keys for gateway
Add missing settings:
* FreeRDP_GatewayHttpReferer
* FreeRDP_GatewayHttpUserAgent
* FreeRDP_GatewayHttpMsUserAgent
2025-10-28 11:13:52 +01:00
akallabeth
fc2ae4cf41 [core,codecs] add stringify helper
add freerdp_codec_id_to_str to get a string representation of a given
codec id
2025-10-06 08:41:18 +02:00
Armin Novak
4aceae4666 [codec,color] Add from string method for PIXEL_FORMAT
* Add FreeRDPGetColorFromatFromName to get a PIXEL_FORMAT from a given
  string.
* Add a unit test to ensure FreeRDPGetColorFromatFromName and
  FreeRDPGetColorFormatName work as expected
2025-09-30 13:17:26 +02:00
Armin Novak
64b67c938c [utils] fix doxygen for freerdp_passphrase_read 2025-09-30 10:15:43 +02:00
akallabeth
1ada469cdd [freerdp,utils] modify freerdp_interruptible_get_line
* Make freerdp_interruptible_getc nonblocking so each typed char is
  returned
* Handle ctrl+[cdz] in freerdp_interruptible_getc so the function can be
  aborted by a user
* Handle simple input edit in freerdp_interruptible_get_line (delete
  characters, provide a suggested value)
2025-09-29 10:35:33 +02:00
akallabeth
2f0f6d7707 [api,doxygen] update documentation
Add (better) documentation for the following callback function types:
* pChooseSmartcard
* pAuthenticateEx
2025-09-26 13:14:47 +02:00
akallabeth
74648eb3a9 [c,standard] use C99 inline 2025-09-26 11:29:26 +02:00
akallabeth
1baa721961 [core] fix const correctness
Make function arguments const if possible.
2025-09-26 11:18:57 +02:00
akallabeth
53d63b3120 [core,arm] add TARGET_BOOTING error code
Propagate the error code for a VM still booting to client.
2025-09-26 10:13:46 +02:00
Armin Novak
d3643711a6 [freerdp,header] fix formatting 2025-09-24 14:01:15 +02:00
Armin Novak
45c7df6d61 [core,utils] add auth type AUTH_RDSTLS 2025-09-23 16:05:31 +02:00
Armin Novak
de23d79012 [config] do not redefine WITHOUT_FREERDP_3x_DEPRECATED
The define might already be defined by the build system. In that case
do not redefine it.
2025-09-23 16:05:22 +02:00
akallabeth
632131b266 [deprecate] rename planar_decompress 2025-09-22 19:57:41 +02:00
Armin Novak
b1d58751aa [android] build without deprecated symbols 2025-09-18 11:06:37 +02:00
akallabeth
2552408b8a [api] fix missing C++ guards 2025-08-29 12:25:32 +02:00
akallabeth
e52d024071 [core,settings] unify config path determination 2025-08-29 10:53:26 +02:00
akallabeth
f81c41ef6a [utils,helpers] fix missing C++ guards 2025-08-29 10:14:41 +02:00
Armin Novak
83b9595755 [transport] fix doxygen: use correct version 2025-08-20 10:01:22 +02:00
akallabeth
ad22d5fdff [client,common] add freerdp_client_populate_settings_from_rdp_file_unchecked
Sometimes it is required to have raw values from a RDP file converted to
rdpSettings without consistency modifications. Expose this with a new
function.
2025-08-18 09:47:11 +02:00
akallabeth
6284bba9f0 [clang-tidy] fix various warnings
* silence tidy warnings for public API symbols (we can't fix these for
  compatibility reasons)
* fix issues with casting
2025-08-11 14:11:40 +02:00
Armin Novak
e723f8db07 [core,proxy] fix BIO read/write methods
Introduced with ae05778644 the return of
BIO_read and BIO_write changed.
Revert this to original behaviour and fix a bug in the proxy code
2025-07-11 13:32:20 +02:00
akallabeth
4dc6091fde [client,common] fix -mouse-motion
* Move code to client/common to have it in place for all clients without
  modification
* Remember if a button was pressed and only suppress move events if no
  button is pressed.
2025-06-18 12:46:56 +02:00