switch (camel_disco_store_status (disco_store)) {
case CAMEL_DISCO_STORE_ONLINE:
info = class->get_folder_info_online (store, top, flags, error);
- CAMEL_CHECK_GERROR (store, get_folder_info_online, info != NULL, error);
+ if (!(flags & CAMEL_STORE_FOLDER_INFO_SUBSCRIBED))
+ CAMEL_CHECK_GERROR (store, get_folder_info_online, info != NULL, error);
return info;
case CAMEL_DISCO_STORE_OFFLINE:
}
info = class->get_folder_info_offline (store, top, flags, error);
- CAMEL_CHECK_GERROR (store, get_folder_info_offline, info != NULL, error);
+ if (!(flags & CAMEL_STORE_FOLDER_INFO_SUBSCRIBED))
+ CAMEL_CHECK_GERROR (store, get_folder_info_offline, info != NULL, error);
return info;
case CAMEL_DISCO_STORE_RESYNCING:
info = class->get_folder_info_resyncing (store, top, flags, error);
- CAMEL_CHECK_GERROR (store, get_folder_info_resyncing, info != NULL, error);
+ if (!(flags & CAMEL_STORE_FOLDER_INFO_SUBSCRIBED))
+ CAMEL_CHECK_GERROR (store, get_folder_info_resyncing, info != NULL, error);
return info;
}
g_return_val_if_fail (class->get_folder_info != NULL, NULL);
info = class->get_folder_info (store, top, flags, error);
- CAMEL_CHECK_GERROR (store, get_folder_info, info != NULL, error);
+ if (!(flags & CAMEL_STORE_FOLDER_INFO_SUBSCRIBED))
+ CAMEL_CHECK_GERROR (store, get_folder_info, info != NULL, error);
if (info && (top == NULL || *top == '\0') && (flags & CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL) == 0) {
if (info->uri && (store->flags & CAMEL_STORE_VTRASH))