Commit graph

653 commits

Author SHA1 Message Date
irving ou
4376c6cf0b WIP 2025-06-02 11:11:17 -04:00
irving ou
36a6217298 WIP 2025-05-30 12:03:17 -04:00
irving ou
ba4537ced8 fmt 2025-05-29 14:02:32 -04:00
irving ou
43f09e6187 clean up 2025-05-29 14:00:21 -04:00
irving ou
84745e5ef2 clean up 2025-05-29 13:51:45 -04:00
irving ou
9ebe578333 clean up 2025-05-28 17:11:45 -04:00
irving ou
64f4f3cc1a WIP, not working 2025-05-28 15:05:35 -04:00
irving ou
41ad74dbf1 cargo conflict 2025-05-28 15:05:30 -04:00
irving ou
f79954cc87 WIP add PDU support 2025-05-28 15:04:58 -04:00
Benoît Cortier
5e6e4e1627
chore(release): prepare ironrdp-core 0.1.5 (#795) 2025-05-27 12:25:54 -04:00
devolutionsbot
aa6777b56a
chore(release): prepare for publishing (#748) 2025-05-27 15:21:56 +00:00
Benoît CORTIER
5abd9ff8e0 feat(acceptor): make the CredsspSequence type public 2025-05-27 08:48:51 -04:00
Benoît CORTIER
9bc382348d style: run formatter for imports 2025-05-27 08:48:51 -04:00
dependabot[bot]
87ed315bc2
build(deps): bump bitflags from 2.9.0 to 2.9.1 in the patch group across 1 directory (#792) 2025-05-20 01:37:48 -04:00
Marc-André Lureau
3d1762c777 feat(client): add --codecs
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-05-09 12:28:46 +02: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
ce7379be03 refactor(pdu): simplify Codec::decode
No need to special-case codec_properties_len == 0, defer to the decoding
of the properties instead.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-05-09 09:11:45 +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
Benoît Cortier
d995265724
chore: ensure internal crates are not published (#785) 2025-05-07 08:42:22 +00:00
Marc-André Lureau
dd787af5a0 feat(benches): add perfenc
Make some internal APIs publicly visible thanks to "visibility" when
compiling with the "__bench" feature.

("testsuite-core" also learned "__bench", because fast_path.rs is a
shared file)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-29 13:00:07 +02:00
Marc-André Lureau
fcb390140d refactor(server): introduce UpdateEncoderCodecs
This will simplify setting up the UpdateEncoder with further codecs.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-29 13:00:07 +02:00
Benoît Cortier
7b8b207e21
chore(release): prepare for iron-remote-desktop 0.2.0 (#780) 2025-04-25 16:35:07 +00:00
Alex Yusiuk
927eea1707
style(ironrdp-web): improve naming of clipboard variables (#779) 2025-04-25 17:06:33 +02:00
Benoît Cortier
194ed07630
fix(web): improve make_bridge! macro hygiene (#777)
There was still some room for improvement.
2025-04-23 18:19:23 +00:00
Benoît Cortier
24e64d7589
refactor(web): consolidate WASM object constructors as create (#776) 2025-04-23 20:56:11 +03:00
Marc-Andre Lureau
d8ab533463
build(deps): yuvutils renamed to yuv (#774)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-23 09:47:19 -04:00
Marc-André Lureau
fb3769c4a7 feat(server): find & send the damaged tiles
Keep a framebuffer and tile-diff against it, to save from
encoding/sending the same bitmap data regions.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-22 16:16:34 +02:00
Marc-André Lureau
20581bb6f1 feat(graphics): add helper to find diff between images
Add some helper to find "damaged" regions, as 64x64 tiles.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-22 16:16:34 +02:00
Benoît Cortier
cc78b1e3dc
fix(server)!: remove time_warn! from the public API (#773)
This is intended to be an internal macro.
2025-04-22 07:33:12 -04: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
b5bd48c986 docs(iron-remote-desktop): improve README.md 2025-04-22 13:09:56 +02:00
Benoît Cortier
1ff4bfc62c
chore(release): prepare iron-remote-desktop (#766) 2025-04-22 09:30:34 +03: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
Marc-Andre Lureau
806f1d7694
fix(server): use desktop size for RFX channel size (#756) 2025-04-17 08:01:58 +02:00
Zac Bergquist
bdde2c76de
fix(client)!: fix name of client address field (#754) 2025-04-16 04:23:49 -04:00
Benoît Cortier
c09531ef0c
fix(client): handle leftover bytes (#753) 2025-04-15 08:33:17 -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
Marc-André Lureau
184cfd24ae test(server): run the fast_path tests from testsuite-core
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-10 10:21:54 +02:00
Marc-André Lureau
2c7556ba1e refactor(server): make UpdateEncoder::update() an iterator
A single display update can now result in multiple commands / update
code (FastPathUpdate).

The update dispatching and bitmap encoding is now done by the
UpdateEncoder itself.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-10 10:21:54 +02:00
Marc-André Lureau
fde18ad01a refactor(server): make UpdateFragmenter own its data
Trying to share a common buffer creates all sort of complicated lifetime
issues when trying to move the encoding to a 'static handler, or when
implementing iterators. It's not worth it.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-10 10:21:54 +02:00
Marc-André Lureau
f21a6bf7d0 test(server): add fragment test
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-10 10:21:54 +02:00
Marc-André Lureau
5ffeeea3ae refactor(server): move fast-path fragmenter to own unit
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-10 10:21:54 +02:00