Commit Graph

110 Commits (a19080538473bfd9225f9b22e0ae969cb75bb9c6)

Author SHA1 Message Date
Manos Pitsidianakis a190805384
melib/backends: Add BackendEvent enum 4 years ago
Manos Pitsidianakis dede8d2a9e
melib/imap: timeout when establishing connection 4 years ago
Manos Pitsidianakis 79b2b38e32
melib: add supports_submission backend capability
To be used by NNTP, JMAP and some IMAP servers with BURL capability
4 years ago
Manos Pitsidianakis ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities 4 years ago
Manos Pitsidianakis 3ac2c12e7a
Small fixes 4 years ago
Manos Pitsidianakis 5c038887db
melib/imap: add MOVE support 4 years ago
Manos Pitsidianakis 9a29f4245f
melib/imap: add COMPRESS=DEFLATE support
Closes #53
4 years ago
Manos Pitsidianakis 8ec0da4fbd
melib/imap: add conf toggle flags for IMAP extensions 4 years ago
Manos Pitsidianakis 7bbfd188ef
melib/imap: move current_mailbox to ImapStream
ImapStream holds the connection state (current command id), so it makes
sense to move current_mailbox state there. That way, when a connection
drops for whatever reason the old current_mailbox is dropped and not
carried over to new connections.
4 years ago
Manos Pitsidianakis f41a1ffe3a
imap: remove FLAGS.SILENT from STOREs
Flag updates were not received, because FLAGS.SILENT was used.
4 years ago
Manos Pitsidianakis 3f8aa560f0
melib/MailBackend: add MailBackendCapabilities struct 4 years ago
Manos Pitsidianakis 5a5408ecd5
imap: small fixes 4 years ago
Manos Pitsidianakis 00acba7717
melib/MailBackend: add copy_messages,set_flags,delete_messages methods 4 years ago
Manos Pitsidianakis 1b8529c59c
melib/imap: use LITERAL+ with APPEND
Closes #50
4 years ago
Manos Pitsidianakis 0ee3a0bf79
imap: clear mesage totals when fetching entire mailbox
Totals might have been set after a STATUS response, meaning we know the
totals without knowing exactly what message UIDs are there. Clear the
totals, and start inserting UIDs instead.
4 years ago
Manos Pitsidianakis 6121f77853
imap: support LIST-STATUS 4 years ago
Manos Pitsidianakis 350c8033b1
imap: use ImapLineIterator in imap_mailboxes() 4 years ago
Manos Pitsidianakis b9343dfb32
imap: update supported capabilities 4 years ago
Manos Pitsidianakis fadb3634e0
melib: take MailboxHash instead of &Mailbox in fetch*() 4 years ago
Manos Pitsidianakis 9103d05617
melib: s/get/fetch in MailBackend methods 4 years ago
Manos Pitsidianakis 0a7f283582
imap: prevent deadlock in watch::examine_updates
uid_store.mailboxes was locked before calling examine_updates, which
calls examine_mailbox() which also attempts to lock uid_store.mailboxes
4 years ago
Manos Pitsidianakis 32f196143e
melib: add supports_search() method to MailBackend 4 years ago
Manos Pitsidianakis 931863436d
imap: remove blocking imap backend, replace with async 4 years ago
Manos Pitsidianakis b5748c247a
MailBackend: remove connect() method 4 years ago
Manos Pitsidianakis 231471fa8c
MailBackend: add is_{async,online} methods 4 years ago
Manos Pitsidianakis 94e0aa4fe7
MailBackend: change get() ret type to Result<_> 4 years ago
Manos Pitsidianakis a7e177586a
Fix clippy lints 4 years ago
Manos Pitsidianakis e06308fed2
MailBackend: change more methods to Futures 4 years ago
Manos Pitsidianakis de201b5d6c
imap: create message_sequence cache
Close #45 (hopefully)
4 years ago
Manos Pitsidianakis f8b84a192c
imap: add current_mailbox enum MailboxSelection
Add enum to track the currently selected Mailbox in the IMAP connection
4 years ago
Manos Pitsidianakis 91badc3960
imap: count message totals using HashSet
This way it's easy to know if a flag change in an envelope requires the
unseen total of a mailbox to change.
4 years ago
Manos Pitsidianakis d7444a5b19
imap: recognize EXPUNGE events 4 years ago
Manos Pitsidianakis efb06be09b
melib: return Result<_> from operation()
Envelope might have been deleted before main thread requests an
operation, which is a race condition.
4 years ago
Manos Pitsidianakis 6f6f795fd5
imap: use uidnext for fetching all messages in get() 4 years ago
Manos Pitsidianakis c08ceae97c
imap: add status_response() parser 4 years ago
Manos Pitsidianakis 7d359624fe
imap: early return on empty mailbox in get() 4 years ago
Manos Pitsidianakis af4ad19169
imap: add chain_err_summary error descriptions 4 years ago
Manos Pitsidianakis 40f66f3333
imap: modify connection timeouts 4 years ago
Manos Pitsidianakis c7fbc5cafb
imap: remove redundant passing of AccountHash 4 years ago
Manos Pitsidianakis 2d862e39f4
imap: off by one error in iteration 4 years ago
Manos Pitsidianakis 2d3f49d64d
imap: index by (MailboxHash, UID) instead of just UID
Mailboxes can share UIDs.
4 years ago
Manos Pitsidianakis f3d5edfe14
Add copy/move to other account operations 4 years ago
Manos Pitsidianakis 5435a4615e
imap: don't try to connect in is_online()
Attempting to connect to the server when calling imap's is_online()
blocks the UI process, so don't.
4 years ago
Manos Pitsidianakis b4dfc1f89d
imap: add experimental header caching with sqlite3
Add support for header caching. It is currently unstable and should not
be used. It can be turned on by specifying "X_header_caching" to true in
the IMAP account's configuration.

The header cache is saved in a sqlite3 database in your XDG_DATA_DIR,
for example:

  /home/epilys/.local/share/meli/17328072387188469646_header_cache.db

Concerns #31 https://git.meli.delivery/meli/meli/issues/31
4 years ago
Manos Pitsidianakis 6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
That was hecking exhausting
4 years ago
Manos Pitsidianakis 815ff98acc
imap: add smarter untagged reply detection 4 years ago
Manos Pitsidianakis e4a1ab8a09
Fix rustfmt suggestions 4 years ago
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.
4 years ago
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.
4 years ago
Manos Pitsidianakis eb701695f7
Remove fnv crate 4 years ago