uint32_t next_uid;
uint64_t highest_modseq;
};
+struct virtual_mail_index_ext2_header {
+ uint8_t version;
+ uint8_t ext_record_size;
+ uint16_t hdr_size;
+ uint32_t change_counter;
+};
+struct virtual_mail_index_mailbox_ext2_record {
+ uint8_t guid[16];
+};
struct virtual_mail_index_record {
uint32_t mailbox_id;
uint32_t real_uid;
name += rec->name_len;
}
+ } else if (strcmp(ext->name, "virtual2") == 0) {
+ const struct virtual_mail_index_ext2_header *hdr = data;
+ const struct virtual_mail_index_mailbox_ext2_record *rec;
+ unsigned int i, count;
+
+ printf("header\n");
+ printf(" - version .......... = %u\n", hdr->version);
+ printf(" - ext_record_size .. = %u\n", hdr->ext_record_size);
+ printf(" - hdr_size ......... = %u\n", hdr->hdr_size);
+ printf(" - change_counter ... = %u\n", hdr->change_counter);
+
+ count = (ext->hdr_size - hdr->hdr_size) / hdr->ext_record_size;
+ for (i = 0; i < count; i++, rec++) {
+ rec = CONST_PTR_OFFSET(data, hdr->hdr_size +
+ i * hdr->ext_record_size);
+ printf(" - guid = %s\n", guid_128_to_string(rec->guid));
+ }
} else if (strcmp(ext->name, "list") == 0) {
printf("header ........ = %s\n",
binary_to_hex(data, ext->hdr_size));