[Akonadi] [Bug 331991] GnuPG signatures broken by "Pipe Through" filter action

Sandro Knauß mail at sandroknauss.de
Sun Mar 30 18:27:01 BST 2014


https://bugs.kde.org/show_bug.cgi?id=331991

--- Comment #4 from Sandro Knauß <mail at sandroknauss.de> ---
It can be tracked down to the mark as action
(mailcommon/filter/filteractionsetstatus.cpp).

So all mark as Ham, Spam or Important via Filter are affected.

The bug lies in the mailmodifyjob, that modifies the mail in a way that it
breaks:
agents/mailfilteragent/filtermanager.cpp (line 467):
      if ( context.needsPayloadStore() || context.needsFlagStore() ) {
          Akonadi::Item item = context.item();
          //the item might be in a new collection with a different remote id,
so don't try to force on it
          //the previous remote id. Example: move to another collection on
another resource => new remoteId, but our context.item()
          //remoteid still holds the old one. Without clearing it, we try to
enforce that on the new location, which is
          //anything but good (and the server replies with "NO Only resources
can modify remote identifiers"
          item.setRemoteId(QString());
          Akonadi::ItemModifyJob *modifyJob = new Akonadi::ItemModifyJob( item,
this );
          modifyJob->disableRevisionCheck(); //no conflict handling for mails
as no other process could change the mail body and we don't care about flag
conflicts
          //The below is a safety check to ignore modifying payloads if it was
not requested,
          //as in that case we might change the payload to an invalid one
          modifyJob->setIgnorePayload( !context.needsFullPayload() );
          connect( modifyJob, SIGNAL(result(KJob*)),
SLOT(modifyJobResult(KJob*)));
      }


Using the Menu (Message->Mark Message) the signatuer is not getting broken.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Kdepim-bugs mailing list