nx_tools_denial_observation_candidate_t316.nx source
↩ module page · 16 lines · 894 B
1// Isolated candidate: merge functions into nx_tools_api after review; no production journal used by gate.
2import "nx_tools_api.nx"
3func ta_denial_observe_to(path:*u8,tool:*u8,n:i64,decision:i64,begin:i64,end:i64)->i64 {
4 if decision>=0||n<=0{return -1}
5 if ta_timing_field_ok(tool,n)!=1{return -1}
6 ta_timing_bind(tool,n)
7 let elapsed:i64=ta_timing_elapsed(begin,end)
8 var duration:i64=TT_UNKNOWN
9 if elapsed>=0{duration=elapsed/1000}
10 let call_rc:i64=ta_actlog_x_to(path,tool,n,"authorization","denied",decision,0,duration," dispatched=false decision_domain=capability")
11 let timing_rc:i64=ta_timing_emit_to(path,tool,n,"authorization","authorization_denied",TT_UNKNOWN,begin,end,decision,0)
12 if call_rc<0{return call_rc};return timing_rc
13}
14func ta_denial_observe(tool:*u8,n:i64,decision:i64)->i64 {
15 return ta_denial_observe_to(0 as *u8,tool,n,decision,tt_handle_begin,ta_timing_now_us())
16}