Don't fail deliver for 400 Bad Request

This commit is contained in:
asonix 2022-11-08 13:50:08 -06:00
parent ea699a7978
commit fac40c1853

View file

@ -1,6 +1,9 @@
use crate::error::{Error, ErrorKind}; use crate::error::{Error, ErrorKind};
use activitystreams::iri_string::types::IriString; use activitystreams::iri_string::types::IriString;
use actix_web::{http::header::Date, web::Bytes}; use actix_web::{
http::{header::Date, StatusCode},
web::Bytes,
};
use awc::Client; use awc::Client;
use dashmap::DashMap; use dashmap::DashMap;
use http_signature_normalization_actix::prelude::*; use http_signature_normalization_actix::prelude::*;
@ -392,16 +395,19 @@ impl Requests {
self.reset_err(); self.reset_err();
if !res.status().is_success() { if !res.status().is_success() {
if let Ok(bytes) = res.body().await { // Bad Request means the server didn't understand our activity - that's fine
if let Ok(s) = String::from_utf8(bytes.as_ref().to_vec()) { if res.status() != StatusCode::BAD_REQUEST {
if !s.is_empty() { if let Ok(bytes) = res.body().await {
debug!("Response from {}, {}", inbox.as_str(), s); if let Ok(s) = String::from_utf8(bytes.as_ref().to_vec()) {
if !s.is_empty() {
warn!("Response from {}, {}", inbox.as_str(), s);
}
} }
} }
}
self.breakers.fail(&inbox); self.breakers.fail(&inbox);
return Err(ErrorKind::Status(inbox.to_string(), res.status()).into()); return Err(ErrorKind::Status(inbox.to_string(), res.status()).into());
}
} }
self.breakers.succeed(&inbox); self.breakers.succeed(&inbox);