diff --git a/src/request.rs b/src/request.rs index 21210da..96c3d67 100644 --- a/src/request.rs +++ b/src/request.rs @@ -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 })