(b: &[u8])
| 413 | } |
| 414 | |
| 415 | async fn _handle_pr_stop_req(b: &[u8]) -> Result<backend::PRStopAnsPayload> { |
| 416 | let pl: backend::PRStopReqPayload = serde_json::from_slice(b)?; |
| 417 | let dev_eui = EUI64::from_slice(&pl.dev_eui)?; |
| 418 | |
| 419 | let sess_ids = passive_roaming::get_session_ids_for_dev_eui(dev_eui).await?; |
| 420 | if sess_ids.is_empty() { |
| 421 | return Ok(backend::PRStopAnsPayload { |
| 422 | base: pl |
| 423 | .base |
| 424 | .to_base_payload_result(backend::ResultCode::UnknownDevEUI, ""), |
| 425 | }); |
| 426 | } |
| 427 | |
| 428 | for sess_id in sess_ids { |
| 429 | if let Err(e) = passive_roaming::delete(sess_id).await { |
| 430 | error!(error = %e.full(), "Delete passive-roaming device-session error"); |
| 431 | } |
| 432 | } |
| 433 | |
| 434 | Ok(backend::PRStopAnsPayload { |
| 435 | base: pl |
| 436 | .base |
| 437 | .to_base_payload_result(backend::ResultCode::Success, ""), |
| 438 | }) |
| 439 | } |
| 440 | |
| 441 | async fn handle_xmit_data_req( |
| 442 | sender_client: Arc<backend::Client>, |
no test coverage detected