evolution-data-server r9398 - trunk/camel
- From: sragavan svn gnome org
- To: svn-commits-list gnome org
- Subject: evolution-data-server r9398 - trunk/camel
- Date: Tue, 19 Aug 2008 15:23:00 +0000 (UTC)
Author: sragavan
Date: Tue Aug 19 15:23:00 2008
New Revision: 9398
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9398&view=rev
Log:
2008-08-19 Srinivasa Ragavan <sragavan novell com>
* camel/camel-filter-driver.c: Read XEV headers if there are any.
Modified:
trunk/camel/ChangeLog
trunk/camel/camel-filter-driver.c
Modified: trunk/camel/camel-filter-driver.c
==============================================================================
--- trunk/camel/camel-filter-driver.c (original)
+++ trunk/camel/camel-filter-driver.c Tue Aug 19 15:23:00 2008
@@ -1158,6 +1158,26 @@
g_hash_table_foreach_remove (p->only_once, (GHRFunc) run_only_once, &data);
}
+
+static int
+decode_flags_from_xev(const char *xev, CamelMessageInfoBase *mi)
+{
+ guint32 uid, flags = 0;
+ char *header;
+
+ /* check for uid/flags */
+ header = camel_header_token_decode(xev);
+ if (!(header && strlen(header) == strlen("00000000-0000")
+ && sscanf(header, "%08x-%04x", &uid, &flags) == 2)) {
+ g_free(header);
+ return 0;
+ }
+ g_free(header);
+
+ mi->flags = flags;
+ return 0;
+}
+
/**
* camel_filter_driver_filter_mbox:
* @driver: CamelFilterDriver
@@ -1208,7 +1228,8 @@
CamelMessageInfo *info;
CamelMimeMessage *msg;
int pc = 0;
-
+ const char *xev;
+
if (st.st_size > 0)
pc = (int)(100.0 * ((double)camel_mime_parser_tell (mp) / (double)st.st_size));
@@ -1223,6 +1244,11 @@
}
info = camel_message_info_new_from_header(NULL, ((CamelMimePart *)msg)->headers);
+ /* Try and see if it has X-Evolution headers */
+ xev = camel_header_raw_find(&((CamelMimePart *)msg)->headers, "X-Evolution", NULL);
+ if (xev)
+ decode_flags_from_xev (xev, (CamelMessageInfoBase *)info);
+
((CamelMessageInfoBase *)info)->size = camel_mime_parser_tell(mp) - last;
last = camel_mime_parser_tell(mp);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]