X-Git-Url: https://git.r.bdr.sh/rbdr/olden-mail/blobdiff_plain/866c07d649ed99db1e4e0eec4db213151225681c..HEAD:/src/middleware/find_mailboxes_compatibility.rs?ds=sidebyside diff --git a/src/middleware/find_mailboxes_compatibility.rs b/src/middleware/find_mailboxes_compatibility.rs index a9318f9..42938ff 100644 --- a/src/middleware/find_mailboxes_compatibility.rs +++ b/src/middleware/find_mailboxes_compatibility.rs @@ -50,11 +50,15 @@ impl Middleware for FindMailboxesCompatibility { // Transform IMAPv4 "* LIST" lines to IMAPv3 "* MAILBOX" if line.starts_with("* LIST") { - if let Some(last_slash_pos) = line.rfind('/') { - let mailbox_name = line[(last_slash_pos + 1)..] - .trim() - .replace('"', ""); - return Some(format!("* MAILBOX {mailbox_name}\r")); + if let Some(last_slash_pos) = line.rfind("\"/\"") { + let mailbox_name = line[(last_slash_pos + 3)..].replace('"', ""); + return Some(format!("* MAILBOX {}\r", mailbox_name.trim())); + } + } + + if line.contains("OK") { + if let Some(tag) = line.split("OK").next() { + return Some(format!("{} OK MAILBOX Completed.\r", tag.trim()).to_string()); } } @@ -62,6 +66,6 @@ impl Middleware for FindMailboxesCompatibility { }) .collect(); - lines.join("\n").into_bytes() + format!("{}\n", lines.join("\n")).into_bytes() } }