Commit graph

69 commits

Author SHA1 Message Date
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
abcc42e01f fix(rdpsnd): correct TrainingPdu wPackSize field
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-08 13:35:44 +02:00
Benoît CORTIER
97f4f25813 style: run cargo +nightly fmt 2025-03-13 11:03:10 +01:00
Marc-André Lureau
7cb1ac99d1 refactor(pdu)!: remove RfxChannelWidth and RfxChannelHeight structs
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-03-12 21:34:47 +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
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
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
Benoît Cortier
0b5f691c1e
chore(xtask): update binary dependencies (#663) 2025-02-05 18:12:10 -05:00
Vladyslav Nikonov
8b2ba27f45
chore: remove now-proto-pdu crate (#633) 2025-01-16 10:00:18 +00: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
Benoît CORTIER
d9b69c68f9 build: enable unused_crate_dependencies lint
All reported cases were actually unused dependencies.
2024-11-20 01:28:31 +09:00
Marc-André Lureau
6dfd659099 refactor(graphics): use fixed-size slices in to_64x64_ycbcr_tile
In theory, this could help the compiler to unroll loops.. doesn't seem
to be the case though, but it allows to drop the assert_eq!() at least.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-11-05 20:16:43 +09: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
ab5760d47b refactor(pdu): add X224 newtype
This allows to implement external Encode/Decode traits in following change.

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
1ef9dd3f37 refactor(pdu): rename PduEncode->Encode PduDecode->Decode
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
00d4750e4b refactor(pdu): rename InvalidMessage->InvalidField
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Marc-André Lureau
7419467ad3 refactor(core): move cursor.rs
Add documentation.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-30 00:05:16 -04:00
Vladyslav Nikonov
a0b82f1921
feat(now-proto): initial NOW spec implementation (#509) 2024-08-04 23:06:16 -04:00
Marc-André Lureau
ae78520681 fix(testsuite-core): fix clippy::unnecessary-box-returns
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
790b399718 fix: clippy::cloned-instead-of-copied
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
da2870506f fix: clippy cast warnings
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
51ccf555e6 fix: unused-crate-dependencies
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
934177d772 fix: unreachable pub items
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
5945d24df2 fix: elided lifetimes warnings
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
d36391c164 fix(testsuite): fix clippy::useless_conversion
And fix the test.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Benoît Cortier
cae242bbe4
refactor: follow up to PR #467 (#491) 2024-07-10 08:41:08 -04:00
Marc-André Lureau
9d11111129 feat(rdpsnd): implement PDUs
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-09 21:55:01 -04:00
Isaiah Becker-Mayer
fd105e4b56
feat(displaycontrol): hook up resize for ironrdp-client crate (#430) 2024-04-29 22:20:02 +03:00
Marc-Andre Lureau
c8f6fe5181
feat: RemoteFX encoder (#379) 2024-04-02 11:38:38 -04:00
Isaiah Becker-Mayer
de25134007
feat: add a callback mechanism to the DisplayControlClient (#424) 2024-04-02 05:13:19 -04:00
Isaiah Becker-Mayer
1e53669b11
feat: add support for dydynvc (#419) 2024-03-29 04:18:12 -04:00
Marc-André Lureau
31feec5b79 refactor(pdu): convert ShareDataHeader and ShareControl to PduEncode/Decode 2024-03-21 02:43:50 +09:00
Marc-André Lureau
5d0f6ce045 refactor(pdu): convert BER-related PDU to PduEncode/Decode
This patch could be split if we introduce a legacy module for the
transition of the few PDUs.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09:00
Marc-André Lureau
a2a4c89e4f refactor(pdu): convert license exchange PDUs to PduEncode/Decode 2024-03-21 02:43:50 +09:00
Marc-André Lureau
9faf1ff08d refactor(pdu): convert input module to PduEncode/Decode
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09:00
Marc-André Lureau
e88c9af70d refactor(pdu): convert GCC module to PduEncode/Decode
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09:00
Marc-André Lureau
b0dd0677a4 refactor(dvc): switch to PduEncode/Decode
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09:00
Marc-André Lureau
a45deebc98 refactor(pdu): convert RDP module to PduEncode/Decode
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09:00
Benoît Cortier
e92d8c3e17
test: regression test case for cliprdr_format target (#405) 2024-03-08 15:44:12 +00:00
Vladyslav Nikonov
d53a5321b2
feat(displaycontrol): dynamic resolution PDUs (#366) 2024-02-14 19:32:02 +02:00
Benoît Cortier
0954f42519
fix(connector): better security protocol selection (#328)
Replace the bitflag-based config API with a boolean-based one:

- `enable_tls`: set the PROTOCOL_SSL flag
- `enable_credssp`: set the PROTOCOL_HYBRID and PROTOCOL_HYBRID_EX flags

The `--security_protocol` argument was removed from the native client
CLI, and instead it’s possible to disable specific protocols with
`--no-tls` and `--no-credssp`. By default, both protocols are
enabled for maximum compatibility with most RDP servers. We may change
the defaults in the future.
2023-12-08 15:59:48 +00:00
Benoît Cortier
4506e1b185
build: bump rust toolchain to 1.74.0 (#322) 2023-12-05 19:55:51 -05:00
Isaiah Becker-Mayer
6588f7cdc7
refactor: function! macro for error context (#317)
Deletes any now-superfluous `const NAME: &'static str = "name";` definitions.

This gives a path to the function that is being called, which is useful
for debugging errors. It replaces the necessity of implementing
`const NAME: &'static str = "name";` in every function that wants to
use these macros (or coming up with a custom context).
2023-12-05 18:44:17 +00:00
Vladyslav Nikonov
5b210f2fc7
feat(web): support for hardware cursor (#290)
Adds support for native cursors for `IronRDP-web`.

- Uses CSS `cursor` property to set the custom cursor (which we encode as Base64 data URL
- Software rendering is still in place and could be enabled via the config flag
- "Inverted colors" are implemented for native cursors as a "checkerboard pattern" (As in FreeRDP)
- Native cursors have size **limitation** - _Any remote cursor bigger than 32x32 will be scaled down._ This is due to browser limitations described [here](https://chromestatus.com/feature/5825971391299584) and [here](https://bugs.chromium.org/p/chromium/issues/detail?id=880863)

Closes #250
2023-11-21 17:20:03 +00:00
Benoît CORTIER
162695534f refactor(cliprdr): consolidate HTML conversions
- `cf_html_to_plain_html` does not allocate anymore
- `plain_html_to_cf_html` returns a `String` (CF_HTML payload is UTF-8)
2023-11-20 09:39:36 -05:00