From 25d989888d0eaaeb4513fe1dd92f85d661232cee Mon Sep 17 00:00:00 2001 From: Radek Doulik Date: Thu, 4 Dec 2003 14:11:20 +0000 Subject: [PATCH] check recent messages for junk mail 2003-12-04 Radek Doulik * camel-folder.c (folder_changed): check recent messages for junk mail * camel-session.c (camel_session_check_junk): new wrapper method for check_junk flag (camel_session_set_check_junk): ditto * camel-session.h (struct _CamelSession): added check_junk flag (if to check incoming mail for junk messages) --- camel/ChangeLog | 12 ++++++++++++ camel/camel-folder.c | 6 ++++-- camel/camel-session.c | 29 +++++++++++++++++++++++++++++ camel/camel-session.h | 4 ++++ camel/camel-store.c | 1 - 5 files changed, 49 insertions(+), 3 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index 4f01e89..ed23215 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,15 @@ +2003-12-04 Radek Doulik + + * camel-folder.c (folder_changed): check recent messages for junk + mail + + * camel-session.c (camel_session_check_junk): new wrapper method + for check_junk flag + (camel_session_set_check_junk): ditto + + * camel-session.h (struct _CamelSession): added check_junk flag + (if to check incoming mail for junk messages) + 2003-12-03 Jeffrey Stedfast * camel-store.c (add_special_info): Free fi->path if we are gonna diff --git a/camel/camel-folder.c b/camel/camel-folder.c index f02b982..08fd816 100644 --- a/camel/camel-folder.c +++ b/camel/camel-folder.c @@ -41,6 +41,7 @@ #include "camel-filter-driver.h" #include "camel-private.h" #include "camel-vtrash-folder.h" +#include "filter/filter-rule.h" #define d(x) #define w(x) @@ -1647,9 +1648,10 @@ folder_changed (CamelObject *obj, gpointer event_data) CamelSession *session = ((CamelService *)folder->parent_store)->session; CamelFilterDriver *driver = NULL; - if ((folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) + if (((folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) || camel_session_check_junk (session)) && changed->uid_recent->len > 0) - driver = camel_session_get_filter_driver(session, "incoming", NULL); + driver = camel_session_get_filter_driver(session, + (folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) ? FILTER_SOURCE_INCOMING : FILTER_SOURCE_JUNKTEST, NULL); CAMEL_FOLDER_LOCK(folder, change_lock); diff --git a/camel/camel-session.c b/camel/camel-session.c index 07c6801..fc31530 100644 --- a/camel/camel-session.c +++ b/camel/camel-session.c @@ -870,3 +870,32 @@ void camel_session_thread_wait(CamelSession *session, int id) CS_CLASS (session)->thread_wait(session, id); } + +/** + * camel_session_check_junk: + * @session: + * + * Do we have to check incoming messages to be junk? + **/ +gboolean +camel_session_check_junk (CamelSession *session) +{ + g_assert(CAMEL_IS_SESSION(session)); + + return session->check_junk; +} + +/** + * camel_session_set_check_junk: + * @session: + * @check_junk: + * + * Set check_junk flag, if set, incoming mail will be checked for being junk. + **/ +void +camel_session_set_check_junk (CamelSession *session, gboolean check_junk) +{ + g_assert(CAMEL_IS_SESSION(session)); + + session->check_junk = check_junk; +} diff --git a/camel/camel-session.h b/camel/camel-session.h index 43abc61..e99d31a 100644 --- a/camel/camel-session.h +++ b/camel/camel-session.h @@ -62,6 +62,7 @@ struct _CamelSession gboolean online; CamelJunkPlugin *junk_plugin; + gboolean check_junk; }; #ifdef ENABLE_THREADS @@ -179,6 +180,9 @@ CamelFilterDriver *camel_session_get_filter_driver (CamelSession *session, const char *type, CamelException *ex); +gboolean camel_session_check_junk (CamelSession *session); +void camel_session_set_check_junk (CamelSession *session, gboolean check_junk); + #ifdef ENABLE_THREADS struct _CamelSessionThreadOps { void (*receive)(CamelSession *session, struct _CamelSessionThreadMsg *m); diff --git a/camel/camel-store.c b/camel/camel-store.c index 37b3007..8d576d4 100644 --- a/camel/camel-store.c +++ b/camel/camel-store.c @@ -694,7 +694,6 @@ add_special_info (CamelStore *store, CamelFolderInfo *info, const char *name, co const char *url_base, gboolean unread_count) { CamelFolderInfo *fi, *vinfo, *parent; - CamelProvider *provider; char *uri, *path; CamelURL *url; -- 2.7.4