Commit graph

30 commits

Author SHA1 Message Date
irving ou
64f4f3cc1a WIP, not working 2025-05-28 15:05:35 -04:00
devolutionsbot
aa6777b56a
chore(release): prepare for publishing (#748) 2025-05-27 15:21:56 +00:00
Marc-Andre Lureau
032c38be92
feat(tokio): add reqwest feature (#734)
Move the client ReqwestNetworkClient to ironrdp-tokio, so other clients
can optionally use the implementation.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2025-04-02 14:59:02 -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
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
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
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
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
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
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
Sandeep Bansal
d8e21b0bd4
fix!: remove dependency on ClientConnector in CredsspSequence (#519) 2024-08-16 13:09:02 -04:00
Marc-Andre Lureau
867d7bfe9d feat(async): re-export bytes dependency whose types appear in API
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-05 10:24:45 -04:00
Isaiah Becker-Mayer
e3aa8bcf0d
feat: support for Server Deactivate All PDU (#418) 2024-03-27 02:39:35 -04: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
8fc213e699
refactor(credssp): follow up to #260 (#287) 2023-11-17 09:50:03 -05:00
irvingouj@Devolutions
5530550ef3
feat(credssp): support for Kerberos (#260)
Issue: ARC-139
Co-authored-by: Benoît Cortier <bcortier@proton.me>
2023-11-17 04:12:13 +00:00
Benoît CORTIER
40740169e0 feat: add new_from_leftover on Framed 2023-10-30 18:24:00 -04:00
Benoît CORTIER
f834305563 refactor(connector): use #[non_exhaustive] on type tokens 2023-10-30 18:24:00 -04:00
Isaiah Becker-Mayer
47bc49b50e
feat: smartcard pin, autologon, GetReaderIconCall and GetReaderIconReturn (#230)
Includes #231
2023-10-20 16:35:19 -04:00
Benoît Cortier
6283e37937
refactor: check for additional lints (#200) 2023-10-02 13:46:05 +03:00
Benoît Cortier
babbd68af5
feat(blocking): initial implementation (#158) 2023-09-11 15:47:26 +00:00
Benoît Cortier
783167f23d
feat: support for both Send and !Send Framed impls (#189)
Using GATs we achieve genericity over Send and Sync marker traits.
The `FramedRead` and `FramedWrite` traits can now be used in both
single-threaded and multi-threaded contexts.
2023-09-05 21:52:52 -04:00
Benoît CORTIER
2938db416b feat: API for custom static virtual channels
Issue: ARC-147
Co-authored-by: Isaiah Becker-Mayer <isaiah@goteleport.com>
2023-08-26 04:37:13 -04:00
Isaiah Becker-Mayer
9b7bad65e5
fix: change read_pdu to return BytesMut (#143) 2023-05-19 09:44:21 -04:00
Benoît CORTIER
cf2287739d refactor: error handling
Base all library errors on `ironrdp_error::Error`, a lightweight and
`no_std`-compatible generic `Error` type.
A custom consumer-defined type (such as `PduErrorKind`) for
domain-specific details is wrapped by this type.
2023-05-15 23:45:22 -04:00
Benoît Cortier
55d11a5000
refactor: clarify project architecture (#123)
> Make the root of the workspace a virtual manifest. It might
> be tempting to put the main crate into the root, but that
> pollutes the root with src/, requires passing --workspace to
> every Cargo command, and adds an exception to an otherwise
> consistent structure.

> Don’t succumb to the temptation to strip common prefix
> from folder names. If each crate is named exactly as the
> folder it lives in, navigation and renames become easier.
> Cargo.tomls of reverse dependencies mention both the folder
> and the crate name, it’s useful when they are exactly the
> same.

Source:
https://matklad.github.io/2021/08/22/large-rust-workspaces.html#Smaller-Tips
2023-05-09 21:00:07 +00:00