aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-filter-driver.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r--camel/camel-filter-driver.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c
index eef5c2fa9e..7b229d5633 100644
--- a/camel/camel-filter-driver.c
+++ b/camel/camel-filter-driver.c
@@ -72,7 +72,9 @@ struct _filter_rule {
struct _CamelFilterDriverPrivate {
GHashTable *globals; /* global variables */
-
+
+ CamelSession *session;
+
CamelFolder *defaultfolder; /* defualt folder */
CamelFilterStatusFunc *statusfunc; /* status callback */
@@ -256,7 +258,9 @@ camel_filter_driver_finalise (CamelObject *obj)
g_free(node->name);
g_free(node);
}
-
+
+ camel_object_unref(p->session);
+
g_free (p);
}
@@ -266,9 +270,14 @@ camel_filter_driver_finalise (CamelObject *obj)
* Return value: A new CamelFilterDriver object
**/
CamelFilterDriver *
-camel_filter_driver_new (void)
+camel_filter_driver_new (CamelSession *session)
{
- return CAMEL_FILTER_DRIVER (camel_object_new(camel_filter_driver_get_type ()));
+ CamelFilterDriver *d = (CamelFilterDriver *)camel_object_new(camel_filter_driver_get_type());
+
+ d->priv->session = session;
+ camel_object_ref((CamelObject *)session);
+
+ return d;
}
void
@@ -1226,7 +1235,7 @@ camel_filter_driver_filter_message (CamelFilterDriver *driver, CamelMimeMessage
data.p = p;
data.source_url = original_source_url;
- result = camel_filter_search_match (get_message_cb, &data, p->info,
+ result = camel_filter_search_match (p->session, get_message_cb, &data, p->info,
original_source_url ? original_source_url : source_url,
node->match, p->ex);