Commit graph

60 commits

Author SHA1 Message Date
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
19d6b1ea83 refactor: fix new clippy warnings 2025-03-13 11:03:10 +01:00
devolutionsbot
b19008c029
chore(release): prepare for publishing (#699) 2025-03-13 09:06:30 +00:00
devolutionsbot
f2c8482ba6
build: bump ironrdp-pdu (#698) 2025-03-12 20:59:54 +00:00
devolutionsbot
92dd927ec2
chore(release): prepare for publishing (#696) 2025-03-12 16:40:47 +00: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
devolutionsbot
e6d6e9d8a7
chore(release): prepare for publishing (#628) 2025-01-28 23:24:35 +00: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
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
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
devolutionsbot
97ef9f0acb
chore(release): prepare for publishing (#611) 2024-12-14 14:32:28 +00:00
Benoît Cortier
0c10367ebc
chore: symlinks to license files in packages (#604)
Add symlinks to the license files in crates that we are publishing on
crates.io.
2024-12-11 08:13:26 -05:00
Benoît Cortier
755738ff9c
chore: prepare release (#598)
Crates to release:

- ironrdp-acceptor -> 0.2.0
- ironrdp-async -> 0.2.0
- ironrdp-blocking -> 0.2.0
- ironrdp-session -> 0.2.0
- ironrdp-server -> 0.3.0
- ironrdp -> 0.7.0
2024-12-06 09:51:14 +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
Marc-Andre Lureau
37cecc0a16
fix(server): pick one selected protocol (#570)
The spec says we should have "the" selected protocol, and mstsc expects that.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-11-04 13:50:07 +00:00
Marc-André Lureau
5ea39d05af fix(acceptor): raise a credssp error when no creds
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-30 15:48:24 +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-Andre Lureau
87014d4afb
fix(acceptor): raise credssp error to caller (#563)
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Co-authored-by: Benoît Cortier <bcortier@proton.me>
2024-10-28 12:19:33 +00:00
Benoît CORTIER
42cc02d6f6 docs(server): slightly adjust comments 2024-10-25 16:04:07 +09:00
Marc-André Lureau
4c4d93bc6f feat(acceptor): add CredSSP support
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-25 13:19:58 +09:00
Marc-André Lureau
86bc10bf95 feat(server): allow setting credentials
Modify Acceptor to take optionally Credentials at construct time.

The credentials can be changed via ServerEvent::SetCredentials.

Unauthorized connections are no longer accepted.

Note that I couldn't find a nice way to return an invalid logon with RDP
standard security. The next commits will add HYBRID support to improve
the situation.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-10-25 13:19:58 +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
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
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
09ae0d043d feat(server): collect and postpone incoming PDUs during reactivation
The client may have pending messages while the activation-reactivation
sequence is ongoing. Let's collect them in this case and restore them
after successfull reconnection.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-19 06:44:15 -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
Benoît Cortier
a6d6c2728b
refactor: follow up to PR 530 (#531) 2024-08-14 07:30:51 -04:00
Marc-André Lureau
2a7e0d9d7e feat(acceptor): add new_deactivation_reactivation() constructor
Teach the acceptor to resume from the CapabilitiesSendServer state.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-08-14 00:37:06 -04:00
Marc-André Lureau
7307148cb8 chore: use workspace lints
Among other things, this allows tools and LSP to pick up our settings.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Marc-André Lureau
adf2797ef7 fix: unnecessary qualification
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-07-24 04:35:32 -04:00
Isaiah Becker-Mayer
5c42ade597
fix: make license parsing and protocol more resilient (#436)
* Converts `BlobType` to a resilient parsing style
* Makes the licensing parsing and handling more resilient to make it compatible with xrdp
2024-04-25 08:23:20 +03:00
Isaiah Becker-Mayer
e3aa8bcf0d
feat: support for Server Deactivate All PDU (#418) 2024-03-27 02:39:35 -04:00
Marc-André Lureau
282731bfe8 refactor(acceptor): drop legacy::encode_send_data_indication
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-03-21 02:43:50 +09: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
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
Mihnea Buzatu
5fd5ce946e
feat: add support for skip channel join flag (#373) 2024-02-28 08:39:50 -05:00
Marc-André Lureau
cf407e389b refactor(acceptor): take SvcServerProcessor
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-01-15 13:21:51 +09:00
Marc-André Lureau
090440a45d refactor: rename StaticVirtualChannelProcessor->SvcProcessor
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2024-01-15 13:21:51 +09:00
Marc-André Lureau
8776ec97c7 feat(acceptor): add basic static channel handling
Only accept channels we have attached.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2023-12-05 11:37:18 -05:00
Marc-André Lureau
ad20697051 feat(acceptor): add {io,user}_channel_id in AcceptorResult
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
2023-12-05 11:37:18 -05:00