Commit graph

68 commits

Author SHA1 Message Date
Todd Mortimer
f2d7919f60 Do not wrap AttributeValue. 2021-04-07 20:10:33 -04:00
Todd Mortimer
5942553e7d Use iterators for Flag::from_strs() 2021-04-07 18:09:46 -04:00
Todd Mortimer
e1db863691 Add helper function to transform a vec of flag strings into a vec of Flags.
Also use it where we were previously iterating manually.
2021-04-05 15:59:12 -04:00
Todd Mortimer
5e3f087007 Merge remote-tracking branch 'origin/master' into idle-responses 2021-04-05 15:23:50 -04:00
Todd Mortimer
35ddb48d3b Remove redundant slice.
Thanks clippy.
2021-03-28 18:19:57 -04:00
Todd Mortimer
529401a36d Implement a method to pass unilateral responses while IDLE.
While IDLE, the server sends unilateral responses to notify the client of
changes to the mailbox as they happen. Instead of always exiting the IDLE
on any change, allow the caller to pass a callback function which receives
the messages and returns an action to either Continue IDLE or Stop and exit.

For clients wishing to use the previous behaviour, a callback_stop convenience
function is provided that terminates the IDLE on any change to the mailbox.
2021-03-28 15:27:39 -04:00
Todd Mortimer
ec835d67e4 Rename handle_unilateral to try_handle_unilateral.
More accurately conveys that the function might not actually handle it.
2021-03-20 14:21:13 -04:00
Jon Gjengset
fa30a90827
Handle other MailboxDatum 2021-03-14 11:02:03 -07:00
Jon Gjengset
7860b14088 Revert "Release first 3.0.0 alpha"
This reverts commit 8490407d2e.
2021-03-06 15:35:00 -08:00
Jon Gjengset
8490407d2e Release first 3.0.0 alpha 2021-03-06 15:34:42 -08:00
Jon Gjengset
18ca65dd3f Expose mailbox read-only flag 2021-03-06 15:02:48 -08:00
Jon Gjengset
9b78550394 Adopt latest imap_proto and expose error status codes 2021-03-06 14:53:14 -08:00
Jon Gjengset
3cf13d2260 cargo fmt 2021-03-06 09:44:56 -08:00
Jon Gjengset
a466e947bd
Merge branch 'master' into metadata-merge 2021-03-06 12:43:43 -05:00
Jon Gjengset
137f3de14f
Merge branch 'master' into mod_seq_vanished 2021-03-06 12:40:30 -05:00
Todd Mortimer
166a0cb6b3 Link to QRESYNC RFC section describing VANISHED vs EXPUNGE responses. 2020-12-06 15:49:11 -05:00
Todd Mortimer
a9788ad1e0 Add a Deleted type to wrap EXPUNGE and VANISHED responses.
EXPUNGE may return either a series of EXPUNGE responses each with
a single message sequence number, or a VANISHED response with a
sequence set of UIDs. This adds a wrapper enum and some associated
iterators to make it easy to handle these in the client.
2020-12-05 20:32:14 -05:00
Todd Mortimer
c49e78b4d0 Update imap-proto and nom dependencies.
Add support for HIGHESTMODSEQ (RFC 4551) and VANISHED (RFC 7162),
which allows users to quickly synchronize to a mailbox by fetching
only changes since the last known highest mod sequence.
2020-11-11 11:37:33 -05:00
sergey
a29b6f0cce Adding METADATA support 2020-05-19 15:58:43 +03:00
Jon Gjengset
0c3ce7943d
Expose unilateral mailbox flag changes
This is a backwards incompatible change, since it adds a variant to a
public enum.
2020-05-18 14:12:13 -04:00
Jon Gjengset
b74bfa79c6
FLAGS can be sent as unilateral response
Fixes #161 (well, the side-issue in #161).
2020-05-18 14:03:16 -04:00
Jon Gjengset
949ea3bd6b
Bump dependencies
This also pulls in imap-proto 0.11, which exposes message envelopes as
`&[u8]` instead of `&str`. This directly affects our public API.
2020-02-20 12:49:25 -05:00
Alexander Krotov
2221cd2e18
Update imap-proto and test that "IMAP4REV1" capability is accepted
See issue https://github.com/djc/tokio-imap/issues/54
2019-09-04 18:08:12 +03:00
avitex
ff48dc9755
Decrease alloc on auth resp parsing 2019-09-03 23:41:57 +10:00
Lucas
3a5c2e9d91
Implemented new enumerated Capabilities from imap-proto crate. 2019-09-02 23:00:40 +10:00
Jon Gjengset
466c06c1f2
Avoid unnecessary import 2019-04-29 12:07:04 -04:00
Jon Gjengset
c0e1fbba0c
Avoid duplicating unilateral response handling 2019-03-18 21:43:30 -04:00
Jon Gjengset
b0ac079c30
rustfmt 2019-03-18 21:37:39 -04:00
Emmanuel Lesueur
5df0759446 Handle unsolicited responses in noop. 2019-03-16 13:31:52 +01:00
Jon Gjengset
67ee2f5175
Bump version for imap-proto fixes
- A `NIL` hierarchy delimiter in a `Name` is now properly parsed and exposed as `None`
 - `RFC822.TEXT` responses are now returned by `Fetch::text()`.
2018-12-07 16:34:57 -05:00
Jon Gjengset
1b086d40de
Prep for 2018 edition [skip ci] 2018-11-28 09:44:01 -05:00
Jon Gjengset
a610283861
Fix nightly clippy warning 2018-11-24 12:45:07 -05:00
Jon Gjengset
bce4831ccb
Clippy clean 2018-11-22 14:27:07 -05:00
Jon Gjengset
5dd9dfe469
Even more doc updates 2018-11-22 14:00:58 -05:00
Jon Gjengset
f83742dc3d
A significant documentation upgrade
Fixes #77.
Touches on #74.
Fixes #70 through documentation (I think?)
Fixes #62.
2018-11-21 16:37:47 -05:00
Kim Minh Kaplan
de5a38366c [BUGFIX] Expect a space after the "+" in Client::authenticate.
RFC 3501: A continue-req from the server starts with "+" SP.
2018-11-17 07:37:33 +00:00
Kim Minh Kaplan
9e0a5d7c8a Escape '+' character in regexp. 2018-11-09 22:35:22 +00:00
Johannes Schilling
8d7b527331 more tests and more handling for unsolicited responses 2018-11-01 21:49:14 +01:00
Johannes Schilling
930bd86dbf pass unsolicited responses channel by reference
as suggested in
https://github.com/mattnenterprise/rust-imap/pull/91#issuecomment-434055085
2018-11-01 21:47:50 +01:00
Johannes Schilling
f98398aecf send unsolicited responses to a channel instead of discarding them
notes

  * i tried to avoid the term "async", because that term is very
    overloaded and we're not using e.g. tokio/async-io here
  * i'm a little unhappy having to string the channel through the
    parser, because that seems rather a part of the client logic than
    parsing. on the other hand it's better than passing the whole
    client, so there's that at least.
2018-11-01 21:46:49 +01:00
Jon Gjengset
5c91f4c1bb
Move to new nom + tokio-proto 2018-10-31 21:15:19 -04:00
Jon Gjengset
e68d61a1e2
rustfmt 2018-10-31 21:15:13 -04:00
Jon Gjengset
a10769feba
Tidy up search a little
There's no reason to carry around a ZeroCopy here, since we own all the
values.
2018-10-05 14:53:12 -04:00
Massimiliano Torromeo
11e666ea91
Use imap_proto to parse the search responses into a HashSet of ids 2018-10-05 18:20:59 +02:00
Massimiliano Torromeo
5facd16e0e
client: Add SEARCH and UID SEARCH support 2018-10-04 15:27:45 +02:00
Jos van den Oever
4c94c87686 Clippy fixes 2018-09-12 19:31:26 +02:00
Jon Gjengset
72925cf1d8
Handle unilateral server responses
Fixes #81.
2018-07-21 12:29:50 -04:00
Jon Gjengset
4c4fd89232
rustfmt 2018-07-21 12:29:34 -04:00
Jon Gjengset
dea9398e08
Don't crash when parsing empty result
Partial fix for #81.
2018-07-18 16:14:35 -04:00
Shaun Savage
4bdfe96915 changed email to body 2018-06-28 16:36:07 +00:00