Skip to content

Channel improvements#25

Merged
mkj merged 6 commits intomainfrom
matt/channelio
Jun 25, 2025
Merged

Channel improvements#25
mkj merged 6 commits intomainfrom
matt/channelio

Conversation

@mkj
Copy link
Copy Markdown
Owner

@mkj mkj commented Jun 25, 2025

No description provided.

mkj added 6 commits June 20, 2025 23:48
It's limited to u8 on Linux waitpid, not i32.
Return ExitCode from sunsetc main() so that destructors run.
Flush log on completion.
Wakers are now awoken by Runner, since that knows when the TrafOut or
Kex (TODO) are ready for channel output. This fixes a hang where
channels wouldn't get woken for write once SSH session data has been
written out.

Async inputs that don't have a live ChanIn or ChanInOut will be
discarded, with refcounting to keep track of live instances.

All in/out wakers are woken on close.

There's some work towards removing functions in Channels and calling
Channel functions directly from Runner (using from_handle_mut()), though
more needs to be done in future commits.
Previously non-kex packets would be rejected after sending kexinit, but
there could be packets in flight in front of the peer's own kexinit.
Instead wait until the kexinit has been received.
Only KEX (or a few transport) packets are allowed.

Further work is needed to stop channel opens etc, though those aren't
currently a problem for servers.
Got lost when moving to Event.

Fixes: 06992a3 ("Replace Behaviour with Event")
@mkj mkj merged commit 5ff44bb into main Jun 25, 2025
6 checks passed
@mkj mkj deleted the matt/channelio branch June 25, 2025 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant