HTTP Requests should go through the get_async()/post_async() methods of
JmapConnection, which traces requests if optional feature `jmap-trace`
is enabled.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Refactor the standards! macro to remove unnecessary repetitions, and
also add RFC2183 as source for the Content-Disposition header.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Improve Debug impl for ContentType, Text, ContentTransferEncoding which
all include bytes in some of their variants. The derived Debug
implementation did not show them as readable ascii strings, so a custom
impl was necessary to make it readable.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Adding ourselves to our contacts doesn't make sense (in the generic
case) so remove them from the list that is shown when the user selects
the add contacts shortcut.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add imap-shell to tools subcommand.
To use, run
$ meli tools imap-shell <account-name>
Where account name is what you have in your config file.
For convenience, typing an invalid name will list all the valid names:
$ meli tools imap-shell "asdf"
The configuration file does not contain the account `asdf`. It contains the following:
user@example.com
work
personal account
Try again with a valid account name.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
I first split the rfc8620.rs into two files with an octopus merge but
getting fixups autosquashed in rebase was impossible with this approach.
So I made the split manually and botched the state of the two splitted
halves.
This commit removes extraneous code and the unused rfc8620.rs file.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Add type that preserves both text (String) and parsed Url value for a
Url template.
Also add a test to catch regressions.
Closes#403 (JMAP: message body fetching broken on v0.8.5)
Fixes: 51e3f163d4 ("melib/jmap: Use Url instead of String in deserializing")
Resolves: https://git.meli-email.org/meli/meli/issues/403
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
In anticipation of next commit which will flatten the rfc8620 module
(move submodules to root).
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
jmap module hierarchy has been historically weird at places, because
some modules had been developed in separate bursts.
Flatten object module since it was not necessary.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
ShellExpandTrait::expand was not used consistently, leading to only some
functionalities supporting things like tilde expansion.
Fixes#387
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
meli/melib are UTF8 software, so we should have proper Unicode support.
A compile-time env var is added, `UNICODE_REGENERATE_TABLES` to force
network access and rebuild the cached unicode tables.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
Implement hashing for Card.
This fixes the appearance of duplicate entries in the add contacts
selector in an envelope view when an address appears more than one time
in the envelope headers.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
General refactoring to make blocking operations use special blocking
thread workers, SQL operations to use transactions, and setting up WAL
journal mode mode to minimize locking.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>
set_err_kind() is a method of the IntoError trait, not an Error method;
it is meant to be used for any error type that can be converted into
Error. Since melib::Error implements Into<melib::Error> tautologically,
this was not a compilation error. Nevertheless, the correct thing to do
is use the type method directly to set ErrorKind.
Signed-off-by: Manos Pitsidianakis <manos@pitsidianak.is>