bxcore, brokerd, loopd: an invalid-arguments denial says why
Co-Authored-By: ornith-1.5-35b-a3b <agent@wntrmute.dev>
This commit is contained in:
@@ -251,7 +251,10 @@ pub fn handle(mut stream: UnixStream, broker: &Broker) {
|
||||
let now = Timestamp::now();
|
||||
let grants = broker.grants();
|
||||
let answer = match broker.ledger().decide(request, &grants, now) {
|
||||
Decided::Denied(reason) => Some(ToolResponse::Denied { reason }), // 3a. denied
|
||||
Decided::Denied(denial) => Some(ToolResponse::Denied {
|
||||
reason: denial.reason,
|
||||
detail: denial.detail,
|
||||
}), // 3a. denied
|
||||
Decided::Allowed { decision, seq } => Some(run(broker, decision, seq)), // 3b. allowed
|
||||
Decided::Ask { ask, seq, state } => {
|
||||
pending(&mut stream, broker, id, ask, seq, state, now) // 3c. ask
|
||||
@@ -334,7 +337,10 @@ fn pending(
|
||||
// 5. Answer from the verdict.
|
||||
match outcome {
|
||||
Ok(verdict) => match verdict {
|
||||
Verdict::Denied(reason) => Some(ToolResponse::Denied { reason }),
|
||||
Verdict::Denied(reason) => Some(ToolResponse::Denied {
|
||||
reason,
|
||||
detail: None,
|
||||
}),
|
||||
Verdict::Run(decision) => {
|
||||
let decision = *decision;
|
||||
if !alive(stream) {
|
||||
@@ -350,6 +356,9 @@ fn pending(
|
||||
Some(run(broker, decision, seq))
|
||||
}
|
||||
},
|
||||
Err(reason) => Some(ToolResponse::Denied { reason }),
|
||||
Err(reason) => Some(ToolResponse::Denied {
|
||||
reason,
|
||||
detail: None,
|
||||
}),
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user