Skip to content

Add brokered IPv4 TCP clients - #1109

Open
wdcui wants to merge 2 commits into
uliteboxfrom
wdcui/ulitebox/broker-tcp-clients
Open

Add brokered IPv4 TCP clients#1109
wdcui wants to merge 2 commits into
uliteboxfrom
wdcui/ulitebox/broker-tcp-clients

Conversation

@wdcui

@wdcui wdcui commented Jul 30, 2026

Copy link
Copy Markdown
Member

This PR wires IPv4 TCP client sockets through the broker-owned Linux reactor while keeping descriptor flags, blocking behavior, timeouts, polling, and waiters local to LiteBox. It adds operation-scoped shared-buffer transfers, authoritative local-address and socket-error status, Linux-compatible connect/error/half-close/readiness behavior, and explicit handling for advisory TCP options, stream MSG_TRUNC, and unsupported linger. It also adds syscall-rewriter loopback coverage for blocking and nonblocking I/O, backpressure, poll/epoll, shutdown, names, policy denial, refused connections, and resets.

wdcui added 2 commits July 30, 2026 06:54
Co-authored-by: Copilot <[email protected]>

Copilot-Session: b5a1a347-37a8-4246-8bbc-306590921475
Co-authored-by: Copilot <[email protected]>

Copilot-Session: b5a1a347-37a8-4246-8bbc-306590921475
@github-actions

Copy link
Copy Markdown

🤖 SemverChecks 🤖 ⚠️ Potential breaking API changes detected ⚠️

Click for details
--- failure enum_discriminants_undefined_non_unit_variant: enum's variants no longer have defined discriminants due to non-unit variant ---

Description:
An enum's variants no longer have well-defined discriminant values due to a tuple or struct variant in the enum. This breaks downstream code that accesses discriminants via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.49.0/src/lints/enum_discriminants_undefined_non_unit_variant.ron

Failed in:
  enum ChannelReadError in /home/runner/work/litebox/litebox/litebox/src/net/socket_channel.rs:136
  enum ChannelWriteError in /home/runner/work/litebox/litebox/litebox/src/net/socket_channel.rs:149

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.49.0/src/lints/enum_variant_added.ron

Failed in:
  variant ChannelWriteError:Socket in /home/runner/work/litebox/litebox/litebox/src/net/socket_channel.rs:163
  variant NetworkProxy:BrokerStream in /home/runner/work/litebox/litebox/litebox/src/net/socket_channel.rs:192
  variant ChannelReadError:Socket in /home/runner/work/litebox/litebox/litebox/src/net/socket_channel.rs:144

--- failure enum_missing: pub enum removed or renamed ---

Description:
A publicly-visible enum cannot be imported by its prior path. A `pub use` may have been removed, or the enum itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.49.0/src/lints/enum_missing.ron

Failed in:
  enum litebox_broker_core::socket::SocketOutcome, previously in file /home/runner/work/litebox/litebox/target/semver-checks/git-ulitebox/cca158d5641d6abd9e2a9ebf419af5dc9792277a/litebox_broker_core/src/socket.rs:24

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.49.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field SocketStatusResponse.local_address in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/socket.rs:358
  field SocketStatusResponse.pending_error in /home/runner/work/litebox/litebox/litebox_broker_protocol/src/socket.rs:360

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