Commit Graph

200 Commits

Author SHA1 Message Date
B. Petersen
af67e798fb warn about outdated app 2020-09-19 12:40:03 +02:00
B. Petersen
49f07421ec add a test that checks maybe_warn_on_bad_time() adds a new message only every day 2020-09-19 12:40:02 +02:00
B. Petersen
7b38d6693d add a device-message if the system clock seems to be inaccurate 2020-09-19 12:40:02 +02:00
Floris Bruynooghe
ee27c7d9d4 Run clippy on tests and examples 2020-09-05 18:13:16 +02:00
Alexander Krotov
4481ab18f5 configure: try multiple servers for each protocol
LoginParamNew structure, which contained possible IMAP and SMTP
configurations to try is replaced with uniform vectors of ServerParams
structures. These vectors are initialized from provider database, online
Mozilla or Outlook XML configuration or user entered parameters.

During configuration, vectors of ServerParams are expanded to replace
unknown values with all possible variants, which are tried one by one
until configuration succeeds or all variants for a particular protocol
(IMAP or SMTP) are exhausted.

ServerParams structure is moved into configure submodule, and all
dependencies on it outside of this submodule are removed.
2020-08-27 23:11:25 +03:00
Hocuri
927c7eb59d Fix cancelling imex (#1855)
Fix deltachat/deltachat-android#1579

Also: Make sure that if an error happens, the UI can show the error to the user
2020-08-27 15:02:00 +02:00
Hocuri
b9ca7b8ace Remove newlines from group names, chat names and the displayname (#1845) 2020-08-20 09:05:08 +02:00
Hocuri
cf72d9a41e Tar backup (#1749)
Fix #1729
Co-authored-by: holger krekel  <holger@merlinux.eu>
Co-authored-by: Alexander Krotov <ilabdsf@gmail.com>
2020-08-18 11:54:46 +02:00
dignifiedquire
1ae49c1fca unify events 2020-08-10 10:32:48 +02:00
B. Petersen
7a7cdad566 fix dc_get_filemeta() 2020-08-06 23:45:37 +02:00
B. Petersen
2b74c58a45 add failing test for dc_get_filemeta() 2020-08-06 23:45:24 +02:00
Alexander Krotov
71c7b30db7 Remove image_meta dependency 2020-07-22 00:25:54 +03:00
Alexander Krotov
18e4abc1df Remove some and deny new indexing and slicing 2020-07-11 21:43:02 +03:00
Floris Bruynooghe
9d7b756ddb Unify some testing interfaces
This tidies up our testing tools a little bit.  We had several
functions which through various changes ended up doing the same and
some more which did very similar stuff, so I merged them to have
things simpler.  Also moved towards methods on the TestContext struct
while cleaning this up anyway, seems like this structure is going to
stay around for a bit anyway.

The intersting change is in `test_utils.rs`, everything else is just
updating callers.  A few tests used example.org which I moved to
example.com to be able to re-use more configuration of the test
context.
2020-06-20 14:37:41 +02:00
Hocuri
b6161c431b Fix #1474 "Sending message to contact with < or > in Recipient gets treated as "Sent" but is not received" (#1476)
Fix #1474 "Sending message to contact with < or > in Recipient gets treated as "Sent" but is not received".

As I was at it, I also extracted the correct name and address from addresses like Mueller, Dave <dave@domain.com>.
2020-05-29 18:14:21 +02:00
Friedel Ziegelmayer
014d2946b2 feat: use EventEmitter for events 2020-05-22 21:03:01 +02:00
dignifiedquire
8a7923c974 Merge remote-tracking branch 'origin/master' into feat/async-jobs 2020-05-13 18:29:22 +02:00
B. Petersen
39cb9c425c fixup 2020-04-26 11:44:27 +02:00
B. Petersen
dff1ae0fb4 move duration-formatting to a separate function and add tests for that 2020-04-26 11:16:59 +02:00
Floris Bruynooghe
220500efbb Move key loading from deprecated Key struct to DcKey trait
This moves the loading of the keys from the database to the trait and
thus with types differing between public and secret keys.  This
fetches the Config::ConfiguredAddr (configured_addr) directly from the
database in the SQL to simplify the API and consistency instead of
making this the responsiblity of all callers to get this right.

Since anyone invoking these methods also wants to be sure the keys
exist, move key generation here as well.  This already simplifies some
code in contact.rs and will eventually replace all manual checks for
existing keys.

To make errors more manageable this gives EmailAddress it's own error
type and adds some conversions for it.  Otherwise the general error
type leaks to far.  The EmailAddress type also gets its ToSql trait impl
to be able to save it to the database directly.
2020-04-24 01:11:11 +02:00
Alexander Krotov
cb92579461 Use slice patterns in EmailAddress::from_str() 2020-04-13 23:02:57 +03:00
Friedel Ziegelmayer
24f4cbbb27 refactor: replace failure
- failure is deprecated
- thiserror for deriving Error impl
- anyhow for highlevel error handling
2020-04-10 22:39:28 +02:00
dignifiedquire
7140898db9 async file io 2020-03-14 16:26:15 +01:00
dignifiedquire
818e921192 it compiles 2020-03-14 15:17:47 +01:00
Alexander Krotov
82b4647b95 Update dc_truncate() comment 2020-03-02 23:09:38 +03:00
B. Petersen
0e4031348f remove unwrap-flag from dc_truncate() - it was never really used on-purpose 2020-03-02 14:10:44 +01:00
Floris Bruynooghe
98b3151c5f Refactor keypair handling and expose storing keypairs on ffi
The user-visible change here is that it allows the FFI API to save
keys in the database for a context.  This is primarily intended for
testing purposes as it allows you to get a key without having to
generate it.

Internally the most important change is to start using the
SignedPublicKey and SignedPrivateKey types from rpgp instead of
wrapping them into a single Key object.  This allows APIs to be
specific about which they want instead of having to do runtime checks
like .is_public() or so.  This means some of the functionality of the
Key impl now needs to be a trait.

A thid API change is to introduce the KeyPair struct, which binds
together the email address, public and private key for a keypair.

All these changes result in a bunch of cleanups, though more more
should be done to completely replace the Key type with the
SignedPublicKye/SignedPrivateKey + traits.  But this change is large
enough already.

Testing-wise this adds two new keys which can be loaded from disk and
and avoids a few more key-generating tests.  The encrypt/decrypt tests
are moved from the stress tests into the pgp tests and split up.
2020-02-06 22:00:29 +01:00
Alexander Krotov
2687777a82 Remove unused EmailAddress::new() 2020-01-26 16:18:34 +01:00
Alexander Krotov
ebab893330 dc_tools: remove unused dc_derive_safe_stem_ext()
It had the same .truncate() bug as BlobObject::sanitise_name()
2020-01-25 13:04:56 +01:00
Floris Bruynooghe
7540770dec Resultify get_chat_id_by_grpid
I want to avoid having to be able to represent a chat_id of 0 in order
to more nicely turn chat_id into a ChatId newtype.
2020-01-16 21:46:06 +01:00
B. Petersen
f73ba895af remove some meanwhile unneeded allow-statements 2019-12-26 16:26:06 +00:00
Alexander Krotov
cd198223ea Remove unwrap() from time() function
This change is a part of the effort to enable clippy::option_unwrap_used and clippy::result_unwrap_used
2019-12-21 08:58:41 +01:00
Alexander Krotov
73c21ae0a9 refactor: enable clippy::unreadable_literal 2019-12-18 23:23:38 +03:00
Alexander Krotov
a0645dc713 Resultify dc_create_folder and don't ignore its errors 2019-12-16 00:49:51 +03:00
holger krekel
5f916f5a9c - create and use a ContactIds type as an ordered set instead of "Vec<u32>".
- recreate the group list more carefully, fixes #985

- resultify a few functions in the dc_receive pipeline

- don't quote displaynames in email-addresses, use utf8, preliminrarily addresses #976
2019-12-09 16:29:24 +01:00
Alexander Krotov
2304d63bb3 Simplify dc_get_filesuffix_lc 2019-12-06 09:45:24 +01:00
holger krekel
2a081aac2b fix grpid extraction from In-Reply-To and References headers 2019-12-05 01:18:53 +01:00
B. Petersen
b8057b7ddb remove >1y old file path migration which is now uneeded and has potential issues 2019-12-04 06:11:01 +01:00
Alexander Krotov
ad87b7c4a5 Fix clippy warnings 2019-12-03 20:20:52 +03:00
dignifiedquire
db88212a64 refactor: unsafe, CStr and libc moved out 2019-12-03 12:25:22 +01:00
dignifiedquire
48dd3b8506 less dead code, and update test 2019-12-03 12:25:22 +01:00
dignifiedquire
9196ed1e9f remove dead code 2019-12-03 12:22:55 +01:00
dignifiedquire
dbd6303829 remove mmime 2019-12-03 12:22:55 +01:00
Alexander Krotov
02e281e465 Resultify dc_write_file and related functions 2019-11-30 01:54:42 +01:00
B. Petersen
f7047bbf51 add detailed comments about time-smearing 2019-11-19 22:52:24 +01:00
B. Petersen
c3a53cefb0 fix time smearing
if two messages have the same time,
this results i all kinds of sorting failures,
esp. in non-delta-muas and on forwarding messages.
so, no two messages sent out from delta have the same timestamp.
normally, this is no problem, but when things are sent too fast,
eg. on forwarding, we lend us some time from the future.

however, all this did not work
because we forgot to write back the modified time,
this is fixed by this commit, as well as some cleanup.
2019-11-19 22:23:01 +01:00
B. Petersen
37ecfa6b67 fix gm2local offset calculations 2019-11-09 20:26:00 +01:00
B. Petersen
99ba2fb358 let dc_timestamp_to_str() print the local time, not UTC times. the function is used for outputs directly shown to the user, eg. dc_get_msg_info() 2019-11-09 20:26:00 +01:00
holger krekel
6b18cbda1f refine dc_copy along the lines @flub did for blobstore 2019-11-06 13:26:32 +01:00
holger krekel
cb00f5da79 fix #786 by always succeeding to create a canonical deterministic message-id -- thanks @csb0730 for the analysis of the issue 2019-11-03 01:28:45 +01:00