From 76635eb3363f40ce2b1ce2250a0c7ae685d66c4e Mon Sep 17 00:00:00 2001 From: Thomas Eizinger Date: Fri, 26 Jan 2024 13:58:17 -0800 Subject: [PATCH] feat(relay): print a log for error responses we send to the client (#3413) --- rust/relay/src/server.rs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/rust/relay/src/server.rs b/rust/relay/src/server.rs index f6e4163f6..24e1d0fac 100644 --- a/rust/relay/src/server.rs +++ b/rust/relay/src/server.rs @@ -281,19 +281,23 @@ where } fn queue_error_response(&mut self, sender: SocketAddr, mut error_response: Message) { + let Some(error) = error_response.get_attribute::().cloned() else { + debug_assert!(false, "Error response without an `ErrorCode`"); + return; + }; + // In case of a 401 or 438 response, attach a realm and nonce. - if error_response - .get_attribute::() - .map_or(false, |error| { - error == &ErrorCode::from(Unauthorized) || error == &ErrorCode::from(StaleNonce) - }) - { + if error == ErrorCode::from(Unauthorized) || error == ErrorCode::from(StaleNonce) { let new_nonce = Uuid::from_u128(self.rng.gen()); self.add_nonce(new_nonce); error_response.add_attribute(Nonce::new(new_nonce.to_string()).unwrap()); error_response.add_attribute((*FIREZONE).clone()); + + tracing::debug!(target: "relay", "{} failed: {}", error_response.method(), error.reason_phrase()); + } else { + tracing::warn!(target: "relay", "{} failed: {}", error_response.method(), error.reason_phrase()); } self.send_message(error_response, sender);