X-Git-Url: https://git.r.bdr.sh/rbdr/olden-mail/blobdiff_plain/f735141aa381a4ed75e13ff8cae41def51e86406..39e9898de42f3168542f4f4d2c15c9cf9189d0a7:/src/middleware/find_mailboxes_compatibility.rs diff --git a/src/middleware/find_mailboxes_compatibility.rs b/src/middleware/find_mailboxes_compatibility.rs index 63ed688..edf5f06 100644 --- a/src/middleware/find_mailboxes_compatibility.rs +++ b/src/middleware/find_mailboxes_compatibility.rs @@ -1,5 +1,3 @@ -use log::debug; - use super::Middleware; /// `MailDrop` can't find folders to sync because it implements `IMAPv3` and @@ -24,11 +22,6 @@ impl Middleware for FindMailboxesCompatibility { // We'll need to convert the LIST to a FIND self.tags.push(tag.trim().to_string()); let replacement = format!("{} LIST \"\" \"*\"\r\n", tag.trim()); - let debug_str = replacement - .replace('\n', "\\n") - .replace('\r', "\\r") - .replace('\t', "\\t"); - debug!("### {debug_str}"); return replacement.into_bytes(); } } @@ -57,9 +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 + 2)..].trim(); - 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) = command.split("OK").next() { + return Some(format!("{} OK MAILBOX Completed.\r", tag.trim()).to_string()); } } @@ -67,13 +66,6 @@ impl Middleware for FindMailboxesCompatibility { }) .collect(); - let replacement = lines.join("\n"); - let debug_str = replacement - .replace('\n', "\\n") - .replace('\r', "\\r") - .replace('\t', "\\t"); - debug!("### {debug_str}"); - - replacement.into_bytes() + lines.join("\n").into_bytes() } }