about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgennyble <gen@nyble.dev>2025-03-11 19:46:32 -0500
committergennyble <gen@nyble.dev>2025-03-11 19:46:32 -0500
commitdc6e61580411d07d966c6fe15f0f0e32e2c70e2e (patch)
tree897d49bc534a5d6552adf4ef00c3e4e91021c4af
parent37127e2ce52b3c9c34df4dc7038824b8bec111cf (diff)
downloadcorgi-dc6e61580411d07d966c6fe15f0f0e32e2c70e2e.tar.gz
corgi-dc6e61580411d07d966c6fe15f0f0e32e2c70e2e.zip
add a single log line
-rw-r--r--src/main.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 396ba51..31a5e00 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,6 +1,7 @@
 use std::{
 	net::{IpAddr, SocketAddr},
 	pin::Pin,
+	time::Instant,
 };
 
 use confindent::Confindent;
@@ -89,6 +90,8 @@ impl Svc {
 		caddr: SocketAddr,
 		req: Request<Incoming>,
 	) -> Response<Full<Bytes>> {
+		let start = Instant::now();
+
 		// Collect things we need from the request before we eat it's body
 		let method = req.method().as_str().to_ascii_uppercase();
 		let version = req.version();
@@ -106,8 +109,6 @@ impl Svc {
 			forward.unwrap_or(x_forward.unwrap_or(caddr.ip()))
 		};
 
-		println!("new connection from: [{client_addr}]");
-
 		let server_name = headers
 			.get("Host")
 			.expect("no http host header set")
@@ -139,8 +140,9 @@ impl Svc {
 			cmd.env(key.to_ascii_uppercase(), value);
 		}
 
+		let start_cgi = Instant::now();
 		let cgi_response = Self::call_and_parse_cgi(cmd).await;
-		println!("called cgi!");
+		let cgi_time = start_cgi.elapsed();
 
 		let status = StatusCode::from_u16(cgi_response.status).unwrap();
 		let mut response = Response::builder().status(status);
@@ -149,6 +151,12 @@ impl Svc {
 			response = response.header(key, value);
 		}
 
+		println!(
+			"served to [{client_addr}]\n\tcgi took {}ms. total time {}ms",
+			cgi_time.as_millis(),
+			start.elapsed().as_millis()
+		);
+
 		let response_body = cgi_response.body.map(|v| Bytes::from(v)).unwrap_or(Bytes::new());
 		response.body(Full::new(response_body)).unwrap()
 	}