// 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(
+ var matches = this.execute("SELECT id FROM Attachment WHERE id = %d".printf(
int.parse(sid)));
,GLib.FileQueryInfoFlags.NONE,null);
var file_size = (int) fileinfo.get_size();
-
-
+
- this.query("""
+ this.real_query(-1, """
INSERT INTO Attachment (
mime_size ,
filesize,
- checksum
+ checksum,
+ created
) VALUES (
%d, -- id
'%s', -- mimetype
'%s', -- stored file anme
- '',
+ '', -- charset
'attachment',
0,
0,
0,
%d, -- size
%d, -- size
- '%s' -- checkum
-
- )"
+
+ '%s', -- checkum
+ '%s' -- created:
+ )
""".printf(
this.mysql_escape(filename),
this.mysql_escape(mime_type),
this.mysql_escape(file_path),
- file_size
- file_size
+ file_size,
+ file_size,
this.mysql_escape(chksum),
- file_size
+ this.created_date
));
-
+ // this is done to fix the queue_id or maillog_id ??
this.query("""
SELECT attachment_update(
%d, -- in_id INT(11),
- '%s', -- in_mime_type varchar(255),
+ '', -- mime type
'%s', -- in_created DATETIME,
'%s' -- in_mailfort_sig varchar(64)
)
""".printf(
- id,
- "", // this will be ignored..
+ id,
this.created_date,
this.mysql_escape(this.active_message_x_mailfort_sig)
}
public string query(string str)
{
- return this.real_query(true, str);
+ return this.real_query(1, str);
}
public string execute(string str)
{
- return this.real_query(false, str);
+ return this.real_query(0, str);
}
- public string real_query(bool need_return, string str)
+ /**
+ * need_return
+ 0 = no
+ 1 = yes
+ -1 = don't try.
+ */
+ public string real_query(int need_return, string str)
{
GLib.debug("Before Query : %u : %s\n", this.mysql.errno(), this.mysql.error());
Posix.exit(1);
}
-
+ if (need_return == -1) {
+ return "";
+ }
var rs = mysql.use_result();
//GLib.debug("got %d rows", (int) rs.num_rows());
ret = row[0];
}
- if (!need_return) {
+ if (need_return == 0) {
if (StripApplication.opt_debug_sql) {
GLib.debug("got %s", got_row ? "=Nothing=" : ret);
}