Commit graph

108 commits

Author SHA1 Message Date
Benoît Cortier
48e02441d2
chore: update Rust toolchain to 1.88.0 (#852)
MSRV is also bumped to 1.84.
2025-07-03 07:38:28 +03:00
Alex Yusiuk
f6285c5989
feat(web): add canvasResizedCallback method to SessionBuilder (#842)
Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
2025-06-27 07:55:26 +00:00
Alex Yusiuk
bbf7ab3394
style(web): fix typo in the session termination message (#834) 2025-06-24 00:09:58 -07:00
Alex Yusiuk
727c30870b fix(web): fix softbuffer panic when resizing screen (#825) 2025-06-20 01:20:31 -04:00
Alex Yusiuk
f68cd06ac3
fix!: rename callExtension to invokeExtension (#803) 2025-06-03 14:42:46 +00:00
Alex Yusiuk
9f6647c341
feat(iron-remote-desktop): introduce callExtension method in iron-remote-desktop API (#799) 2025-06-02 14:15:58 -04:00
Marc-André Lureau
783702962a feat(session): make client_codecs_capabilities() configurable
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-05-09 12:28:46 +02:00
Marc-André Lureau
f03ee393a3 refactor!: add supported codecs in BitmapConfig
"session" has a fixed set of supported codecs with associated IDs.

"connector" must expose the set of codecs during capabilities exchange.
It currently uses hard-codes codec IDs in different places.

Move the BitmapCodecs set to ironrdp-pdu. Shared code will be used by
the server, so this is a suitable common place.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-05-09 09:11:45 +02:00
Alex Yusiuk
927eea1707
style(ironrdp-web): improve naming of clipboard variables (#779) 2025-04-25 17:06:33 +02:00
Benoît Cortier
24e64d7589
refactor(web): consolidate WASM object constructors as create (#776) 2025-04-23 20:56:11 +03:00
Benoît CORTIER
16651e74a4 fix(web): improve make_bridge! macro hygiene 2025-04-22 13:09:56 +02:00
Benoît CORTIER
baafb20063 refactor(web): remove unrequired #[allow] attribute 2025-04-22 13:09:56 +02:00
Benoît Cortier
8961b40012
refactor(web): iron_remote_desktop::export -> make_bridge (#765) 2025-04-21 14:50:06 +00:00
Benoît Cortier
e0eea449b8
refactor(web): rework clipboard API (#764) 2025-04-21 14:29:21 +00:00
Benoît Cortier
f287e168a8
refactor: rework extension API for iron-remote-desktop (#762) 2025-04-21 09:33:12 -04:00
Benoît Cortier
45884c5d38
refactor(web): iron_init/setup logic (#763)
- `iron_init` is renamed to `setup`, so that
  - `init` is the function for initializing the WASM module.
- `setup` is the function taking parameters for logger and performing
other setting up operations.
- Since `setup` may be called after `init` is called, it’s possible to
use some functions of the WASM module before calling `setup` if
necessity arises.

- Common initializion code is moved to an hidden "internal" module of
iron-remote-desktop crate, that is thus not part of the public API.

- Restored the "IronRDP is ready" debug log when `setup` is called.
2025-04-21 15:32:33 +03:00
Benoît Cortier
712da42ded
fix: inject socket local address for the client addr (#759)
We used to inject the resolved target server address, but that is not
what is expected. Server typically ignores this field so this was not a
problem up until now.
2025-04-21 09:08:50 +00:00
Alex Yusiuk
ec1832bba0
feat(ironrdp-web): iron-remote-desktop helper crate for remote desktop WASM modules (#755) 2025-04-18 07:30:45 -04:00
Zac Bergquist
bdde2c76de
fix(client)!: fix name of client address field (#754) 2025-04-16 04:23:49 -04:00
Alex Yusiuk
fe676eeac5
refactor(web): follow-up to #722 (#747) 2025-04-14 14:05:19 +00:00
Benoît Cortier
cc3dbf124f
feat(client): add support for RDCleanPath (#745)
Issue: ARC-309
2025-04-14 13:08:44 +00:00
Alex Yusiuk
0ff1ed8de5
refactor(web-client): refactor iron-remote-gui into iron-remote-desktop (#722) 2025-04-11 08:28:27 -04:00
dependabot[bot]
e70e7e2c5f
build(deps): bump smallvec from 1.14.0 to 1.15.0 (#739) 2025-04-08 08:38:53 -04:00
Marc-André Lureau
9f0edcc4c9 feat(client): Add no_audio_playback flag to Config struct
Enable audio playback on the client.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-08 13:35:44 +02:00
Marc-Andre Lureau
4e581e0f47
feat(cliprdr)!: add on_ready() callback (#729)
Give a hint to the backend when the channel is actually connected &
ready to process messages.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-03-30 18:39:10 -04:00
Benoît Cortier
c21fa44fd6
build: do not use workspace dependencies (#695)
As written in the workspace Cargo.toml:

> Note that for better cross-tooling interactions, do not use workspace
dependencies for anything that is not "workspace internal" (e.g.: mostly
dev-dependencies). E.g.: release-plz can’t detect that a dependency has
been
updated in a way warranting a version bump in the dependant if no commit
is
touching a file associated to the crate. It is technically okay to use
that
for "private" (i.e.: not used in the public API) dependencies too, but
we
still want to make follow-up releases to stay up to date with the
community,
even for private dependencies.

Expectation is that release-plz will be able to auto-detect when bumping
dependents is necessary.

Closes #689
2025-03-12 09:25:01 -04:00
Marc-André Lureau
63963182b5 fix(server): drop unexpected PDUs during deactivation-reactivation
The current behaviour of handling unmatched PDUs in fn read_by_hint()
isn't good enough. An unexpected PDUs may be received and fail to be
decoded during Acceptor::step().

Change the code to simply drop unexpected PDUs (as opposed to attempting
to replay the unmatched leftover, which isn't clearly needed)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Przemko Robakowski
dd221bf224
feat: support license caching (#634)
Adds support for license caching by storing the license obtained
from SERVER_UPGRADE_LICENSE message and sending
CLIENT_LICENSE_INFO if a license requested by the server is already
stored in the cache.

Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
2025-01-18 14:34:58 +00:00
Sébastien Duquette
dd249909a8
docs: use CDN URLs instead of the blob storage URLs for Devolutions logo (#631) 2025-01-09 10:06:10 -05:00
Zac Bergquist
36da11c02e
feat(connector): allow clients to specify the x224 nego request data (#580)
The previous code would (correctly) set a cookie containining the
username, but only when using username/password credentials. When
smart card credentials are used, the cookie would always contain
the empty string.
2024-11-19 20:44:40 -05:00
Benoît CORTIER
294af1cc5c style: cargo +nightly fmt 2024-11-20 01:28:31 +09:00
Benoît CORTIER
807eb59b07 refactor: enable clippy::std_instead_of_core lint 2024-11-20 01:28:31 +09:00
Marc-André Lureau
3c503cb2d1 chore: change "default" feature to only enable "core" and "pdu"
Reorganize a bit the dev-dependencies for screenshot/server examples.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-29 21:48:11 +09:00
Marc-André Lureau
5381b24444 docs: use Devolutions logo
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-29 19:14:20 +09:00
Marc-André Lureau
bf56a7fc80 docs: use README.md for crates lib.rs doc
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-29 19:14:20 +09:00
Marc-André Lureau
4ef36bf5fa docs: add project links to READMEs for consistency
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-29 19:14:20 +09:00
Marc-André Lureau
fa10362106 refactor(async): impl FramedWrite for Frame
This allows to specialize functions that want to simply write_all() with
a Framed.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-09-23 02:25:59 -04:00
irvingouj @ Devolutions
c04bc2d29c
feat(web): allow dynamic resize for web (#550) 2024-09-19 19:08:45 +00:00
Marc-André Lureau
402ffd56c9 refactor(core): move Encode/Decode to core
ironrdp-pdu contains lots of code that we don’t actually need in other crates such as the virtual channels.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
23bc008d65 refactor(core): move {Decode/Encode}Error
& document the public API.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
b4c4b7ef58 chore(pdu): introduce DecodeResult
Introduce a new error type to split encoding/decoding errors as well as
helper traits and functions to ease porting and conventions.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
278a0506c2 refactor(core): move WriteBuf
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
76b0518afa refactor(core): move IntoOwned
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
4154ceea05 refactor(core): move impl_as_any macros
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
e54fa5f4c8 feat(async): teach single_sequence_step() to keep unmatched PDUs
The caller can gather the unmatching/unexpected PDUs as necessary.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-19 06:44:15 -04:00
Marc-André Lureau
98e7dbab99 refactor(async): let read_by_hint() optionally accumulate unmatched bytes
The caller can then decide what to do.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-19 06:44:15 -04:00
Marc-André Lureau
46b703e813 refactor(pdu): return whether hint::find_size() matches the expected hint
When compiled in debug mode, the code checks the expected Action hint.
But in release mode, no checks are done and the it will have to fail
later.

Instead, return whether the PDU is matching the hint, so the caller can
decide what to do in this case.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-19 06:44:15 -04:00
Marc-André Lureau
7646c3cddb chore(web): silence rust-analyzer warnings
#[wasm_bindgen] creates annoying warnings, such as:

 rust-analyzer: Function `__wasm_bindgen_generated_Session_apply_inputs` should have snake_case name, e.g. `__wasm_bindgen_generated_session_apply_inputs`

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-19 06:44:15 -04:00
Marc-André Lureau
c97b1f90bc chore(web): bump softbuffer to 0.4.5
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-11 22:26:02 -04:00
dependabot[bot]
e58aa7111d
build(deps): bump gloo-net from 0.5.0 to 0.6.0 (#520) 2024-08-06 00:14:21 -04:00