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
c2c7e2a3f7
In Authenticator::process change the challenge from a Vec<u8> to a &[u8]
2018-11-10 08:54:46 +00:00
Kim Minh Kaplan
892fe49a68
Decode the Base64 AUTHENTICATE challenge
2018-11-09 22:35:22 +00:00
Kim Minh Kaplan
1dd55ff066
Move Authenticator to returning an AsRef<u8>.
2018-11-09 22:35:12 +00:00
Kim Minh Kaplan
93d032181d
imap::client::Client::authenticate: Base64 encode the result of the Authenticator.
...
Fixes issue #95 .
2018-11-07 11:05:48 +00:00
Jon Gjengset
b45beb88ed
Fix #93 ; why doesn't this fail for me or CI?
2018-11-03 16:03:32 -04: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
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
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
Shaun Savage
ba8afa7918
changed try! to ?
2018-06-27 23:17:49 +00: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
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
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
Jon Gjengset
e65bbe1006
rustfmt. fixes #29
2017-09-30 17:58:30 -04:00
Jon Gjengset
b07216ca7a
Make IDLE API be more straightforward ( #41 )
...
In particular, the API for `IdleHandle` now reflects that it is only
really meant for single-use. It mutably borrows the `Client`, so once
`wait` returns there isn't really a good reason to keep the `IdleHandle`
around (because you'll likely want to issue some other commands).
There is something to be said for being able to operate on the IDLE
stream, but we'll leave that for later.
This also avoids some unfortunate unavoidable panics when the connection
fails while the client is IDLEing.
2017-09-29 22:37:15 -04:00
Jon Gjengset
8383b47f35
Use BufStream for better I/O handling ( #39 )
...
* Use bufstream for better read/write
* Read with length 0 == EOF
* Adapt read_delay test to write one chat at a time
* Add test for eof reads
* Neater interface for MockStream
2017-09-27 17:38:51 -04:00
Matt McCoy
b0a095e292
Remove unneeded to_string() function calls
...
The code was calling to_string() which was turning
String types into String types. This is redundant and we don't need to do it.
2017-07-10 21:47:54 -04:00
Matt McCoy
86e1d46507
rustfmt the codebase ( #36 )
...
This will ensure that we are properly formatting this library code according to rust standards
2017-07-10 21:38:13 -04:00