Skip to content

Commit 9770abe

Browse files
Improve caching
1 parent 4ee3822 commit 9770abe

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/main.rs

+20-14
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
mod services;
33
mod structures;
44

5-
use std::str::FromStr;
6-
use std::{borrow::Cow, net::SocketAddr, sync::Arc};
5+
use std::{borrow::Cow, net::SocketAddr, str::FromStr, sync::Arc};
76

8-
use axum::extract::Request;
9-
use axum::http::{HeaderName, HeaderValue};
10-
use axum::middleware::Next;
11-
use axum::response::Response;
12-
use axum::{extract::Path, http::StatusCode, response::IntoResponse, routing::get};
7+
use axum::{
8+
extract::{Path, Request},
9+
http::{HeaderName, HeaderValue, StatusCode},
10+
middleware::Next,
11+
response::{IntoResponse, Response},
12+
routing::get,
13+
};
1314
use libmcping::{Bedrock, Java};
1415
use reqwest::header::HeaderMap;
1516
use tokio::{net::TcpListener, sync::RwLock};
1617
use tower_http::services::ServeDir;
17-
use tracing_subscriber::layer::SubscriberExt;
18-
use tracing_subscriber::util::SubscriberInitExt;
18+
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
1919

2020
use crate::{
2121
services::{get_mcstatus, refresh_mcstatus},
@@ -56,7 +56,7 @@ async fn main() {
5656
.route("/api/java/:address", get(handle_java_ping))
5757
.route("/api/bedrock/:address", get(handle_bedrock_ping))
5858
.route("/api/services", get(services::handle_mcstatus))
59-
.layer(axum::middleware::from_fn(noindex))
59+
.layer(axum::middleware::from_fn(noindex_cache))
6060
.fallback_service(serve_dir)
6161
.with_state(current_mcstatus);
6262
let socket_address = SocketAddr::from((
@@ -72,12 +72,18 @@ async fn main() {
7272
.await
7373
.unwrap();
7474
}
75+
static ROBOTS_NAME: HeaderName = HeaderName::from_static("X-Robots-Tag");
76+
static ROBOTS_VALUE: HeaderValue = HeaderValue::from_static("noindex");
77+
static CACHE_CONTROL_NOSTORE: HeaderValue = HeaderValue::from_static("s-maxage=10");
7578

76-
async fn noindex(req: Request, next: Next) -> Response {
79+
async fn noindex_cache(req: Request, next: Next) -> Response {
7780
let mut resp = next.run(req).await;
78-
let name = HeaderName::from_str("X-Robots-Tag").unwrap();
79-
let value = HeaderValue::from_str("noindex").unwrap();
80-
resp.headers_mut().insert(name, value);
81+
resp.headers_mut()
82+
.insert(ROBOTS_NAME.clone(), ROBOTS_VALUE.clone());
83+
resp.headers_mut().insert(
84+
axum::http::header::CACHE_CONTROL,
85+
CACHE_CONTROL_NOSTORE.clone(),
86+
);
8187
resp
8288
}
8389

0 commit comments

Comments
 (0)