Skip to content

z85c30: the TCP serial console takes more than one client - #266

Merged
techomancer merged 1 commit into
techomancer:mainfrom
atomchild411:serial-multi-client
Oct 21, 2026
Merged

techomancer merged 1 commit into
techomancer:mainfrom
atomchild411:serial-multi-client

Conversation

@atomchild411

Copy link
Copy Markdown
Collaborator

z85c30: the TCP serial console takes more than one client

A second client connecting to a serial port (8880/8881) waited in the listen queue until the first one hung up, so a script could not reach a console someone was already watching (or the other way round).

The change

The TCP backend now keeps a list of connections. Every client sees all output and may type; each has its own telnet negotiation and filter, and a client that goes away is dropped without disturbing the others.

Tests

  • Unit test: a_tcp_console_takes_more_than_one_client: two clients both get the handshake and every byte the guest sends, and what either types arrives, with telnet's own commands stripped.
  • cargo test --lib: all pass, apart from the two tests that fail the same way on main here. Built in the three CI configurations.
  • Booted an Indy windowed: with a script logged in on the console, a second client saw the same output, and what it typed reached the shell.

🤖 Generated with Claude Code

A second client waited in the listen queue until the first hung up, so a
script could not reach a console someone was watching. Every connected
client now sees the output and may type, with telnet's own commands
filtered per client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@techomancer
techomancer merged commit 3e73186 into techomancer:main Oct 21, 2026
7 checks passed
belikh added a commit to irix7/iris that referenced this pull request Oct 24, 2026
Upstream's README carries the whole contract: small PRs, one fix per PR,
preferably one commit, bisectable. Observed practice matches it — of the
last 25 merged PRs nearly all are a single commit touching one to four
files, median merge latency is hours, and almost nothing is closed
unmerged.

Add the policy, the one-commit consequence for each unit, and the
coordination notes for the contributors whose work these PRs build on
(techomancer#266, techomancer#265, techomancer#279/techomancer#283, techomancer#261, techomancer#253).

Credit: none of this is derived from upstream; the analysis is the
fork's.
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.

2 participants