|
|
|
@ -280,15 +280,16 @@ maildir_validate( const char *prefix, const char *box, int create, maildir_store
|
|
|
|
|
time( &now ); |
|
|
|
|
while ((entry = readdir( dirp ))) { |
|
|
|
|
nfsnprintf( buf + bl, sizeof(buf) - bl, "%s", entry->d_name ); |
|
|
|
|
if (stat( buf, &st )) |
|
|
|
|
error( "Maildir error: stat: %s: %s (errno %d)\n", |
|
|
|
|
buf, strerror(errno), errno ); |
|
|
|
|
else if (S_ISREG(st.st_mode) && now - st.st_ctime >= _24_HOURS) { |
|
|
|
|
if (stat( buf, &st )) { |
|
|
|
|
if (errno != ENOENT) |
|
|
|
|
error( "Maildir error: stat: %s: %s (errno %d)\n", |
|
|
|
|
buf, strerror(errno), errno ); |
|
|
|
|
} else if (S_ISREG(st.st_mode) && now - st.st_ctime >= _24_HOURS) { |
|
|
|
|
/* this should happen infrequently enough that it won't be
|
|
|
|
|
* bothersome to the user to display when it occurs. |
|
|
|
|
*/ |
|
|
|
|
info( "Maildir notice: removing stale file %s\n", buf ); |
|
|
|
|
if (unlink( buf )) |
|
|
|
|
if (unlink( buf ) && errno != ENOENT) |
|
|
|
|
error( "Maildir error: unlink: %s: %s (errno %d)\n", |
|
|
|
|
buf, strerror(errno), errno ); |
|
|
|
|
} |
|
|
|
|