Request: handle empty fields as errors

This commit is contained in:
Nathan Fisher 2023-05-22 10:29:39 -04:00
parent 6d66bf9664
commit f87299ad34

View file

@ -57,7 +57,15 @@ impl FromStr for Request {
}
if let Some((user, message)) = s.split_once(' ') {
let message = message.trim_end().to_string();
if message.is_empty() {
return Err(ParseRequestError::EmptyMessage);
}
if let Some((user, host)) = user.rsplit_once('@') {
if host.is_empty() {
return Err(ParseRequestError::EmptyHost);
} else if user.is_empty() {
return Err(ParseRequestError::EmptyUser);
}
let host = host.parse()?;
let user = user.to_string();
Ok(Request { user, host, message })