summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul J Stevens <paul@nfg.nl>2010-08-05 00:34:43 +0200
committerPaul J Stevens <paul@nfg.nl>2010-08-05 00:34:43 +0200
commitbf3ae1a8b55b65d248936e57d40fb18b9f4bf3d1 (patch)
treee3a1bb100f41489994d2d28b9bcdeb7097826542
parente2d1ea8ce539da32d3d3ccae5824973ad3cc5588 (diff)
use escape encode for retrieving messaga blobs
forward compatibility fix for postgresql 9 where bytea is returned as hex streams by default.
-rw-r--r--src/dbmail-message.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/dbmail-message.c b/src/dbmail-message.c
index 09527bd5..6b4bc303 100644
--- a/src/dbmail-message.c
+++ b/src/dbmail-message.c
@@ -294,21 +294,23 @@ static DbmailMessage * _mime_retrieve(DbmailMessage *self)
volatile int t = FALSE;
gboolean got_boundary = FALSE, prev_boundary = FALSE, is_header = TRUE, prev_header, finalized=FALSE;
gboolean prev_is_message = FALSE, is_message = FALSE;
- GString *m = NULL;
+ GString *m = NULL, *n = NULL;
const void *blob;
field_t frag;
assert(dbmail_message_get_physid(self));
date2char_str("ph.internal_date", &frag);
+ n = g_string_new("");
+ g_string_printf(n,db_get_sql(SQL_ENCODE_ESCAPE), "data");
c = db_con_get();
TRY
- r = db_query(c, "SELECT l.part_key,l.part_depth,l.part_order,l.is_header,%s,data "
+ r = db_query(c, "SELECT l.part_key,l.part_depth,l.part_order,l.is_header,%s,%s "
"FROM %smimeparts p "
"JOIN %spartlists l ON p.id = l.part_id "
"JOIN %sphysmessage ph ON ph.id = l.physmessage_id "
"WHERE l.physmessage_id = %llu ORDER BY l.part_key,l.part_order ASC",
- frag, DBPFX, DBPFX, DBPFX, dbmail_message_get_physid(self));
+ frag, n->str, DBPFX, DBPFX, DBPFX, dbmail_message_get_physid(self));
m = g_string_new("");