mesh-cli: forward the line's standard input to the controller, with the line alone
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/a-terminal-line-takes-standard-input stopped: a member was stopped
mesh/merge-gate pass: builds mesh-host → ace, g14, novox, shanks; no bus step; every machine composes with the change as it did without (4 of 4 compose)
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/a-terminal-line-takes-standard-input stopped: a member was stopped
A secret given at the controller's terminal through mesh-cli (secret accept … --from -) never reached the line: the engine forwarded the words only. It now forwards what mesh-cli's standard input held (at most 64 KiB, the SDK's bound) on the same core request to the controller, says it nowhere, and sends none with a follow of the same call. mesh-sdk moves to f047d0a.
This commit is contained in:
@@ -41,6 +41,10 @@ type Asked struct {
|
||||
// a process another account's session started. Only a login session is a person at a terminal (novox/hq ADR
|
||||
// 0272): the controller makes nothing else the terminal.
|
||||
Session string `json:"session,omitempty"`
|
||||
// Stdin is what mesh-cli's standard input held, at most cli.MaxStdin: carried to the controller with the line
|
||||
// and nowhere else. The engine says it in no journal, keeps it in no state, and never sends it again: a follow
|
||||
// carries none. The controller gives it to a line that runs as its terminal alone.
|
||||
Stdin []byte `json:"stdin,omitempty"`
|
||||
}
|
||||
|
||||
// Forward asks the controller and follows the line to what came of it (AskTheController): what it printed, that
|
||||
@@ -279,5 +283,5 @@ func answer(ctx context.Context, conn *net.UnixConn, held *slots, forward Forwar
|
||||
_ = conn.SetDeadline(time.Now().Add(cli.AskWithin))
|
||||
asking, cancel := context.WithTimeout(ctx, cli.AskWithin-30*time.Second)
|
||||
defer cancel()
|
||||
reply(forward(asking, Asked{Line: req.Line, Account: account, UID: uid, Session: session}))
|
||||
reply(forward(asking, Asked{Line: req.Line, Account: account, UID: uid, Session: session, Stdin: req.Stdin}))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user