mail-index.c revision 414825aea0f71640824d5d103fd0cf5ca1e502d0
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz/* Copyright (C) 2002 Timo Sirainen */
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz index->header = (MailIndexHeader *) index->mmap_base;
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz (void)munmap(index->mmap_base, index->mmap_length);
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz index->mmap_base = mmap_rw_file(index->fd, &index->mmap_length);
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz index_set_error(index, "index: mmap() failed with file %s: %m",
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz if (index->mmap_length < sizeof(MailIndexHeader)) {
51ed197520dd9ea534fbc3bc1790ebe3cb5421e2Michael M Slusarz index_set_error(index, "truncated index file %s",
return FALSE;
sizeof(MailIndexRecord);
if (extra != 0) {
return TRUE;
int failed;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return !failed;
return FALSE;
return FALSE;
return TRUE;
return FALSE;
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return TRUE;
int ret;
return FALSE;
return TRUE;
return ret;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return ret;
return TRUE;
return FALSE;
return FALSE;
return FALSE;
return compatible;
struct dirent *d;
const char *name;
unsigned int len;
return INDEX_FILE_PREFIX;
return NULL;
return name;
return FALSE;
return FALSE;
int update_recent)
const char *path;
return FALSE;
return FALSE;
} while (FALSE);
if (failed)
return !failed;
int update_recent)
const char *path;
return FALSE;
path);
return FALSE;
return FALSE;
/* fallback to index.hostname - we require each system to
hostpid_init();
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return FALSE;
return TRUE;
const char *name;
return FALSE;
return FALSE;
return TRUE;
const char *name;
return TRUE;
return FALSE;
return FALSE;
if (failed)
return FALSE;
return TRUE;
return TRUE;
return FALSE;
return FALSE;
return FALSE;
return TRUE;
unsigned int lookup_seq)
unsigned int seq;
return NULL;
return NULL;
return NULL;
sizeof(MailIndexHeader));
sizeof(MailIndexRecord));
return NULL;
return rec;
seq++;
rec++;
return rec;
return NULL;
return NULL;
return rec;
return NULL;
unsigned int first_uid,
unsigned int last_uid)
return NULL;
if (pos != 0) {
return (MailIndexRecord *)
return NULL;
sizeof(MailIndexHeader));
return NULL;
return rec;
rec++;
return NULL;
return NULL;
return NULL;
return NULL;
unsigned int seq;
return INDEX_POSITION_INDEX(
return INDEX_POSITION_INDEX(
seq++;
return seq;
rec++;
return FALSE;
return FALSE;
return FALSE;
return TRUE;
if (seq != 0) {
return FALSE;
if (seq != 0) {
return FALSE;
return FALSE;
return TRUE;
int external_change)
if (pos < 0) {
return FALSE;
return FALSE;
return FALSE;
return TRUE;