Home GnuPG
Diffusion GpgOL 9f81ed6561c5

Change encryption to work on OOM

Description

Change encryption to work on OOM

* src/attachment.cpp (Attachment::Attachment(LPDISPATCH)): New.
Construct an in memory representation of an attachment object.
(Attachment::get_file_name): New, sometimes it differs from
display name.
(Attachment::copy_to): Move logic here from mail.cpp
(Attachment::olAttachmentType): New enum.
* src/cryptcontroller.cpp (CryptController::collect_data): Move
out attachment handling. Use new data from mail object.
* src/mail.cpp (copy_attachment_to_file): Moved into attachment
class.
(Mail::updateOOMData_o): Collect data of attachments, write
out mail to tmp file to do serialization.
(Mail::checkSyncCrypto_o): For now disable sync for attachments.
(Mail::isMultipartRelated): New. Moved from mimemaker.
(Mail::plainAttachments): New data object to carry attachment data.
* src/mailitem-events.cpp (SEND): Directly encrypt. Don't wait
for AfterWrite.
* src/main.c (read_options): Remove syncEnc override.
* src/mimemaker.cpp (write_attachments): Use mail object.
(add_body_and_attachments): Use mail object.

This fixes
by working only on the outlook object model and avoiding
a sync to MAPI which might cause a server sync depending
on the MAPIStore implementation.

This will also help us to allow attaching mails and other
outlook objects because we now have better control about this.

Details

Provenance
aheineckeAuthored on Dec 7 2020, 5:16 PM
Parents
rO310824f4e8eb: Add OOM SaveAs helper
Branches
Unknown
Tags
Unknown
Tasks
T5022: GpgOL: Unencrypted drafts on server even if draft encryption is on