Lenny Maiorani
97bd13264a
Everywhere: Make use of container version of all_of
...
Problem:
- New `all_of` implementation takes the entire container so the user
does not need to pass explicit begin/end iterators. This is unused
except is in tests.
Solution:
- Make use of the new and more user-friendly version where possible.
2021-08-03 10:46:43 +02:00
Linus Groh
028e4bd2ae
LibIMAP: Parse (but ignore) OK [HIGHESTMODSEQ <mod-sequence-value>]
...
Parse it to avoid dbgln() spam, but ignore the value for now. See:
https://datatracker.ietf.org/doc/html/rfc4551#section-3.1.1
2021-07-24 22:22:41 +01:00
Linus Groh
66e47d05c5
LibIMAP: Parse OK [CLOSED]
...
In my case the mail server responded with the following after selecting
a mailbox (in the Mail application):
* OK [CLOSED] Previous mailbox closed.
* FLAGS (\Answered \Flagged ...)
* OK [PERMANENTFLAGS (\Answered \Flagged ... \*)] Flags permitted.
* 2 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1234567890] UIDs valid
* OK [UIDNEXT 12345] Predicted next UID
* OK [HIGHESTMODSEQ 123456] Highest
A6 OK [READ-WRITE] Select completed (0.002 secs).
The [CLOSED] part threw the parser off as it was expecting a space after
the atom following the opening bracket, which would actually lead to a
crash of Mail (AK::Optional::value() without value).
2021-07-24 22:22:41 +01:00
Linus Groh
73a9d2ec32
LibIMAP: Replace abuse of String::matches() with == in the parser
...
matches() is for globs. These are not globs.
2021-07-24 22:22:41 +01:00
Linus Groh
ddd11b98d9
LibIMAP: Add and use Parser::consume_until_end_of_line()
2021-07-24 22:22:41 +01:00
Linus Groh
8e8d1383b7
LibIMAP: Clean up Parser.h a bit
...
Move members after methods, remove useless parameter names ('x', 's'),
more sensible method grouping.
2021-07-24 22:22:41 +01:00
Linus Groh
8c05b4e137
LibIMAP: Rename IMAP::Parser::{parse => consume}_while()
...
This isn't parsing anything.
2021-07-24 22:22:41 +01:00
Luke
3948161c14
LibIMAP: Add a bunch of serialize_astring in command construction
...
These were putting the raw string values into the command, where they
should be astrings as per the grammar:
https://datatracker.ietf.org/doc/html/rfc3501#section-9
2021-07-24 19:03:43 +01:00
Luke
e80f8746b1
LibIMAP: Use try_parse_number instead of parse_number when parsing parts
...
This makes it so we can use Optional instead of relying on an error
number.
2021-07-24 20:11:28 +04:30
Luke
2c793d5935
LibIMAP: Make Section::parts unsigned
2021-07-24 20:11:28 +04:30
Luke
27644785f1
LibIMAP: Add method to get data out of BodyStructure
2021-07-24 20:11:28 +04:30
Luke
c63913b633
LibIMAP: Add quoted printable decoder
...
This is a very common encoding for e-mail. Gmail seems to encode all
HTML e-mail in it.
imap qp clang
2021-07-24 20:11:28 +04:30
Timothy
2eb93f2628
LibCore+LibIMAP: Move Promise to LibCore
...
This makes Promise available without having to link LibIMAP.
2021-07-15 11:11:14 +02:00
x-yl
9174fabf05
LibIMAP: Support for remaining IMAP commands
...
These include APPEND, AUTHENTICATE, CHECK, CLOSE, EXAMINE, EXPUNGE,
LSUB, SUBSCRIBE, UNSUBSCRIBE
2021-06-11 23:58:28 +04:30
x-yl
16995dc3d9
LibIMAP: Support for APPEND
2021-06-11 23:58:28 +04:30
x-yl
7021413d30
LibIMAP: Support for COPY, CREATE, DELETE and RENAME
2021-06-11 23:58:28 +04:30
x-yl
076c708d0a
LibIMAP: Support for STORE and STATUS
2021-06-11 23:58:28 +04:30
x-yl
a6339297ec
LibIMAP: Support for the SEARCH command
2021-06-11 23:58:28 +04:30
x-yl
318709c8ca
LibIMAP: Support for FETCH BodyStructure
...
This completes the implementation of the FETCH command.
2021-06-11 23:58:28 +04:30
x-yl
c152a9a594
LibIMAP: Support for the FETCH command (*mostly)
...
This commit doesn't include support for FETCH BODY, because it's a bit
big already. Rest assured, FETCH is the most complicated IMAP command,
and we'll go back to simple boring ones shortly.
2021-06-11 23:58:28 +04:30
x-yl
1e9dfdcdcc
LibIMAP: Support for the IDLE command
2021-06-11 23:58:28 +04:30
x-yl
f00c2c0192
LibIMAP: Support for LOGIN and LOGOUT
2021-06-11 23:58:28 +04:30
x-yl
2f04d24b66
LibIMAP: Support for the LIST and SELECT commands
2021-06-11 23:58:28 +04:30
x-yl
0f42ea6770
LibIMAP: Support for CAPABILITY command & response
...
This involves parsing messages with untagged responses
2021-06-11 23:58:28 +04:30
x-yl
8c6061fc4a
LibIMAP: Add a new IMAP client and support NOOP
...
A large commit, but sets up the framework for how the IMAP library will
work. Right now only the NOOP command and response is supported.
2021-06-11 23:58:28 +04:30