Browse Source

Cancel request on invalid Unicode character

It's pointless to continue as file names mostly don't contain invalid
Unicode.

Signed-off-by: Alexey Yerin <yerinalexey98fd@gmail.com>
master
Alexey Yerin 3 years ago committed by Garrit Franke
parent
commit
6fe4a2d026
  1. 3
      src/error.rs
  2. 2
      src/main.rs

3
src/error.rs

@ -17,6 +17,9 @@ pub enum TaurusError {
#[error("invalid request: {0}")]
InvalidRequest(String),
#[error("invalid Unicode character in the input")]
InvalidUnicode(#[from] std::string::FromUtf8Error),
#[error("failed to bind: {0}")]
BindFailed(io::Error),

2
src/main.rs

@ -99,7 +99,7 @@ fn handle_client(mut stream: TlsStream<TcpStream>, static_root: &str) -> TaurusR
.read(&mut buffer)
.map_err(TaurusError::StreamReadFailed)?;
let raw_request = String::from_utf8_lossy(&buffer[..]).into_owned();
let raw_request = String::from_utf8(buffer.to_vec())?;
let request = GeminiRequest::parse(&raw_request)?;
let url_path = request.file_path();

Loading…
Cancel
Save