mirror of
https://gitlab.computer.surgery/matrix/grapevine.git
synced 2025-12-16 23:31:24 +01:00
Use enums for options to send_request(), add allow_loopback
This commit is contained in:
parent
94d523ebcb
commit
6022d56094
2 changed files with 31 additions and 7 deletions
|
|
@ -134,11 +134,24 @@ impl FedDest {
|
|||
}
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(request, log_error), fields(url))]
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub(crate) enum LogRequestError {
|
||||
Yes,
|
||||
No,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub(crate) enum AllowLoopbackRequests {
|
||||
Yes,
|
||||
No,
|
||||
}
|
||||
|
||||
#[tracing::instrument(skip(request, log_error, allow_loopback), fields(url))]
|
||||
pub(crate) async fn send_request<T>(
|
||||
destination: &ServerName,
|
||||
request: T,
|
||||
log_error: bool,
|
||||
log_error: LogRequestError,
|
||||
allow_loopback: AllowLoopbackRequests,
|
||||
) -> Result<T::IncomingResponse>
|
||||
where
|
||||
T: OutgoingRequest + Debug,
|
||||
|
|
@ -147,7 +160,9 @@ where
|
|||
return Err(Error::BadConfig("Federation is disabled."));
|
||||
}
|
||||
|
||||
if destination == services().globals.server_name() {
|
||||
if destination == services().globals.server_name()
|
||||
&& allow_loopback == AllowLoopbackRequests::No
|
||||
{
|
||||
return Err(Error::bad_config(
|
||||
"Won't send federation request to ourselves",
|
||||
));
|
||||
|
|
@ -273,7 +288,7 @@ where
|
|||
services().globals.federation_client().execute(reqwest_request).await;
|
||||
|
||||
let mut response = response.inspect_err(|error| {
|
||||
if log_error {
|
||||
if log_error == LogRequestError::Yes {
|
||||
warn!(%error, "Could not send request");
|
||||
}
|
||||
})?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue