From: Timo Sirainen Date: Wed, 4 Aug 2010 15:54:17 +0000 (+0100) Subject: virtual: Added support for IDLE notifications. X-Git-Tag: 2.0.rc4~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=77d8223da3da23b731257596abefa77e4485b77d;p=thirdparty%2Fdovecot%2Fcore.git virtual: Added support for IDLE notifications. --- 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