731 Commits
Author SHA1 Message Date
Viktor Liu 9901208bed Add NetBird WASM build configuration
- Comment out problematic diplomat patch for WASM builds
- Add Makefile for easy WASM module building
2025-08-28 23:15:01 +02:00
Benoît CortierandGitHub 303bee0456 refactor: follow up to PR 930 (#949) 2025-08-28 11:24:08 +00:00
Gabriel BaumanandGitHub ca11e338d7 feat: preserve RDP negotiation failure details in RDCleanPath error responses (#930)
* Both web and desktop clients check for X.224 negotiation failure data
in RDCleanPath error responses before falling back to generic errors
* When X.224 Connection Confirm failure is found, convert to specific
NegotiationFailure error type instead of generic RDCleanPath error
* Enable clients to show meaningful error messages like "CredSSP
authentication required" instead of generic connection failures
* Maintain backward compatibility - existing proxies sending empty
x224_connection_pdu continue working as before
* Helper for proxies creating an RDCleanPath error with server response
2025-08-28 07:06:21 -04:00
Alex YusiukandGitHub ae99d14a69 refactor: add same_name_method clippy correctness lint (#948) 2025-08-28 11:05:42 +00:00
dependabot[bot]andGitHub 9e23597c50 build(deps): bump hyper from 1.6.0 to 1.7.0 (#940) 2025-08-26 14:25:11 -04:00
dependabot[bot]andGitHub fe31cf2c57 build(deps): bump picky from 7.0.0-rc.16 to 7.0.0-rc.17 (#941) 2025-08-26 14:24:34 -04:00
Alex YusiukandGitHub f34a9f2500 refactor: add panic clippy correctness lint (#934) 2025-08-26 10:52:01 -04:00
Alex YusiukandGitHub b1f6004ab1 refactor: add non_ascii_literal clippy correctness lint (#932) 2025-08-26 08:18:22 -04:00
Alex YusiukandGitHub b0c145d0d9 fix(clipbrdr-native): map E_ACCESSDENIED WinAPI error code to ClipboarAccessDenied error (#936)
When the system clipboard updates, we receive an `Updated` event. Then
we try to open it, but we can get `AccessDenied` error because the
clipboard may still be locked for another window (like _Notepad_). To
handle this, we have special logic that attempts to open the clipboard
in the event of such errors.
The problem is that nothing in the code actually sets the
`ClipboardAccessDenied` error to be able to run the retrieval logic.
This PR fixes it.
2025-08-26 07:56:28 -04:00
Alex YusiukandGitHub 6fddcaae38 refactor: add needless_raw_strings clippy correctness lint (#931) 2025-08-25 07:17:25 -04:00
Alex YusiukandGitHub 5fe6043208 chore: add mem_forget clippy correctness lint (#928)
This lint warns on usage of `std::mem::forget`. If it's needed, we
should silence the lint and justify that it's used mindfully.
2025-08-22 05:42:06 -04:00
Dan ShareandGitHub 6fab9f8228 feat: add an option to specify a timezone (#917)
Allows to pass a timezone to the remote desktop.
2025-08-20 15:40:32 +00:00
Dan ShareandGitHub 119c7077c9 fix!: update timezone info to use i32 bias (#921)
Switches `bias` from an unsigned to a signed integer.
This matches the updated specification from Microsoft.
2025-08-20 11:03:22 +00:00
Alex YusiukandGitHub 1fdbfd29ed refactor: add redundant_imports rustc style/readability lint (#923) 2025-08-20 03:12:31 -04:00
Benoît CortierandGitHub 27f5504508 refactor(mstsgu): follow up to PR 913 (#920)
- Update tokio-tungstenite to latest
- Fix the dependencies
- Move the top-level documentation into a README.md that we re-include
in the source code
- Re-order the imports using the nightly formater
- Audit the unwraps and remove them
- Fix the UTF-16 string length computation
2025-08-19 10:01:49 -04:00
Alex YusiukandGitHub c84b46be91 refactor: add macro_use_extern_crate rustc style/readability lint (#919)
This lint warns on each `macro_use` attribute on an extern crate. Such a
way of importing macros from a crate is being phased out. Instead of it,
we should directly import the needed macro using `use` import.
2025-08-19 09:45:34 -04:00
Alex YusiukandGitHub 35c19ce444 build: fix failing CI on master (#918) 2025-08-19 02:52:42 -04:00
Alex YusiukandGitHub 64535c5559 refactor: add wildcard_imports clippy extra-pedantic lint (#902) 2025-08-18 13:49:02 -04:00
Steffen ButzerandGitHub 7d28ef83a6 feat: add MS-TSGU (Microsoft RD Gateway) support (#913)
This adds a working state to connect with the ironrdp-client CLI against
a server behind a microsoft remote desktop gateway.
During my testing this was robust enough to work with sessions for more
than 30 minutes.

CLI Flags and prompts are implemented and can be mixed, so the following
would prompt only for 2 passwords:
> ironrdp-client --gw-user username@domain --gw-endpoint rdp.gw.host:443
-u username@domain rdp.internal.host

[MS-TSGU]
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-tsgu/0007d661-a86d-4e8f-89f7-7f77f8824188
* This implements a MVP (in terms of recentness) state needed to connect
through microsoft rdp gateway.
* This only supports the HTTPS protocol with Websocket (and not the
legacy HTTP, HTTP-RPC or UDP protocols).
* This does not implement reconnection/reauthentication.
* This only supports basic auth.

Mostly looking for rough initial feedback (e.g. in terms of if there are
parts that dont align with projects architecture or other areas needing
major rework) as well as if the implemented scope would be considered
complete enough to land this in the first place.
2025-08-18 06:11:24 -04:00
dependabot[bot]andGitHub a682d9cc48 build(deps): bump uuid from 1.17.0 to 1.18.0 (#915) 2025-08-12 06:19:55 -04:00
Gabriel BaumanandGitHub ac291423de refactor(web): add NegotiationFailure to IronErrorKind (#905)
Adds a general NegotiationFailure to IronErrorKind so that web embedders
can handle failures that occur during protocol negotiation, before
authentication.

Changes:
- RDP errors during the negotiation phase become
IronErrorKind.NegotiationError
- User-friendly RDP negotiation error messages to ironrdp-connector
- Update TypeScript definitions
2025-08-08 04:52:28 -04:00
Benoît CortierandGitHub 5fc9fefa02 refactor(server): remove needless sync primitives (#911)
Instead use a `Option` as a slot from which the value can be moved out
temporarily when necessary.
2025-08-05 11:15:55 +00:00
Vladyslav NikonovandGitHub 166b76010c feat(dvc): make dvc named pipe proxy cross-platform (#896)
### Changes
- Make dvc named pipe proxy cross-platform (Unix implementation via
`tokio::net::unix::UnixStream`)
- Removed unsafe code for Windows implementation, switched to
`tokio::net::windows::named_pipe`

### Testing
This feature can be used in the [same
way](https://github.com/Devolutions/IronRDP/pull/791) as on Windows,
however instead of GUI test app there is new basic
[CLI](https://github.com/Devolutions/now-proto/pull/31) app
2025-08-04 17:56:02 +03:00
Benoît CortierandGitHub 4df5dd8762 refactor: follow up to PR #906 (#908) 2025-08-04 11:05:38 +00:00
Benoît CORTIERandBenoît Cortier 5d8a487001 fix: rename option no_audio_playback into enable_audio_playback 2025-08-04 06:46:10 -04:00