Alexander Krotov
2977ceb459
Turn deltachat::configure functions into Context methods
...
Now configure module is no longer public. Users should call
Context.configure() and Context.is_configured() methods.
Configure module is completely hidden from documentation unless
--document-private-items option is specified.
2020-02-16 21:17:03 +01:00
Alexander Krotov
e00d4e0ed8
Remove AvatarAction::None
...
Where needed, Option<AvatarAction> can be used to extend it.
2020-02-16 15:03:37 +03:00
Alexander Krotov
772127d9d8
Remove outdated comment
...
delete_msg no longer returns an integer
2020-02-16 03:43:25 +03:00
Alexander Krotov
5a4040cf0b
cargo fmt
2020-02-16 03:22:30 +03:00
Alexander Krotov
b54f580e66
mimeparser: allow "inline" attachments
...
RFC 2183 specifically allows filenames to be specified for MIME parts
with "inline" Content-Disposition.
Previously we treated such attachments as an error, causing the whole
message parsing to fail. Now it is only an error if Content-Disposition
cannot be parsed.
MIME parts with filename are now considered to be attachments
regardless of their Content-Disposition type. However, "attachment"
Content-Disposition is still processed differently: we generate a
filename for it even if it is not specified.
2020-02-16 03:22:30 +03:00
Alexander Krotov
b80360b7da
Pass avatar file path to build_selfavatar_file as &str
2020-02-15 22:20:05 +03:00
Alexander Krotov
2753883687
Rename add_selfavatar into attach_selfavatar to match field name
2020-02-15 21:22:25 +03:00
Alexander Krotov
672fe2dfd7
Parse KML without converting to UTF-8 and back to bytes
2020-02-14 22:34:41 +01:00
Alexander Krotov
04bb6997a2
Remove unused imap::idle::Error::ImapError variant
2020-02-14 22:33:36 +01:00
Alexander Krotov
9008a65c14
Remove DC_IMAP_SEEN constant
...
Replace "flags" integer with a "seen" boolean.
2020-02-13 13:55:06 +01:00
Alexander Krotov
4e07e4c7f3
Fix a typo (bbc-self instead of bcc-self)
2020-02-12 23:15:04 +03:00
Alexander Krotov
beb91271de
Unlock session before calling add_flag_finalized
...
add_flag_finalized tries to lock session again and IMAP thread deadlocks
if session is not unlocked.
2020-02-12 11:38:18 +00:00
Alexander Krotov
7e9585ebc5
cargo fmt
2020-02-12 11:38:18 +00:00
Alexander Krotov
0c4b3f71e5
Check for MOVE capability before using MOVE command
2020-02-12 11:38:18 +00:00
Alexander Krotov
52520635ea
Fix a typo ("requests")
2020-02-11 22:32:35 +03:00
Alexander Krotov
489e5111ac
GitHub actions: check all packages, examples, tests and features
2020-02-11 02:09:47 +03:00
Alexander Krotov
2d4c20af35
Revert "Make dc_receive_imf non-public"
...
This reverts commit cabb58a9aa .
dc_receive_imf() is used in the "repl" example.
This was not caught by CI because it does not build examples.
2020-02-11 02:03:36 +03:00
Alexander Krotov
66fdb447f7
Rename get_headerdef into get_header_value
2020-02-11 01:59:41 +03:00
Alexander Krotov
c801775a39
Implement get_headerdef method for MailHeader slices
2020-02-11 01:59:41 +03:00
Alexander Krotov
f5bb57d6a6
Fix a typo ("Messag")
2020-02-11 00:07:37 +03:00
Alexander Krotov
1071ab05db
Move created_db_entries into cleanup closure instead of borrowing
2020-02-10 23:31:46 +03:00
Alexander Krotov
bb10501f56
Improve test_one_account_send_bcc_setting
...
Clone the first account and check that second device actually sees the
message copied via BCC-to-self.
2020-02-10 01:17:28 +01:00
Alexander Krotov
c4d5f657da
python tests: remove peek_online_config()
...
Using peek_online_config() results in a message being sent to some
other account, used by previous test. If tests are run in parallel,
for example with pytest-xdist, we could be sending a message to a still
online DC client.
2020-02-10 01:17:28 +01:00
Alexander Krotov
cabb58a9aa
Make dc_receive_imf non-public
2020-02-09 23:30:06 +00:00
Alexander Krotov
e64ce5bb4f
Reduce is_msgrmsg_rfc724_mid_in_list scope to pub(crate)
2020-02-09 23:28:29 +00:00
Alexander Krotov
bc750d61d2
Remove outdated comment
2020-02-09 23:28:29 +00:00
Alexander Krotov
3150901b6e
Improve logs for prefetch checks
2020-02-09 23:28:29 +00:00
Alexander Krotov
4f6745b742
Check if contact is blocked or accepted before downloading it
2020-02-09 23:28:29 +00:00
Alexander Krotov
bcdc323a97
Factor from_field_to_contact_id out of dc_receive_imf
2020-02-09 23:28:29 +00:00
Alexander Krotov
4fd4cc709d
Prefetch FROM field
2020-02-09 23:28:29 +00:00
Alexander Krotov
0fac463144
Prefetch Message-ID header instead of envelope
...
Envelope has the same Message-ID, but using other fields from the
envelope, such as From field, is error-prone. They may contain values
different from the message body. As we don't parse the envelope later on,
it is better not to fetch it during prefetch too.
2020-02-09 23:28:29 +00:00
Alexander Krotov
d809dfac65
Do not download messages that are not displayed
2020-02-09 23:28:29 +00:00
Alexander Krotov
983fd70260
Update imap-proto to 0.10.2
...
It adds support for parsing of BODY[HEADER.FIELDS (...)] fetches.
2020-02-09 23:28:29 +00:00
Alexander Krotov
ea11a5274e
Remove unwrap() in prefetch_get_message_id
2020-02-09 23:28:29 +00:00
Alexander Krotov
42356c2a67
Fix a typo in prefetch_get_message_id
2020-02-09 23:28:29 +00:00
Alexander Krotov
5a84ab2011
Fix a typo (s/ideling/idling/)
2020-02-09 23:28:29 +00:00
Alexander Krotov
b4573e341f
Return &'static str from HeaderDef.get_headername()
2020-02-09 19:17:27 +01:00
Alexander Krotov
df252c4704
Do not check for XLIST capability
...
This capability is not used by Delta Chat. Moreover, XLIST is deprecated
in favor of https://tools.ietf.org/html/rfc6154 , which should be
supported instead. Delta Chat already looks for \Sent attribute in
get_folder_meaning().
2020-02-09 19:15:20 +01:00
Alexander Krotov
d1912f873b
Resultify fetch_single_msg
2020-02-09 19:14:36 +01:00
Alexander Krotov
1ca23a7479
Update link to C core issue
2020-02-09 03:28:59 +03:00
Alexander Krotov
61daf7218d
Preconfigure the key in clone_online_account()
...
This avoids generating the key in test_ac_setup_message
2020-02-08 22:39:34 +00:00
Alexander Krotov
f34237ebc8
Run python tests on CI in debug mode
...
This should speed up compilation and enable additional integer overflow checks.
2020-02-08 16:58:55 +01:00
Alexander Krotov
aadeb3b87e
job: do not render messages without recipients
2020-02-08 16:58:55 +01:00
Alexander Krotov
0864e640ed
Simplify Peerstate.peek_key()
2020-02-08 00:02:42 +01:00
Alexander Krotov
c7eca8deb3
chat: resultify parent_is_encrypted and don't ignore the error
...
This should prevent accidental sending of unencrypted messages when
parent_is_encrypted returns an error. For example, if the database is
busy due to other thread activity, parent_is_encrypted should not return
false. Instead, message sending job should retry later.
2020-02-04 02:54:56 +03:00
Alexander Krotov
627b54f712
sql: add resultified version of query_get_value
2020-02-04 02:54:56 +03:00
Alexander Krotov
8ef7b6fc54
mimeparser: pass the Context around explicitly
2020-02-03 23:48:55 +03:00
Alexander Krotov
d83652b0fc
Add standard reference for UID FETCH quirk
2020-02-02 12:46:31 +00:00
Alexander Krotov
61726168d6
examples/simple.rs: fix clippy warnings
2020-01-29 23:29:34 +03:00
Alexander Krotov
893eb8b73b
Move message size limits to constants
...
Corresponding C code:
https://github.com/deltachat/deltachat-core/blob/d31c82478c4410b6f575e501c565f627521e05a2/src/dc_context.h#L165
2020-01-28 23:32:38 +03:00
Alexander Krotov
07a5ee7d2c
mimeparser: construct MimeMessage at the end of from_bytes()
...
This reduces the scope of code dealing with mutable structures.
2020-01-28 17:46:16 +03:00
Alexander Krotov
c7a300be2f
mimeparser: split parse_headers() into multiple functions
2020-01-28 17:46:16 +03:00
Alexander Krotov
ef842fca89
Increase python test timeout to 90 seconds
2020-01-28 17:44:34 +03:00
Alexander Krotov
bdbe9e1ca5
fix(python): add more checks for _thread_quitflag
2020-01-28 17:44:34 +03:00
Alexander Krotov
0c7f65222c
fix(python): add workaround for interrupt_idle race condition
2020-01-28 17:44:34 +03:00
Alexander Krotov
cf7ccb5b8c
configure: do not format! an empty string
2020-01-26 16:51:51 +01:00
Alexander Krotov
b83e6f6e7c
Simplify MsgId.is_special()
2020-01-26 16:19:01 +01:00
Alexander Krotov
2687777a82
Remove unused EmailAddress::new()
2020-01-26 16:18:34 +01:00
Alexander Krotov
3a08929b05
Print "email" JSON-value if it has a wrong type
2020-01-26 12:28:42 +00:00
Alexander Krotov
033a44580c
Turn get_[fresh_]msg_cnt() into ChatId members
2020-01-25 22:11:13 +00:00
Alexander Krotov
4734bcfbb4
Update Chat.unarchive() comment
2020-01-25 22:11:13 +00:00
Alexander Krotov
099fe6f477
Rename Chat.set_blocking() into set_blocked()
2020-01-25 22:11:13 +00:00
Alexander Krotov
889327b5f6
Rename Chat.archive() into Chat.set_archived()
2020-01-25 22:11:13 +00:00
Alexander Krotov
a2845f44ab
Turn ChatId-related functions into methods
2020-01-25 22:11:13 +00:00
Alexander Krotov
a7477516d1
mimefactory: factor out get_location_kml_part
2020-01-25 17:44:19 +00:00
Alexander Krotov
bf3eab453c
Avoid panic in sanitise_name()
...
.truncate() is not safe because it panics if string length does not
lie on character boundary. We convert the string to characters and take
first n character instead.
2020-01-25 13:04:56 +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
Alexander Krotov
4c67b3a118
Add failing test_sanitise_name() test
2020-01-25 13:04:56 +01:00
Alexander Krotov
64026fde7c
Store main part of the message outside of "parts" vector
2020-01-22 04:28:35 +00:00
Alexander Krotov
adcdae4abe
Factor get_message_kml_part out of render_message
2020-01-22 04:28:35 +00:00
Alexander Krotov
90a4303c8e
Make it possible to compile with stable Rust
2020-01-21 19:50:42 +03:00
Alexander Krotov
84a5276ab0
Fix build
...
0f52f63863 rebase broke the build
2020-01-21 17:17:51 +03:00
Alexander Krotov
1732c3b350
Reduce the scope of clippy exceptions
...
This prevents creation of new overly complex functions.
2020-01-21 14:49:53 +01:00
Alexander Krotov
0f52f63863
Add "Auto-Submitted: auto-replied" header to MDNs
...
This header is specified in RFC 3834.
2020-01-21 16:29:18 +03:00
Alexander Krotov
a3f2088046
Fix the message printed on job success
...
"Cannot be retried" does not make it clear if the job succeeded or failed.
2020-01-20 10:47:32 +01:00
Alexander Krotov
d8454d9da5
Deduplicate SendMdn and SendMsgToSmtp code
2020-01-20 00:35:11 +03:00
Alexander Krotov
318194a216
Rename Param::MessageId into Param::MsgId
...
MsgId refers to database ID, same as crate::message::MsgId newtype.
2020-01-20 00:35:11 +03:00
Alexander Krotov
b50d2358d3
Rename X-Additional-Message-IDs into Additional-Message-IDs
...
X- prefixes are deprecated in https://tools.ietf.org/html/rfc6648
2020-01-20 00:35:11 +03:00
Alexander Krotov
763587ffb4
Load only one job at a time
...
As a result of job, other jobs can be added or deleted. To avoid
processing deleted jobs and to process other jobs in the correct order,
we should reload them after performing each job.
However, we don't use "LIMIT 1" in SQL queries, because we want to be
able to skip over invalid jobs, and checking if job is invalid can only
be done in Rust.
2020-01-20 00:35:11 +03:00
Alexander Krotov
8a375c12e9
Mark two messages as seen in test_send_and_receive_message_markseen
...
This may or may not send a combined MDN out. We don't test for it,
but the test ensures that *if combined MDNs are sent in this case*,
then we receive them correctly.
2020-01-20 00:35:11 +03:00
Alexander Krotov
11afdb51f3
Log it when MDNs are combined
2020-01-20 00:35:11 +03:00
Alexander Krotov
e4353f4650
Aggregate SendMdn jobs
2020-01-20 00:35:11 +03:00
Alexander Krotov
9d4437a7f5
Make it possible to add X-Additional-Message-IDs to MDNs
2020-01-20 00:35:11 +03:00
Alexander Krotov
493bf5ed08
Parse additional message IDs in MDNs
2020-01-20 00:35:11 +03:00
Alexander Krotov
93800fd834
Construct list of recipients in SendMdn
...
There is always one recipient for MDNs, so it is easier to only handle
this case.
2020-01-20 00:35:11 +03:00
Alexander Krotov
79bc34ed76
Move check for blocked contact from mimefactory to SendMdn job
2020-01-20 00:35:11 +03:00
Alexander Krotov
b40ad7e87e
Store contact ID in SendMdn job foreign_id
...
This change makes it possible to find all pending MDNs for the contact
with an SQL query.
2020-01-20 00:35:11 +03:00
Alexander Krotov
1ab3fba212
Move check for enabled MDNs from message rendering to MDN job
2020-01-20 00:35:11 +03:00
Alexander Krotov
3cd0bbc0f4
Move foreign_id handling out of mimefactory
2020-01-20 00:35:11 +03:00
Alexander Krotov
a806728e43
Make a new job type for MDN sending
...
Now MDN is generated on every try instead of being stored in a blob.
2020-01-20 00:35:11 +03:00
Alexander Krotov
683037ca69
Remove no-op jobs SendMdnOld and SendMsgToSmtpOld
2020-01-20 00:35:11 +03:00
Alexander Krotov
a113127df1
Implement Display for MessageState
2020-01-20 00:35:11 +03:00
Alexander Krotov
fecfaaf812
Test MDN parsing
2020-01-20 00:35:11 +03:00
Alexander Krotov
8df8f1f6f7
Update deltachat_derive metadata
...
Same as core and FFI.
2020-01-19 21:40:22 +01:00
Alexander Krotov
5502ca5f58
Update deltachat_derive dependencies
2020-01-19 21:40:22 +01:00
Alexander Krotov
75b8cfa92e
Disable unnecessary image crate features
...
TIFF file format and parallel processing of JPEGs are not necessary to
recode avatars.
2020-01-18 00:30:52 +03:00
Alexander Krotov
08dd0e34d1
Make reqwest features "blocking" and "json" non-optional
2020-01-17 16:01:11 +03:00
Alexander Krotov
213c5df706
mimefactory: remove unused "increation" field
2020-01-16 23:37:53 +03:00
Alexander Krotov
df7253b13e
Document MessageState and fix some typos
2020-01-15 00:48:10 +03:00
Alexander Krotov
fcafd63f41
Remove NOTE about third-party libraries
...
"libs" directory has been removed during transition to Rust
2020-01-14 10:29:08 +03:00