WIP: draft validation for flags (does not compile yet)
This commit is contained in:
@@ -30,7 +30,6 @@ async fn main() -> io::Result<()> {
|
|||||||
client_addr,
|
client_addr,
|
||||||
stream,
|
stream,
|
||||||
);
|
);
|
||||||
|
|
||||||
tokio::spawn(async move {
|
tokio::spawn(async move {
|
||||||
if let Err(error) = connection.run().await {
|
if let Err(error) = connection.run().await {
|
||||||
eprintln!(
|
eprintln!(
|
||||||
|
|||||||
+15
-8
@@ -90,18 +90,25 @@ impl Header {
|
|||||||
///
|
///
|
||||||
// Валидация Header
|
// Валидация Header
|
||||||
pub fn validate(&self) -> Result<(), HeaderValidationError> {
|
pub fn validate(&self) -> Result<(), HeaderValidationError> {
|
||||||
if self.version != 1 {
|
//Валидация version
|
||||||
return Err(
|
if self.version != 1 {
|
||||||
HeaderValidationError::UnsupportedVersion(self.version)
|
return Err(
|
||||||
|
HeaderValidationError::UnsupportedVersion(self.version)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if self.command != 1 {
|
// Валидация command
|
||||||
return Err(
|
if self.command != 1 {
|
||||||
HeaderValidationError::UnsupportedCommand(self.command)
|
return Err(
|
||||||
|
HeaderValidationError::UnsupportedCommand(self.command)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Валидация flags
|
||||||
|
if !(0..7).contains(&self.flags){
|
||||||
|
return Err(HeaderValidationError::UnsupportedCommand(self.flags));
|
||||||
|
};
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user