Manos Pitsidianakis
92c12d3526
melib/imap: implement OAUTH2 authentication
2020-11-24 14:28:28 +02:00
Manos Pitsidianakis
f9ce5327c2
melib/imap: fix some LazyCountSet logic errors in sync
2020-11-24 02:18:21 +02:00
Manos Pitsidianakis
91fe7435f7
melib/imap: add suggestion on STARTTLS error
...
If server port is 993 (IMAPS) and starttls is enabled, suggest turning
it off if starttls fails.
2020-10-20 14:58:16 +03:00
Manos Pitsidianakis
e556191bab
melib/imap: hide LOGIN from debug log
2020-09-24 12:16:50 +03:00
Manos Pitsidianakis
9bafba3905
melib/imap: don't print raw bytes in debug prints
2020-09-18 12:08:56 +03:00
Manos Pitsidianakis
e518b3f16d
melib/imap: use SystemTime for IMAP server timeout
2020-09-16 15:17:48 +03:00
Manos Pitsidianakis
3618bdcffb
melib/imap: treat server input as bytes
...
Server input was assumed valid ascii and converted haphazardly to &str.
Don't do that, since it might not be valid UTF8.
2020-09-16 15:17:48 +03:00
Manos Pitsidianakis
3b10fa3895
melib/imap: set 9min tcp keepalive on connection
2020-09-15 01:59:28 +03:00
Manos Pitsidianakis
17a4ccdcbc
melib/imap: perform reconnect on IDLE failure
2020-09-14 19:32:43 +03:00
Manos Pitsidianakis
352f7505fc
melib/imap: don't poll \Noselect mailboxes for updates
2020-09-13 00:24:26 +03:00
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)
2020-09-12 22:07:42 +03:00
Manos Pitsidianakis
7c6e3658c7
melib/imap: try NOOPing in connect()
2020-09-12 21:33:25 +03:00
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.
2020-09-12 21:29:09 +03:00
Manos Pitsidianakis
d00055fdb1
melib/imap: update online instant only on server read IO
2020-09-11 17:02:27 +03:00
Manos Pitsidianakis
b4fe34eacf
melib/imap: add ImapCache trait
2020-08-28 00:31:35 +03:00
Manos Pitsidianakis
be2d268a20
melib/imap: build uid<>msn cache in {select,examine}_mailbox()
2020-08-27 17:26:07 +03:00
Manos Pitsidianakis
8c6c9806b5
Fix some clippy lints
2020-08-26 00:54:07 +03:00
Manos Pitsidianakis
f7c9f21575
melib/imap: add CONDSTORE support
...
Closes #52
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
0f3bf858a3
melib/imap: impl UNSELECT via nonexistent mailbox
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
876e1bc510
melib/imap: turn ImapResponse From to TryFrom
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
a190805384
melib/backends: Add BackendEvent enum
2020-08-26 00:54:06 +03:00
Manos Pitsidianakis
dede8d2a9e
melib/imap: timeout when establishing connection
2020-08-16 19:57:28 +03:00
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.
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
ec0153e7b2
melib: add protocol extension info in MailBackendCapabilities
2020-08-02 00:22:15 +03:00
Manos Pitsidianakis
3ac2c12e7a
Small fixes
2020-07-29 14:33:09 +03:00
Manos Pitsidianakis
9a29f4245f
melib/imap: add COMPRESS=DEFLATE support
...
Closes #53
2020-07-28 17:39:25 +03:00
Manos Pitsidianakis
8ec0da4fbd
melib/imap: add conf toggle flags for IMAP extensions
2020-07-27 15:06:57 +03:00
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.
2020-07-27 15:06:56 +03:00
Manos Pitsidianakis
5a5408ecd5
imap: small fixes
2020-07-25 15:19:53 +03:00
Manos Pitsidianakis
97c76cc6a1
melib/error: add ErrorKind struct
2020-07-13 21:36:55 +03:00
Manos Pitsidianakis
c7bbf7ed7e
melib: move lookup_ipv4() to connection module
2020-07-13 21:36:55 +03:00
Manos Pitsidianakis
9db6b07b71
Remove some needless clones and stuff (thanks to Clippy)
2020-07-13 21:36:55 +03:00
Manos Pitsidianakis
931863436d
imap: remove blocking imap backend, replace with async
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
a7e177586a
Fix clippy lints
2020-07-06 15:27:08 +03:00
Manos Pitsidianakis
f8b84a192c
imap: add current_mailbox enum MailboxSelection
...
Add enum to track the currently selected Mailbox in the IMAP connection
2020-07-06 11:32:03 +03:00
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.
2020-06-23 20:11:04 +03:00
Manos Pitsidianakis
d7444a5b19
imap: recognize EXPUNGE events
2020-06-23 20:11:04 +03:00
Manos Pitsidianakis
d827ea1001
imap/connection.rs: debug print NO/BAD responses
2020-06-23 17:31:25 +03:00
Manos Pitsidianakis
c2300e8ea0
imap: update is_online flag on successful read/write
2020-06-23 12:30:10 +03:00
Manos Pitsidianakis
40f66f3333
imap: modify connection timeouts
2020-06-11 12:00:07 +03:00
Manos Pitsidianakis
6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
...
That was hecking exhausting
2020-06-06 23:19:07 +03:00
Manos Pitsidianakis
815ff98acc
imap: add smarter untagged reply detection
2020-05-30 14:43:44 +03:00
Manos Pitsidianakis
eb701695f7
Remove fnv crate
2020-05-10 21:18:56 +03:00
Manos Pitsidianakis
c37d8bd331
imap: add mutex timeout lock and remove unwraps
2020-04-05 15:56:59 +03: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
bbdc9d69b4
melib/imap: add ImapConnection::connect()
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
f208948651
melib: add mailbox delete/create to IMAP
2020-02-08 23:54:14 +02:00
Manos Pitsidianakis
5dc477bcd5
Fix some unused etc warnings
2020-01-27 17:32:12 +02:00