[git] GpgOL - branch, master, updated. gpgol-2.3.1-38-gc702eed

by Andre Heinecke cvs at cvs.gnupg.org
Fri Nov 9 15:48:39 CET 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GnuPG extension for MS Outlook".

The branch, master has been updated
       via  c702eede029cc80841172871d7fb674819d6a081 (commit)
      from  be57fa9d9f52cdd52151c5a0a874abf108932c51 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c702eede029cc80841172871d7fb674819d6a081
Author: Andre Heinecke <aheinecke at intevation.de>
Date:   Fri Nov 9 15:44:21 2018 +0100

    Pass write for closed mails
    
    * src/folder-events.cpp (Invoke): Set is now implicit in close.
    * src/mail.cpp: Change isAboutToBeMoved to passWrite.
    (decryptVerify_o): Stop passing write when processing.
    * src/mailitem-events.cpp (Write): Pass it when a mail was closed
    by us.
    
    --
    After closing with discard changes it should be ok to write
    as long as we are not decrypted again. This can be helpful
    after an external close was triggered and is basically
    the same as what we do for a move.
    
    GnuPG-Bug-Id: T4241

diff --git a/src/folder-events.cpp b/src/folder-events.cpp
index d9e7c13..a970afa 100644
--- a/src/folder-events.cpp
+++ b/src/folder-events.cpp
@@ -115,7 +115,6 @@ EVENT_SINK_INVOKE(FolderEvents)
               log_debug ("%s:%s: Detected move of crypto mail. %p Closing",
                           SRCNAME, __func__, mail);
 
-              mail->setIsAboutToBeMoved (true);
               if (Mail::close (mail))
                 {
                   log_error ("%s:%s: Failed to close.",
diff --git a/src/mail.cpp b/src/mail.cpp
index eafa3ef..a75225f 100644
--- a/src/mail.cpp
+++ b/src/mail.cpp
@@ -106,7 +106,7 @@ Mail::Mail (LPDISPATCH mailitem) :
     m_manual_crypto_opts(false),
     m_first_autosecure_check(true),
     m_locate_count(0),
-    m_is_about_to_be_moved(false),
+    m_pass_write(false),
     m_locate_in_progress(false),
     m_is_junk(false)
 {
@@ -1096,6 +1096,7 @@ Mail::decryptVerify_o ()
 
   setUUID_o ();
   m_processed = true;
+  m_pass_write = false;
 
   /* Insert placeholder */
   char *placeholder_buf = nullptr;
@@ -2045,6 +2046,12 @@ Mail::close (Mail *mail)
   int rc = invoke_oom_method_with_parms (mail->item(), "Close",
                                        NULL, &dispparams);
 
+  if (!rc)
+    {
+      log_debug ("%s:%s: Close successful. Next write may pass.",
+                 SRCNAME, __func__);
+      mail->setPassWrite (true);
+    }
   log_oom ("%s:%s: returned from close",
                  SRCNAME, __func__);
   TRETURN rc;
diff --git a/src/mail.h b/src/mail.h
index 170770c..9a10cbf 100644
--- a/src/mail.h
+++ b/src/mail.h
@@ -590,8 +590,8 @@ public:
   void installFolderEventHandler_o ();
 
   /* Marker for a "Move" of this mail */
-  bool isAboutToBeMoved () { return m_is_about_to_be_moved; }
-  void setIsAboutToBeMoved (bool value) { m_is_about_to_be_moved = value; }
+  bool passWrite () { return m_pass_write; }
+  void setPassWrite(bool value) { m_pass_write = value; }
 
   /* Releases the current item ref obtained in update oom data */
   void releaseCurrentItem ();
@@ -650,7 +650,7 @@ private:
   bool m_manual_crypto_opts; /* Crypto options (sign/encrypt) have been set manually. */
   bool m_first_autosecure_check; /* This is the first autoresolve check */
   int m_locate_count; /* The number of key locates pending for this mail. */
-  bool m_is_about_to_be_moved;
+  bool m_pass_write; /* Danger the next write will be passed. This is for closed mails */
   bool m_locate_in_progress; /* Simplified state variable for locate */
   std::string m_store_id; /* Store id for categories */
   std::string m_verify_category; /* The category string for the verify result */
diff --git a/src/mailitem-events.cpp b/src/mailitem-events.cpp
index 84bd887..485d6f6 100644
--- a/src/mailitem-events.cpp
+++ b/src/mailitem-events.cpp
@@ -576,9 +576,9 @@ EVENT_SINK_INVOKE(MailItemEvents)
              TBREAK;
            }
 
-          if (m_mail->isAboutToBeMoved())
+          if (m_mail->passWrite())
             {
-              log_debug ("%s:%s: Mail is about to be moved. Passing write for %p",
+              log_debug ("%s:%s: Passing write because passNextWrite was set for %p",
                          SRCNAME, __func__, m_mail);
               TBREAK;
             }

-----------------------------------------------------------------------

Summary of changes:
 src/folder-events.cpp   | 1 -
 src/mail.cpp            | 9 ++++++++-
 src/mail.h              | 6 +++---
 src/mailitem-events.cpp | 4 ++--
 4 files changed, 13 insertions(+), 7 deletions(-)


hooks/post-receive
-- 
GnuPG extension for MS Outlook
http://git.gnupg.org




More information about the Gnupg-commits mailing list