mirror of
https://github.com/stalwartlabs/mail-server.git
synced 2024-09-20 07:16:18 +08:00
Do not include STATUS in NOOP responses (fixes #234)
This commit is contained in:
parent
f54670a6f6
commit
d15f598460
|
@ -226,9 +226,13 @@ impl<T: SessionStream> SessionData<T> {
|
|||
..Default::default()
|
||||
},
|
||||
);
|
||||
account
|
||||
.mailbox_names
|
||||
.insert(mailbox_path.join("/"), *mailbox_id);
|
||||
|
||||
let mut mailbox_name = mailbox_path.join("/");
|
||||
if mailbox_name.eq_ignore_ascii_case("inbox") && *mailbox_id != INBOX_ID {
|
||||
// If there is another mailbox called Inbox, renamed it to avoid conflicts
|
||||
mailbox_name = format!("{mailbox_name} 2");
|
||||
}
|
||||
account.mailbox_names.insert(mailbox_name, *mailbox_id);
|
||||
|
||||
if has_children && iter_stack.len() < 100 {
|
||||
iter_stack.push((iter, parent_id, path));
|
||||
|
@ -508,7 +512,9 @@ impl<T: SessionStream> SessionData<T> {
|
|||
.map_or(true, |p| mailbox_name.starts_with(p))
|
||||
{
|
||||
for (mailbox_name_, mailbox_id_) in account.mailbox_names.iter() {
|
||||
if mailbox_name_ == mailbox_name || (is_inbox && *mailbox_id_ == INBOX_ID) {
|
||||
if (!is_inbox && mailbox_name_ == mailbox_name)
|
||||
|| (is_inbox && *mailbox_id_ == INBOX_ID)
|
||||
{
|
||||
return MailboxId {
|
||||
account_id: account.account_id,
|
||||
mailbox_id: *mailbox_id_,
|
||||
|
|
|
@ -37,7 +37,7 @@ use imap_proto::{
|
|||
receiver::Request,
|
||||
Command, ResponseCode, StatusResponse,
|
||||
};
|
||||
use jmap::{email::metadata::MessageMetadata, Bincode};
|
||||
use jmap::email::metadata::MessageMetadata;
|
||||
use jmap_proto::{
|
||||
error::method::MethodError,
|
||||
types::{
|
||||
|
@ -48,7 +48,7 @@ use jmap_proto::{
|
|||
use mail_parser::{Address, GetHeader, HeaderName, Message, PartType};
|
||||
use store::{
|
||||
query::log::{Change, Query},
|
||||
write::{assert::HashedValue, BatchBuilder, F_BITMAP, F_VALUE},
|
||||
write::{assert::HashedValue, BatchBuilder, Bincode, F_BITMAP, F_VALUE},
|
||||
};
|
||||
use utils::listener::SessionStream;
|
||||
|
||||
|
|
|
@ -29,22 +29,15 @@ use crate::core::{Session, State};
|
|||
|
||||
impl<T: SessionStream> Session<T> {
|
||||
pub async fn handle_noop(&mut self, request: Request<Command>) -> crate::OpResult {
|
||||
match &self.state {
|
||||
State::Authenticated { data, .. } => {
|
||||
data.write_changes(&None, true, false, self.is_qresync, self.version.is_rev2())
|
||||
.await;
|
||||
}
|
||||
State::Selected { data, mailbox, .. } => {
|
||||
data.write_changes(
|
||||
&Some(mailbox.clone()),
|
||||
true,
|
||||
true,
|
||||
self.is_qresync,
|
||||
self.version.is_rev2(),
|
||||
)
|
||||
.await;
|
||||
}
|
||||
_ => (),
|
||||
if let State::Selected { data, mailbox, .. } = &self.state {
|
||||
data.write_changes(
|
||||
&Some(mailbox.clone()),
|
||||
false,
|
||||
true,
|
||||
self.is_qresync,
|
||||
self.version.is_rev2(),
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
||||
self.write_bytes(
|
||||
|
|
Loading…
Reference in a new issue