Commit graph

285 commits

Author SHA1 Message Date
Jon Gjengset
b45beb88ed
Fix #93; why doesn't this fail for me or CI? 2018-11-03 16:03:32 -04: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
510dab9604
Merge pull request #87 from mtorromeo/feature-uid_expunge
client: Add UID EXPUNGE support
2018-10-08 12:19:37 -04:00
Jon Gjengset
a9e993f98b
Merge pull request #88 from mtorromeo/feature-move
client: Add MOVE and UID MOVE support
2018-10-06 12:14:52 -04:00
Massimiliano Torromeo
201269423d
Renamed uid_move to uid_mv 2018-10-06 10:02:10 +02:00
Jon Gjengset
20d3ce0277
Fix compiler warning 2018-10-05 14:53:31 -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
a6f0240f94 Renamed imap_move to mv 2018-10-05 17:29:43 +02:00
Massimiliano Torromeo
23449e203e Added links to the RFC for the functions mv and uid_move 2018-10-05 17:29:34 +02:00
Massimiliano Torromeo
4321b7fe14 Add reference to the RFC defining the UID EXPUNGE command 2018-10-05 17:21:22 +02:00
Massimiliano Torromeo
5facd16e0e
client: Add SEARCH and UID SEARCH support 2018-10-04 15:27:45 +02:00
Massimiliano Torromeo
b28ae3efbe
client: Add MOVE and UID MOVE support 2018-10-04 13:03:58 +02:00
Massimiliano Torromeo
c9b720155f
client: Add UID EXPUNGE support 2018-10-04 12:00:52 +02:00
Jos van den Oever
4c94c87686 Clippy fixes 2018-09-12 19:31:26 +02:00
Johannes Schilling
b7927aa33e client: remove outdated comment from fn login 2018-08-30 21:27:52 +02:00
Johannes Schilling
73efb03882 client: more docs, move Connection impl block
as discussed/suggested at
https://github.com/mattnenterprise/rust-imap/pull/84#pullrequestreview-150636568
2018-08-30 19:32:33 +02:00
Johannes Schilling
1708db5ae2 adjust tests to the change in structs 2018-08-29 17:46:39 +02:00
Johannes Schilling
515d574742 src/lib.rs: sync code in doc-comment with examples/basic.rs
is there some way to include the code directly from examples/basic.rs?
2018-08-29 17:37:57 +02:00
Johannes Schilling
da2ac87ca7 client: move matching in login functions to macro
as suggested in PR #84 comments
2018-08-29 15:55:43 +02:00
Johannes Schilling
71f8e6bcd2 rename types as per suggestion in PR #84 2018-08-29 14:40:02 +02:00
Johannes Schilling
820d1eccf7 client: separate out UnauthenticatedClient, InnerClient
fixes #80 (client separation)
2018-08-11 12:38:50 +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
Shaun Savage
ba8afa7918 changed try! to ? 2018-06-27 23:17:49 +00:00
Shaun Savage
923e01279a remove unwrap() 2018-06-26 20:23:11 +00:00
Jon Gjengset
d132de4834
New imap-proto 2018-04-27 16:27:38 -04:00
Jon Gjengset
c28d08851c
Bump version for new imap-proto 2018-04-27 10:56:03 -04:00
Jon Gjengset
73c8d0ddc2
Move README example into src/lib.rs
This way it'll be run as a doctest and we'll know if it breaks (again).

Fixes #67.
2018-04-03 13:01:59 -04:00
Jon Gjengset
1d4d6288c1
rustfmt 2018-04-03 13:01:35 -04:00
Curtis McEnroe
6b4461eb07
Borrow TlsConnector
TlsConnector is meant to be reusable and there is no reason to take
ownership over one.
2018-03-18 22:18:15 -04:00
todd
a2df6fffd8 When printing debug info, slice from the start of the line to the CRLF 2018-02-24 16:06:37 -05:00
Jon Gjengset
590b80e3a6 Add structured results for all values using imap-proto (#58)
* First stab at structured types (#28)

Tests currently fail due to djc/imap-proto#2.

LSUB is also broken due to djc/imap-proto#4 (but we don't have tests for
that atm).

* Also parse out RFC822 fetch responses

* Make all the things zero-copy

* Also delegate IntoIterator for ZeroCopy ref

* Fix UNSEEN and LSUB

All tests now pass

* Address @sanmai-NL comments

* Correctly handle incomplete parser responses

* No need for git dep anymore
2018-02-09 11:22:20 -05:00
Jon Gjengset
4332d09f0d
cargo fmt 2017-11-02 22:56:22 -04:00
rhn
5acf34c3b4 Ensures that some operations don't accept invalid data.
Invalid characters in input strings are \r and \n, according to RFC3501 section 4.3.
2017-11-02 21:15:48 +01:00
rhn
c899986685 Make Bad Response error print the actual response 2017-11-02 21:15:48 +01:00
rhn
ed47ae34b7 Replace tabs with 4-spaces 2017-11-02 21:06:13 +01:00
rhn
61485c9036 Quotes various astring tokens as per RFC 3501
Some notable exceptions: messagebox names are defined as `INBOX / astring`, but with this change, INBOX is also quoted.
The `list-mailbox` token is not quoted, as it is not `astring`.
2017-11-02 21:05:29 +01:00
rhn
13316f33b8 Uses raw string for quote!, and adds qoute! tests. 2017-11-02 20:43:12 +01:00
Giulio Collura
1ad1f1f847 Escape password according to RFC3501
Rebased by rhn <gihu.rhn@porcupinefactory.org>
2017-11-02 20:42:08 +01:00
Jon Gjengset
542ee159a4
Remove questionable Ord derives 2017-10-30 20:57:26 -04:00
Sander Maijers
dc7ad26ac1
Make types eagerly implement common traits
See https://rust-lang-nursery.github.io/api-guidelines/interoperability.html#types-eagerly-implement-common-traits-c-common-traits
2017-10-30 20:57:06 -04:00
Sander Maijers
0779d3b15e
Don’t panic on receiving data not encoded in UTF-8
Return a `Result` instead.
2017-10-30 20:57:06 -04:00
Jon Gjengset
7c95ae76d6 Swap openssl for native-tls (#43)
* Replace openssl with native-tls

* Add From<TlsError> to allow builder()?

* Update AppVeyor config

* No email since it's not configured
2017-10-01 19:53:03 -04:00