From 77d8223da3da23b731257596abefa77e4485b77d Mon Sep 17 00:00:00 2001 From: Timo Sirainen Date: Wed, 4 Aug 2010 16:54:17 +0100 Subject: [PATCH] virtual: Added support for IDLE notifications. --- src/plugins/virtual/virtual-storage.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/plugins/virtual/virtual-storage.c b/src/plugins/virtual/virtual-storage.c index ce4d931e3e..c241995f47 100644 --- a/src/plugins/virtual/virtual-storage.c +++ b/src/plugins/virtual/virtual-storage.c @@ -356,9 +356,29 @@ virtual_mailbox_get_guid(struct mailbox *box, return -1; } -static void virtual_notify_changes(struct mailbox *box ATTR_UNUSED) +static void +virtual_notify_callback(struct mailbox *bbox ATTR_UNUSED, struct mailbox *box) +{ + box->notify_callback(box, box->notify_context); +} + +static void virtual_notify_changes(struct mailbox *box) { - /* FIXME: maybe some day */ + struct virtual_mailbox *mbox = (struct virtual_mailbox *)box; + struct virtual_backend_box *const *bboxes; + unsigned int i, count; + + bboxes = array_get(&mbox->backend_boxes, &count); + for (i = 0; i < count; i++) { + struct mailbox *bbox = bboxes[i]->box; + + if (box->notify_callback == NULL) + mailbox_notify_changes_stop(bbox); + else { + mailbox_notify_changes(bbox, box->notify_min_interval, + virtual_notify_callback, box); + } + } } static int -- 2.47.3