Manos Pitsidianakis
352f7505fc
melib/imap: don't poll \Noselect mailboxes for updates
4 years ago
Manos Pitsidianakis
06a58a70bd
melib/imap: introduce a conf flag for server timeout
...
timeout integer (optional) Timeout to use for server connections in seconds. A timeout of 0 seconds means there's no timeout. (16)
4 years ago
Manos Pitsidianakis
7c6e3658c7
melib/imap: try NOOPing in connect()
4 years ago
Manos Pitsidianakis
6d9cdce923
melib/imap: don't fail utterly if cache fails on fetch
...
Show notice to user, and then try a fresh fetch. Also try resetting the
cache if possible.
4 years ago
Manos Pitsidianakis
d00055fdb1
melib/imap: update online instant only on server read IO
4 years ago
Manos Pitsidianakis
b4fe34eacf
melib/imap: add ImapCache trait
4 years ago
Manos Pitsidianakis
be2d268a20
melib/imap: build uid<>msn cache in {select,examine}_mailbox()
4 years ago
Manos Pitsidianakis
8c6c9806b5
Fix some clippy lints
4 years ago
Manos Pitsidianakis
f7c9f21575
melib/imap: add CONDSTORE support
...
Closes #52
4 years ago
Manos Pitsidianakis
0f3bf858a3
melib/imap: impl UNSELECT via nonexistent mailbox
4 years ago
Manos Pitsidianakis
876e1bc510
melib/imap: turn ImapResponse From to TryFrom
4 years ago
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
ce45cf5f17
melib/{imap,nntp}: flush after write_all
...
IMAP IDLE got stuck, because the IDLE connection used `send_raw` that
didn't flush output after `write_all`, *if* DEFLATE was on. DEFLATE
needs to flush output.
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
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
5a5408ecd5
imap: small fixes
4 years ago
Manos Pitsidianakis
97c76cc6a1
melib/error: add ErrorKind struct
4 years ago
Manos Pitsidianakis
c7bbf7ed7e
melib: move lookup_ipv4() to connection module
4 years ago
Manos Pitsidianakis
9db6b07b71
Remove some needless clones and stuff (thanks to Clippy)
4 years ago
Manos Pitsidianakis
931863436d
imap: remove blocking imap backend, replace with async
4 years ago
Manos Pitsidianakis
a7e177586a
Fix clippy lints
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
2a0ad92374
imap: don't send CRLF twice when sending LITERAL
...
This results in BAD IMAP errors, as a CRLF results in an empty command.
4 years ago
Manos Pitsidianakis
d7444a5b19
imap: recognize EXPUNGE events
4 years ago
Manos Pitsidianakis
d827ea1001
imap/connection.rs: debug print NO/BAD responses
4 years ago
Manos Pitsidianakis
c2300e8ea0
imap: update is_online flag on successful read/write
4 years ago
Manos Pitsidianakis
40f66f3333
imap: modify connection timeouts
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
eb701695f7
Remove fnv crate
4 years ago
Manos Pitsidianakis
c37d8bd331
imap: add mutex timeout lock and remove unwraps
5 years ago
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.
5 years ago
Manos Pitsidianakis
6b2a1f7757
imap: Don't fail on WouldBlock on ImapBlockingConnection
5 years ago
Manos Pitsidianakis
bbdc9d69b4
melib/imap: add ImapConnection::connect()
5 years ago
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.
5 years ago
Manos Pitsidianakis
f208948651
melib: add mailbox delete/create to IMAP
5 years ago
Manos Pitsidianakis
5dc477bcd5
Fix some unused etc warnings
5 years ago
Manos Pitsidianakis
77d9cef6fc
melib/imap: small fixes
...
- Ignore final line ("M__ OK ...") when parsing FETCH response.
- Remove unnecessary import and reword some error messages
5 years ago
Manos Pitsidianakis
7f8c638361
melib/imap: add mailbox creation ability
5 years ago
Manos Pitsidianakis
21526b5faf
melib: make Work use FnOnce closures
...
There was no need to use Fn() instead of FnOnce()
5 years ago
Manos Pitsidianakis
2b6f6ab42c
melib: Add BackendFolder methods, move special usage logic to backend
...
- add count() method to return (unseen, total) counts
- add is_subscribed()
- add set_special_usage() and set_is_subscribed()
concerns #8
5 years ago
Manos Pitsidianakis
2e38ea11e2
melib: make MailBackend::is_online() return Result<()>
...
Return Result<()> instead of bool to indicate connection status in order
to be able to show errors to user.
5 years ago
Manos Pitsidianakis
9fae0f2fa3
melib/imap: prevent minor blocking cases
5 years ago
Manos Pitsidianakis
569127fac5
melib/imap: detect untagged CAPABILITY responses
...
Gmail sends an untagged CAPABILITY response before accepting login, so
be smarter when logging in
5 years ago
Manos Pitsidianakis
eecec551c1
Display watch thread errors to user
...
Show a proper notification with the error message to the user instead of
just logging it on debug-tracing.
5 years ago
Manos Pitsidianakis
56cda63c83
Fix some warnings
5 years ago