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;
+
}
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) {
}
+ public void fix_deleted_attachment_db(int id, GMime.Part attachment)
+ {
+
+ var filename = attachment.get_header("X-strip-content-name");
+ var file_path = attachment.get_header("X-strip-path");
+ var fn = StripApplication.opt_target_path + "/" + file_path;
+ var chksum = this.md5_file(fn);
+ var mime_filename = attachment.get_header("X-strip-content-type");
+
+ var fileinfo = File.new_for_path(fn)
+ .query_info(GLib.FileAttribute.STANDARD_SIZE+","+GLib.FileAttribute.TIME_MODIFIED
+ ,GLib.FileQueryInfoFlags.NONE,null);
+ var file_size = (int) fileinfo.get_size();
+
+
+
+
+ this.query("""
+ INSERT INTO Attachments
+ (id, msgid, chksum, filesize)
+ values
+ (
+ %d, '%s', '%s', '%s', %d
+ )
+
+ """.printf(
+ id,
+ this.mysql_escape(this.active_message_exim_id),
+ this.mysql_escape(chksum),
+ this.mysql_escape(mime_filename),
+ file_size
+ ));
+
+ GLib.error("added attachment?");
+ }
+
+
public void replace_attachment(GMime.Multipart parent, GMime.Part attachment)
{
var sid = attachment.get_header("X-strip-id");