Manos Pitsidianakis
815ff98acc
imap: add smarter untagged reply detection
2020-05-30 14:43:44 +03:00
Manos Pitsidianakis
e4a1ab8a09
Fix rustfmt suggestions
2020-05-29 20:43:39 +03:00
Manos Pitsidianakis
bea0ca61f5
maildir: conditionally accept invalid subdirs
...
If directory is invalid (i.e. has no {cur,new,tmp} subfolders), accept
it ONLY if it contains subdirs of any depth that are valid maildir
paths.
For example, this change will accept the following directory tree:
```
invalid_maildir
└── valid_maildir
├── cur
├── new
└── tmp
```
2020-05-28 21:02:49 +03:00
Manos Pitsidianakis
bd404e6937
Execute user shell commands with /bin/sh
...
Execute user provided command invocations $CMD such as `editor_cmd` with
`/bin/sh` as `/bin/sh -c "$CMD"
Previously, user commands were split by whitespace which must trigger
erroneous behavior if quotes are involved.
2020-05-28 21:02:49 +03:00
Manos Pitsidianakis
fb2bb74c5c
Remove std::dbg! use
2020-05-19 12:55:22 +03:00
Manos Pitsidianakis
38893a77bd
notmuch: fix invalid flag setting
2020-05-16 13:34:29 +03:00
Manos Pitsidianakis
595fa8ab95
notmuch: add total message count for mailboxes
2020-05-16 13:33:22 +03:00
Manos Pitsidianakis
c5fe511d95
notmuch: don't remove tags from tag_index
...
When removing a tag, we shouldn't also remove it from the tag index.
2020-05-11 21:01:40 +03:00
Manos Pitsidianakis
b2857955e4
notmuch: add NewFlags, Remove and Create events
2020-05-11 21:01:40 +03:00
Manos Pitsidianakis
8648b229ad
Add AccountHash to RefreshEvent
...
Different accounts might have same inboxes with same MailboxHashes. Use
the hash of the account's name to differentiate.
2020-05-10 22:10:17 +03:00
Manos Pitsidianakis
eb701695f7
Remove fnv crate
2020-05-10 21:18:56 +03:00
Manos Pitsidianakis
b5b9982d9e
notmuch: cache messages by msg-id, not path
2020-05-09 14:32:30 +03:00
Manos Pitsidianakis
2c549f5fcb
Refactor comments in notmuch/bindings.rs
2020-05-08 10:54:53 +03:00
Manos Pitsidianakis
2230e5705d
notmuch: LOCK database only when needed
...
Reported in https://git.meli.delivery/meli/meli/issues/24
2020-05-07 23:11:47 +03:00
Manos Pitsidianakis
5d07a5147b
datetime: fix panic on invalid cstr conversion
2020-05-06 18:46:38 +03:00
Manos Pitsidianakis
330134af5a
maildir: update mailbox unread count on file rename event
2020-05-06 17:38:29 +03:00
Manos Pitsidianakis
e9a935dbf7
melib: add search method in mail backends
2020-04-05 15:57:05 +03:00
Manos Pitsidianakis
c37d8bd331
imap: add mutex timeout lock and remove unwraps
2020-04-05 15:56:59 +03:00
Manos Pitsidianakis
8eca8b34ed
jmap: fix two error messages
2020-03-28 11:43:32 +02:00
Manos Pitsidianakis
c77af98b26
imap: prevent deadlock in operations.rs
...
imap/operations.rs could deadlock with imap/watch.rs when both lock the
main IMAP connection but both also need to lock UIDStore
2020-03-25 13:12:18 +02:00
Manos Pitsidianakis
5c2b93ee18
jmap: add parser for rfc3339 dates
...
Reported-by:cycomanic
Concerns #18 https://git.meli.delivery/meli/meli/issues/18
2020-03-24 00:09:40 +02:00
Manos Pitsidianakis
61be6e4c96
notmuch: fix wrong mailbox path in save()
...
mailbox path was passed to save_to_mailbox() with a cur/ tail and
save_to_mailbox() added an extra cur/ tail
2020-03-18 19:22:17 +02:00
Manos Pitsidianakis
7a770c7f7b
imap: fetch RFC822 instead of RFC822.HEADER
...
RFC822.HEADER is not parsed in imap/protocol_parser.rs
2020-03-18 19:19:39 +02:00
Manos Pitsidianakis
a8c1016f37
Add various logic checks
2020-03-12 09:47:39 +02:00
Manos Pitsidianakis
6ca8c3b964
imap: add server_password_command
2020-03-12 09:45:18 +02:00
Manos Pitsidianakis
6079909f9c
imap: add managesieve connection
...
So far only the connection is implemented, and using the
testing/manage_sieve binary you can get a shell to a managesieve server.
The managesieve interface will be used in the UI from a plugin, but the
plugin's interface isn't implemented yet.
2020-02-28 15:47:07 +02:00
Manos Pitsidianakis
6b2a1f7757
imap: Don't fail on WouldBlock on ImapBlockingConnection
2020-02-28 09:11:41 +02:00
Manos Pitsidianakis
ca51077f53
imap: Add support for untagged FETCH (FLAG.. messages
...
IDLE connection can get untagged "* FETCH (FLAGS ({flag_list))" messages
if any client has changed flags. Support this refresh event.
2020-02-28 09:09:43 +02:00
Manos Pitsidianakis
33c1bf6558
Add consume newlines flag to phrase()
2020-02-26 15:53:46 +02:00
Manos Pitsidianakis
303c530488
Load libnotmuch dynamically
2020-02-26 14:18:00 +02:00
Manos Pitsidianakis
4ac52d9d5b
Replace every use of Folder with Mailbox
...
Use Mailbox for consistency.
2020-02-26 10:54:10 +02:00
Manos Pitsidianakis
499fd59c6e
melib/imap: implement refresh()
2020-02-25 22:15:13 +02:00
Manos Pitsidianakis
bbdc9d69b4
melib/imap: add ImapConnection::connect()
2020-02-25 22:15:13 +02:00
Manos Pitsidianakis
f38d03e43a
melib: {create,delete}_folder returns updated folders
...
Potential parent folders will have their children fields updated, so
just return all folders.
2020-02-25 22:15:13 +02:00
Manos Pitsidianakis
9a46e58029
imap: don't retry command on reconnection
...
If a command fails and connection is restarted, don't try the command
again; it only made sense in the previous connection's context.
2020-02-19 17:06:26 +02:00
Manos Pitsidianakis
c678b16711
melib/jmap: fix macro path
2020-02-09 17:07:43 +02:00
Manos Pitsidianakis
9616fbb544
melib/maildir: fix wrong subscription status in folders
...
MaildirFolder::new() was checking for subscribed status though that is
supposed to be done in MaildirType::new()
2020-02-08 23:55:47 +02:00
Manos Pitsidianakis
f5e694cf5a
Make small cosmetic fixes
2020-02-08 23:54:15 +02:00
Manos Pitsidianakis
f208948651
melib: add mailbox delete/create to IMAP
2020-02-08 23:54:14 +02:00
Manos Pitsidianakis
cd1ed5ef40
melib/mbox: replace unimplemented!() with Error
2020-01-31 03:54:58 +02:00
Manos Pitsidianakis
51d9405c72
melib/mbox: fix parse error
...
First line of an mbox message is a "From ..." header without the colon
required in RFC822. Skip it when parsing the actual e-mail.
This was lost somewhere in the commit history when mbox was added,
weird.
2020-01-31 03:54:58 +02:00
Manos Pitsidianakis
6a096dd405
Add missing copyright preambles
2020-01-31 03:54:58 +02:00
Manos Pitsidianakis
5dc477bcd5
Fix some unused etc warnings
2020-01-27 17:32:12 +02:00
Manos Pitsidianakis
77d9cef6fc
melib/imap: small fixes
...
- Ignore final line ("M__ OK ...") when parsing FETCH response.
- Remove unnecessary import and reword some error messages
2020-01-27 15:55:01 +02:00
Manos Pitsidianakis
56e3ea1548
melib/imap: refactor early error exit
2020-01-20 15:58:59 +02:00
Manos Pitsidianakis
7f8c638361
melib/imap: add mailbox creation ability
2020-01-20 15:58:59 +02:00
Manos Pitsidianakis
a365a846b8
Replace StackVec with smallvec::SmallVec
...
SmallVec has a less buggy and better implementation.
2020-01-20 15:58:59 +02:00
Manos Pitsidianakis
ca7d72e732
melib: Replace String with Cow<'static, str>
2020-01-07 12:55:27 +02:00
Manos Pitsidianakis
3d84f3b9ad
notmuch: remove needless clones
2020-01-02 00:05:36 +02:00
Manos Pitsidianakis
21526b5faf
melib: make Work use FnOnce closures
...
There was no need to use Fn() instead of FnOnce()
2019-12-20 00:53:43 +02:00