about summary refs log tree commit diff
diff options
context:
space:
mode:
authorgennyble <gen@nyble.dev>2025-03-11 19:24:30 -0500
committergennyble <gen@nyble.dev>2025-03-11 19:24:30 -0500
commite2b81873a48d621f9012b7f366293223e7c8e152 (patch)
treec77c518f7ee79c229c8e3a68efc74e4f0d0f8dc5
parentc98eca9a85c3226acaee7cdfa766a0e7550853e2 (diff)
downloadcorgi-e2b81873a48d621f9012b7f366293223e7c8e152.tar.gz
corgi-e2b81873a48d621f9012b7f366293223e7c8e152.zip
send the correct body back to client
-rw-r--r--src/main.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main.rs b/src/main.rs
index da021a8..396ba51 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -106,6 +106,8 @@ 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")
@@ -138,6 +140,8 @@ impl Svc {
 		}
 
 		let cgi_response = Self::call_and_parse_cgi(cmd).await;
+		println!("called cgi!");
+
 		let status = StatusCode::from_u16(cgi_response.status).unwrap();
 		let mut response = Response::builder().status(status);
 
@@ -145,7 +149,8 @@ impl Svc {
 			response = response.header(key, value);
 		}
 
-		response.body(Full::new(Bytes::from(body.to_vec()))).unwrap()
+		let response_body = cgi_response.body.map(|v| Bytes::from(v)).unwrap_or(Bytes::new());
+		response.body(Full::new(response_body)).unwrap()
 	}
 
 	fn parse_addr_from_header(maybe_hval: Option<&HeaderValue>) -> Option<IpAddr> {