src/strip.vala
authorAlan Knowles <alan@roojs.com>
Fri, 29 Jun 2018 07:48:38 +0000 (15:48 +0800)
committerAlan Knowles <alan@roojs.com>
Fri, 29 Jun 2018 07:48:38 +0000 (15:48 +0800)
src/strip.vala

index 0c1fd0e..c9d5692 100644 (file)
@@ -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");