2658 Commits

Author SHA1 Message Date
Armin Novak
7485c01a8c [freerdp,API] fix broken deprecation declarations 2026-03-03 17:15:10 +01:00
Armin Novak
eba2bf463c [channels,rail] refactor server side functions
* proper error handling
* use [[nodiscard]]
2026-03-03 09:12:35 +01:00
Armin Novak
cc5f1bbb82 [server,proxy] check for nullptr before using scard_call_context
* Make smartcard_call_cancel_all_context return FALSE if a NULL context
  is supplied.

* Do not call smartcard_call_context_signal_stop if the context is NULL
2026-03-02 09:45:27 +01:00
akallabeth
4ebe580c57 Merge pull request #12380 from mfleisz/new-logonerrinfo-define
[libfreerdp] Add new define for logon error info
2026-02-26 14:33:27 +01:00
Martin Fleisz
5146a13587 [libfreerdp] Add new defines for logon error info 2026-02-26 14:17:18 +01:00
Armin Novak
65399661c4 [c23,api] replace NULL with nullptr 2026-02-26 14:03:05 +01:00
Armin Novak
e58819830a [c23] simplify boolean checks 2026-02-26 11:51:05 +01:00
Armin Novak
0531803808 [warnings] make function declaration names consistent
Use the same parameter names for declaration and implementation.
2026-02-26 10:35:25 +01:00
Armin Novak
e9723d1b61 [attributes] update attribute definitions
* support C++
* support C23
* replace __inline et al with C11 inline
2026-02-25 11:51:11 +01:00
Armin Novak
8016117eb7 [codec,dsp] fix warnings 2026-02-25 10:20:02 +01:00
Armin Novak
378265afcf [freerdp,metrics] add missing includes 2026-02-25 07:43:40 +01:00
Armin Novak
8a24443ed6 [nodiscard] fix wrong attribute position 2026-02-24 16:10:11 +01:00
Armin Novak
20a24fe36e [freerdp,api] mark API functions [[nodiscard]]
Mark (most) of the API functions returning a value [[nodiscard]]. This
will assist application developers spotting bad return checks.
2026-02-17 10:23:34 +01:00
Armin Novak
f3d23da0ae [codec,nsc] update function docs
* add doxygen for functions
* add support for scanline value 0
2026-02-17 09:15:33 +01:00
Armin Novak
24a23e3028 [codec,nsc] deprecate nsc_decompose_message
this function is just a wrapper around nsc_process_message with some
wStream handling around it. Since proper length checks are missing
deprecate it completely.
2026-02-17 08:32:39 +01:00
akallabeth
a25b90adc2 Merge pull request #12311 from akallabeth/winpr-attr-nodiscard-fkt-ptr
Winpr attr nodiscard fkt ptr
2026-02-16 09:32:52 +01:00
Armin Novak
6a1cc0f031 [freerdp,api] mark function pointers [[nodiscard]] 2026-02-16 09:18:30 +01:00
Armin Novak
f4d74c33fd [codec,nsc] bounds checks and doxygen
* Improve doxygen for nsc_process_message
* Improve bounds checks for nsc_process_message
2026-02-15 19:32:38 +01:00
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
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