January 2018
Beginner to intermediate
454 pages
10h 8m
English
Let's now implement the QUIT command. As always, we need to add a case in the handle_cmd() method:
#[async]
fn handle_cmd(mut self, cmd: Command) -> Result<Self> {
match cmd {
Command::Quit => self = await!(self.quit())?,
// …
}
}
And here is the code of the quit() method:
#[async] fn quit(mut self) -> Result<Self> { if self.data_writer.is_some() { unimplemented!(); } else { self = await!(self.send(Answer::new(ResultCode::ServiceClosingControlConnection, "Closing connection...")))?; self.writer.close()?; } Ok(self) }
So, we send a response back to the client and close() the writer.
To finish this chapter, let's implement the command to create and delete directories.
Read now
Unlock full access