stage 3 attempt 2
This commit is contained in:
parent
37dd2cfd5a
commit
f28811942b
16
src/main.rs
16
src/main.rs
@ -1,4 +1,4 @@
|
|||||||
use std::{ fmt::Display, io::{Read, Write}, net::TcpListener };
|
use std::{ fmt::Display, io::{BufRead, BufReader, Read, Write}, net::TcpListener };
|
||||||
use anyhow::Result;
|
use anyhow::Result;
|
||||||
use thiserror::Error;
|
use thiserror::Error;
|
||||||
|
|
||||||
@ -14,14 +14,16 @@ fn main() -> Result<()> {
|
|||||||
for stream in listener.incoming() {
|
for stream in listener.incoming() {
|
||||||
match stream {
|
match stream {
|
||||||
Ok(mut stream) => {
|
Ok(mut stream) => {
|
||||||
let mut buf = String::new();
|
let buf_reader = BufReader::new(&mut stream);
|
||||||
let _read = stream.read_to_string(&mut buf);
|
|
||||||
|
|
||||||
let mut data = buf.split("\r\n");
|
let mut data = buf_reader
|
||||||
|
.lines()
|
||||||
|
.map(|result| result.unwrap())
|
||||||
|
.take_while(|line| !line.is_empty());
|
||||||
|
|
||||||
let _start @ (_method, path, _ver) = {
|
let (_method, path, _ver) = {
|
||||||
let start_line = data.next().ok_or(E::InvalidRequest)?; // should be 500;
|
let start_line = data.next().ok_or(E::InvalidRequest)?; // should be 500;
|
||||||
let mut parts = start_line.split_whitespace();
|
let mut parts = start_line.split_whitespace().map(ToOwned::to_owned);
|
||||||
let method = parts.next().ok_or(E::InvalidRequest)?;
|
let method = parts.next().ok_or(E::InvalidRequest)?;
|
||||||
let path = parts.next().ok_or(E::InvalidRequest)?;
|
let path = parts.next().ok_or(E::InvalidRequest)?;
|
||||||
let ver = parts.next().ok_or(E::InvalidRequest)?;
|
let ver = parts.next().ok_or(E::InvalidRequest)?;
|
||||||
@ -29,7 +31,7 @@ fn main() -> Result<()> {
|
|||||||
(method, path, ver)
|
(method, path, ver)
|
||||||
};
|
};
|
||||||
|
|
||||||
let code = match path {
|
let code = match path.as_str() {
|
||||||
"/" => "200 OK",
|
"/" => "200 OK",
|
||||||
_ => "404 Not Found",
|
_ => "404 Not Found",
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user