From f289a3d914e53c57ccdd5a8fc31e68dc87e56592 Mon Sep 17 00:00:00 2001 From: Alan Knowles Date: Fri, 29 Jun 2018 15:48:38 +0800 Subject: [PATCH] src/strip.vala --- src/strip.vala | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/src/strip.vala b/src/strip.vala index 0c1fd0e..c9d5692 100644 --- a/src/strip.vala +++ b/src/strip.vala @@ -374,11 +374,12 @@ public class Strip : GLib.Object { int.parse(sid))); - if (matches=="") { + if (matches !="") { // our old mailfort code deleted the crap out of old records... // if this occurs we will need to create the record again.. - GLib.error("Failed to find id :%s", sid); - return; + this.fix_deleted_attachment_db(int.parse(sid),attachment); + return; + } @@ -388,7 +389,7 @@ public class Strip : GLib.Object { int.parse(sid))); if (filesize=="") { - GLib.debug("Ignoring record id (missing in database) :%s", sid); + GLib.error("Ignoring record id (missing in database) :%s", sid); return; } if (int.parse(filesize) < 1) { @@ -437,6 +438,27 @@ public class Strip : GLib.Object { } + public void fix_deleted_attachment_db(GMime.Part attachment) + { + this.query(""" + INSERT INTO Attachments + (id, exim_msg?, chksum, filesize) + values + ( + attachment_init( + '%s', '%s', '%s', %d + ) as id + + """.printf( + this.mysql_escape(this.active_message_exim_id), + this.mysql_escape(chksum), + this.mysql_escape(mime_filename), + int.parse(filesize) + )); + + } + + public void replace_attachment(GMime.Multipart parent, GMime.Part attachment) { var sid = attachment.get_header("X-strip-id"); -- 2.39.2