Commit graph

653 commits

Author SHA1 Message Date
Marc-André Lureau
7f08a098e2 refactor(pdu): drop legacy trait
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-03-04 16:08:55 +01:00
Marc-André Lureau
81984f9377 refactor(pdu): move rfx to Encode/Decode traits
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-03-04 16:08:55 +01:00
Gyusun Yeom
6b4af94071
fix(pdu): make AddressFamily parsing resilient (#672)
Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
2025-03-04 13:47:38 +00:00
Marc-André Lureau
5555c7b9dd refactor(session): decode RFX to RgbX
Decode to the desired format, instead of converting from BgrX to the
DecodedImage format (typically RgbA) when applying the tile / drawing.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
Marc-André Lureau
bb41724147 test: use the XRGB sample from the spec
It's unclear where the RGB_BUFFER was coming from, it's better to use
the one from the spec, like the YCBCR buffers.

Unfortunately, we don't match with the reference data after conversion.
This doesn't seem a big issue in practice.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
Marc-André Lureau
d7ba22fbed refactor(graphics): drop now unused yuv/rgb code
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
Marc-André Lureau
5f1c44027a feat(graphics): replace hand-coded yuv/rgb with yuvutils
cargo bench:
to_ycbcr                time:   [2.2988 µs 2.3251 µs 2.3517 µs]
                        change: [-83.643% -83.534% -83.421%] (p = 0.00 < 0.05)
                        Performance has improved.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
Marc-André Lureau
05c0c97262 graphics: add yuvutils-rs dependency
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
Marc-André Lureau
62d809152a refactor(graphics): use 0xFF for opaque alpha
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-02-09 18:09:15 +01:00
devolutionsbot
de86e2b14a
chore(release): prepare for publishing (#664) 2025-02-06 21:44:04 +00:00
Benoît Cortier
0b5f691c1e
chore(xtask): update binary dependencies (#663) 2025-02-05 18:12:10 -05:00
Marc-Andre Lureau
ccf6348270
feat(rdpsnd): add Opus audio client decoding (#661)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
2025-02-05 15:47:31 +00:00
devolutionsbot
11b92bfcbd
chore(release): prepare for publishing (#658) 2025-02-03 17:13:59 -05:00
Alex Yusiuk
9b2926ea12
fix(cliprdr-native): handle WM_ACTIVATEAPP in clipboard_subproc (#657)
This PR adds handling of `WM_ACTIVATEAPP` in `clipboard_subproc`.
Previously, the function handled only `WM_ACTIVATE`.
2025-02-03 13:38:31 -05:00
devolutionsbot
2a5e783c43
chore(release): prepare for publishing (#656) 2025-01-31 04:22:55 +00:00
Zac Bergquist
c8597733fe
fix(connector): decrease log verbosity for license exchange (#655) 2025-01-30 18:15:31 -05:00
devolutionsbot
e6d6e9d8a7
chore(release): prepare for publishing (#628) 2025-01-28 23:24:35 +00:00
Marc-Andre Lureau
f14f3115d4
fix(connector): make LicenseCache RefUnwindSafe (#653)
This fixes commit dd221bf ("feat: support license caching (#634)") and
semver-checks is now happy:

type ProcessorOutput is no longer UnwindSafe, in
/tmp/.tmppi9kAf/IronRDP/crates/ironrdp-session/src/x224/mod.rs:15

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Changelog: ignore
2025-01-28 17:10:41 -05:00
dependabot[bot]
ff6c6e875b
build(deps): bump tokio from 1.42.0 to 1.43.0 (#650) 2025-01-28 08:26:37 -05:00
dependabot[bot]
ef33e14133
build(deps): bump uuid from 1.12.0 to 1.12.1 in the patch group (#645) 2025-01-28 04:57:09 -05:00
Marc-Andre Lureau
fa353765af
feat(example): encode audio with Opus (#643)
Demonstrates Opus audio codec support (and also fixes sine wave phase)

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 16:22:15 -05:00
Marc-Andre Lureau
a6c36511f6
feat(server): add volume support (#641)
Add server messages and API to support setting client volume.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 08:10:15 -05:00
Marc-André Lureau
0f9877ad39 fix(server): check client size
It's problematic when the client didn't resize, as we send bitmap
updates that don't fit. The client will likely drop the connection.
Let's have a warning for this case in the server.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
e21c5568a4 refactor(server): factor out deactivate_reactivate()
This makes code slightly nicer and allow further code reuse.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
a0fccf8d1a feat(server): advertize Bitmap::desktopResizeFlag
This makes freerdp keep the flag up and handle desktop
resize/deactivation-reactivation. It should be okay to advertize,
if the server doesn't resize anyway, I guess.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
7c72a9f9bb fix(server): allow to use basic RDP/no security
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
98b77b5ee5 fix(examples): fix server deps
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
1a36fd3669 fix(examples): used import from std instead of core
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
c26fab4a45 test(extra): add some client-server tests
This is just some basic tests, but hopefully it will grow to be more
friendly and cover more behaviours.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
82c7c2f5b0 fix(server): do not restart static channels on reactivation
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
c4587b537c fix(server): reattach existing channels
I couldn't find any explicit behaviour described in the specification,
but apparently, we must just keep the channel state as they were during
reactivation. This fixes various state issues during client resize.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05: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
Marc-André Lureau
ab8a87d942 feat(dvc): add CreationStatus::NOT_FOUND
For completeness, this error is used by FreeRDP.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
Marc-André Lureau
265b661b81 feat(dvc): some debug statement on invalid channel state
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-01-27 07:35:36 -05:00
dependabot[bot]
059d775816
build(deps): bump uuid from 1.11.0 to 1.12.0 (#638) 2025-01-20 18:37:04 -05:00
dependabot[bot]
a16a131e43
build(deps): bump picky from 7.0.0-rc.11 to 7.0.0-rc.12 (#639) 2025-01-20 18:36:32 -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
Vladyslav Nikonov
8b2ba27f45
chore: remove now-proto-pdu crate (#633) 2025-01-16 10:00:18 +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
Marc-Andre Lureau
a0d32d7245
fix: fix commit 9198284263 (#626)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Changelog: ignore
2025-01-06 09:29:30 -05:00
devolutionsbot
9292988a88
chore(release): prepare for publishing (#624)
Co-authored-by: Benoît Cortier <3809077+CBenoit@users.noreply.github.com>
2024-12-17 18:18:10 +00:00
Marc-Andre Lureau
9198284263
feat(server): make TlsIdentityCtx accept PEM files (#623)
This is in general more convenient than DER files.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-12-17 10:50:39 -05:00
devolutionsbot
114098b673
chore(release): prepare for publishing (#621) 2024-12-16 11:24:01 +00:00
Benoît Cortier
9757167df5
chore(release): prepare for publishing (#620)
- ironrdp-cliprdr-format
- ironrdp-futures
- ironrdp-rdcleanpath
- ironrdp-rdpdr-native
2024-12-16 08:24:47 +00:00
Benoît Cortier
cff5c1a59c
docs(ironrdp): inline documentation for re-exported items (#619) 2024-12-16 08:19:46 +00:00
Benoît CORTIER
912c27cffe chore(release): prepare for publishing 2024-12-15 12:02:36 -05:00
Benoît Cortier
02c6fd5dfe
docs(ironrdp): fix server example (#616)
The rt-multi-thread feature of tokio is not enabled when compiling the
example alone (without feature unification from other crates of the
workspace).
2024-12-15 08:17:04 -05:00
devolutionsbot
97ef9f0acb
chore(release): prepare for publishing (#611) 2024-12-14 14:32:28 +00:00
Benoît Cortier
a6b694b7b8
refactor(core): rename private macro in cursor module (#612)
This was causing a false-positive in cargo-semver-checks:

- https://github.com/obi1kenobi/cargo-semver-checks/issues/1042
2024-12-13 10:48:02 +02:00
Benoît Cortier
50b848529c
ci(release-crates): use Devolutions/actions-public (#608) 2024-12-12 16:10:22 +00:00