return;
}
+ // initialize it with known data..
+ // that should wipe out dupes.
+ var matches = this.execute("SELECT count(id) as nid FROM Attachment WHERE id = %d".printf(
+ int.parse(sid)));
+
+
+ if (matches !="") {
+ // our old mailfort code deleted the crap out of old records...
+ // if this occurs we will need to create the record again..
+ this.fix_deleted_attachment_db(int.parse(sid),attachment);
+ return;
+
+ }
+
+
// initialize it with known data..
// that should wipe out dupes.
var filesize = this.execute("SELECT filesize FROM Attachment WHERE id = %d".printf(
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 content_type = attachment.get_header("X-strip-content-type");
+
+ GLib.error("GOT FN: %s | PATH: %s | CT: %s", filename, file_path, content_type);
+
+ /*
+ this.query("""
+ INSERT INTO Attachments
+ (id, exim_msg?, 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),
+ int.parse(filesize)
+ ));
+ */
+ }
+
+
public void replace_attachment(GMime.Multipart parent, GMime.Part attachment)
{
var sid = attachment.get_header("X-strip-id");
- var rc= this.mysql.query(str);
+ var rc= this.mysql.query(str);
if ( rc != 0 ) {
GLib.debug("ERROR %u: Query failed: %s\n", this.mysql.errno(), this.mysql.error());
var rs = mysql.use_result();
+ //GLib.debug("got %d rows", (int) rs.num_rows());
+
var got_row = false;
string[] row;
string ret = "";
}
if (!need_return) {
+ if (StripApplication.opt_debug_sql) {
+ GLib.debug("got %s", got_row ? "=Nothing=" : ret);
+ }
return got_row ? "" : ret;
}
if (!got_row) {
+
GLib.debug("ERROR : no rows returned");
Posix.exit(1);
return "";
}
- GLib.debug("got %s", ret);
+ if (StripApplication.opt_debug_sql) {
+ GLib.debug("got %s", ret);
+ }
return ret;