Repository navigation
contract, connector: a listener's protocol offer is the entry's offer for its accepting side (INBOUND-LISTEN) - #1019
Merged
Merged
Conversation
… for its accepting side (INBOUND-LISTEN) LocateIn gains a pre-tag tail, `accept: u32` and `_accept_reserved: u32` (152 -> 160): 1 asks the framer for the protocol offer (ALPN) an ACCEPTING listener it frames makes, the target possibly empty; 0 is the dial offer, unchanged for every caller (all build LocateIn zeroed). The ALPN offer is the framer's on both sides (BUSBAR-1.6.0.md l.477-478), and the two differ: v1.5.5's client offered h2,http/1.1, its listener http/1.1 alone (v1.5.5 crates/busbar/src/tls.rs:242). ARCHITECT ruling 2026-10-14: hard-coding the offer in the root is rejected. The connector reads it through framer::accept_offer, and Connector::listen secures a need's listener with that offer, never the entry's registered dial offer; an entry that refuses the question offers nothing. RED: connector_tests a_listener_offers_the_entrys_accept_offer_not_its_dial_offer names a field and a function that did not exist, and a TLS client offering h2,http/1.1 to the listener agrees http/1.1. The layout golden, its record list and the C header move with the append; the hunks are disjoint from #1012's EmitIn append.
This was referenced Oct 14, 2026
Collaborator
Author
|
Rule 20 note from #1030 (row 155): disjoint hunks in busbar_plugin.h, abi-layout.golden, layout_golden.rs (OnPieceOut gains |
MattJackson
added a commit
that referenced
this pull request
Oct 14, 2026
… appended declared_len at zero compile/clippy/test were red on busbar-transport-ws (pinned f8ba71d), whose door builds a FramePiece literal field by field and so missed the appended declared_len. The pin moves to 140691cf2e, f8ba71d plus one change: the literal ends in `..std::mem::zeroed()` (FramePiece is plain repr(C) integers; zero is every field's absent value), so this and any later append compile. The framer states no declared length. ws's own dev carries the off-line door changes (#1012/#1019) and repins with them.
…e (neutral protocol ids x-one/x-two); law0 busbar-core-connector x transport back to its 68
… proofs (listen_tests), reusing their client alias and certificate helpers, so busbar-core-connector names no new transport instance (law0 x transport stays at its 68)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is the INBOUND-LISTEN piece of step 36, per the ARCHITECT ruling of 2026-10-14. That ruling rejected hard-coding the listener's offer in the root.
The append
LocateIngains a pre-tag tail:accept: u32and_accept_reserved: u32. Its size goes from 152 to 160.accept = 1: asks the framer for the protocol offer (ALPN) that an ACCEPTING listener it frames makes. The target may be empty.accept = 0: the dial offer, unchanged. Every caller buildsLocateInzeroed, so no existing caller changes.Why
The ALPN offer is the framer's on both sides (
BUSBAR-1.6.0.mdl.477-478), but the two sides differ. v1.5.5's client offeredh2, http/1.1, while its listener offeredhttp/1.1alone (v1.5.5crates/busbar/src/tls.rs:242).What the connector does with it
framer::accept_offerreads the accepting side's offer.Connector::listensecures a need's listener with that offer, never with the entry's registered dial offer.RED
connector_tests::a_listener_offers_the_entrys_accept_offer_not_its_dial_offerchecks three things:h2, http/1.1to the need's listener agrees onhttp/1.1;Other files
abi-header --writediff judges it.git merge-treeshows the two merging cleanly.