summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main.rs26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/main.rs b/src/main.rs
index 01e2d66..6bc9946 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -11,26 +11,24 @@ fn main() {
pub fn start_server(bind: String) {
let listener = TcpListener::bind(bind).unwrap();
for next_stream in listener.incoming() {
- handle_connection(next_stream.unwrap());
+ handle(next_stream.unwrap());
}
}
-fn handle_connection(mut stream: TcpStream) {
+fn handle(mut stream: TcpStream) {
let buf_reader = BufReader::new(&stream);
- let http_request: Vec<_> = buf_reader
- .lines()
- .map(|result| result.unwrap())
- .take_while(|line| !line.is_empty())
- .collect();
+ let request_line = buf_reader.lines().next().unwrap().unwrap();
- println!("{http_request:#?}");
+ if request_line == "GET / HTTP/1.1" {
+ let status_line = "HTTP/1.1 200 OK";
+ let contents = fs::read_to_string("./public/index.html").unwrap();
+ let length = contents.len();
+ let response = format!("{status_line}\r\nContent-Length: {length}\r\n\r\n{contents}");
- let status_line = "HTTP/1.1 200 OK";
- let contents = fs::read_to_string("./public/index.html").unwrap();
- let length = contents.len();
- let response = format!("{status_line}\r\nContent-Length: {length}\r\n\r\n{contents}");
-
- stream.write_all(response.as_bytes()).unwrap();
+ stream.write_all(response.as_bytes()).unwrap();
+ } else {
+ // some other request
+ }
}
#[cfg(test)]