]> git.r.bdr.sh - rbdr/olden-mail/blame - src/middleware/find_mailboxes_compatibility.rs
Add compatibility middleware
[rbdr/olden-mail] / src / middleware / find_mailboxes_compatibility.rs
CommitLineData
573aaf2a
RBR
1use log::debug;
2
3/// MailDrop can't find folders to sync because it sends FIND MAILBOXES /*
4/// which is not understood by modern servers. It instead replaces it with
5/// a LIST command.
6pub fn middleware(input: &[u8]) -> Vec<u8> {
7 let command = String::from_utf8_lossy(input);
8 if let Some(tag) = command.split("FIND MAILBOXES /*").next() {
9 let replacement = format!("{} LIST \"/INBOX\" \"*\"\r\n", tag.trim());
10 debug!("### {replacement}");
11 return replacement.into_bytes();
12 }
13 return input.to_vec();
14}