Update error handle

This commit is contained in:
DefectingCat
2023-05-06 17:37:16 +08:00
parent f2288667d1
commit 4c802ba781

View File

@ -1,3 +1,4 @@
use anyhow::Result;
use log::{debug, error, info}; use log::{debug, error, info};
use std::{net::SocketAddr, process::exit}; use std::{net::SocketAddr, process::exit};
use tokio::{ use tokio::{
@ -87,8 +88,15 @@ pub async fn headers_parser(port: usize) {
tokio::spawn(async move { tokio::spawn(async move {
let mut buf = BufReader::new(&mut stream); let mut buf = BufReader::new(&mut stream);
let header = read_to_end(&mut buf).await; let header = match read_to_end(&mut buf).await {
Ok(c) => c,
Err(err) => {
error!("Failed to read headers {}", err);
"".to_owned()
}
};
let header: Vec<_> = header.split("\r\n").collect(); let header: Vec<_> = header.split("\r\n").collect();
dbg!(&header);
let first_line = header.first().unwrap(); let first_line = header.first().unwrap();
// TODO: Out of range check // TODO: Out of range check
let header = &header[1..header.len() - 2]; let header = &header[1..header.len() - 2];
@ -146,20 +154,13 @@ pub async fn headers_parser(port: usize) {
} }
} }
async fn read_to_end(buf: &mut BufReader<&mut TcpStream>) -> String { async fn read_to_end(buf: &mut BufReader<&mut TcpStream>) -> Result<String> {
let mut target = String::new(); let mut target = String::new();
loop { loop {
let count = match buf.read_line(&mut target).await { let count = buf.read_line(&mut target).await?;
Ok(c) => c,
Err(err) => {
error!("{}", err);
1
}
};
if count < 3 { if count < 3 {
break; break;
} }
} }
target Ok(target)
} }