maildir-util.c revision a7f83bf37bc4a6f39fd22b09489efb081895ab44
525421c923d798cdea9e5691bcee1e5e5530491dStéphane Graber/* Copyright (C) 2004 Timo Sirainen */
525421c923d798cdea9e5691bcee1e5e5530491dStéphane Graber
4082d0deb030b1b93ab8c0054c3f638252649084Stéphane Graber#include "lib.h"
fd5c4f905861964cb473cf3df3336447a9365962Stéphane Graber#include "ioloop.h"
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include "str.h"
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include "maildir-storage.h"
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include "maildir-uidlist.h"
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include "maildir-sync.h"
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include <unistd.h>
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include <dirent.h>
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include <fcntl.h>
16216c83297543692b8dede52c9dd8a998758e9cStéphane Graber#include <utime.h>
afeecbba0359d2b4404cdf896e6b6d0b5a8443b0Serge Hallyn#include <sys/stat.h>
ae5c8b8ed5feb9a47c5007c986ce01ea39b5075fSerge Hallyn
9be53773792fc9e8bd173edc3b7ac7e144875387Serge Hallynstatic int maildir_file_do_try(struct maildir_mailbox *mbox, uint32_t uid,
0115f8fd27b1a31d367bb161a121694f92b45e62Dwight Engen maildir_file_do_func *callback, void *context)
f5dd1d532a76a1b57cf341db821eae85ea1118c5Serge Hallyn{
f209d63a97a8a2df5324608fee7b0d7a494d69ebS.Çağlar Onur const char *fname, *path;
b494d2ddf769220da1ef75fd24275ce68cdf297cSerge Hallyn enum maildir_uidlist_rec_flag flags;
2aa123185e055bbe2506a6210e795e0b9375e477Serge Hallyn int ret;
a41f104bfbd69e5f068e5ca312a2eb513d9e81b8Serge Hallyn
72863294f63e27ac263a774aab37aace20dc1bc5Dwight Engen fname = maildir_uidlist_lookup(mbox->uidlist, uid, &flags);
710bde5e52ec3f1260f0ed7d50b7c46a8d7bbda3S.Çağlar Onur if (fname == NULL)
198b363fff1de9afcee2f26b9aa847316f589afeSerge Hallyn return -2; /* expunged */
03d3bbc95dfc882e03764c1d7a06427de6ea40b9Christian Brauner
72d0e1cb2facaa4b8ba2f15e311d6bb9491badb7Stéphane Graber t_push();
5a21336025eec5b4228994d0efece129257411bdChristian Brauner if ((flags & MAILDIR_UIDLIST_REC_FLAG_NEW_DIR) != 0) {
72d0e1cb2facaa4b8ba2f15e311d6bb9491badb7Stéphane Graber /* probably in new/ dir */
2a59a68183e55e38beedb6442938e31eb7d4749cSerge Hallyn path = t_strconcat(mbox->path, "/new/", fname, NULL);
0a18b5458b6d0fcad9a82b96f99035254af50c7aSerge Hallyn ret = callback(mbox, path, context);
061ba5d071e4c2b4bfe76c84875bc29cc5334c27Stéphane Graber if (ret != 0) {
Error!

 

There was an error!

null

java.lang.NullPointerException