aboutsummaryrefslogtreecommitdiff
path: root/src/imap/command/selected.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/imap/command/selected.rs')
-rw-r--r--src/imap/command/selected.rs14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/imap/command/selected.rs b/src/imap/command/selected.rs
index c8cc680..35c3eb4 100644
--- a/src/imap/command/selected.rs
+++ b/src/imap/command/selected.rs
@@ -136,21 +136,23 @@ impl<'a> SelectedContext<'a> {
pub async fn search(
self,
- _charset: &Option<Charset<'a>>,
- _criteria: &SearchKey<'a>,
- _uid: &bool,
+ charset: &Option<Charset<'a>>,
+ criteria: &SearchKey<'a>,
+ uid: &bool,
) -> Result<(Response<'static>, flow::Transition)> {
+ let found = self.mailbox.search(charset, criteria, *uid).await?;
Ok((
Response::build()
.to_req(self.req)
- .message("Not implemented")
- .bad()?,
+ .set_body(found)
+ .message("SEARCH completed")
+ .ok()?,
flow::Transition::None,
))
}
pub async fn noop(self) -> Result<(Response<'static>, flow::Transition)> {
- self.mailbox.mailbox.force_sync().await?;
+ self.mailbox.0.mailbox.force_sync().await?;
let updates = self.mailbox.update().await?;
Ok((