mirror of
https://git.freebsd.org/ports.git
synced 2025-06-24 06:00:30 -04:00
from a mailbox - detect possible error in stat(2) - bump PORTREVISION PR: 80709 Submitted by: Roland Smith <rsmith@xs4all.nl>
76 lines
1.9 KiB
C
76 lines
1.9 KiB
C
--- mail.c.orig Fri May 6 10:47:22 2005
|
|
+++ mail.c Fri May 6 19:17:15 2005
|
|
@@ -12,30 +12,26 @@
|
|
static double last_mail_update;
|
|
|
|
void update_mail_count() {
|
|
- struct stat buf;
|
|
+ struct stat sbuf;
|
|
|
|
if (current_mail_spool == NULL) return;
|
|
|
|
/* TODO: use that fine file modification notify on Linux 2.4 */
|
|
|
|
- /* don't check mail so often (9.5s is minimum interval) */
|
|
- if (current_update_time - last_mail_update < 9.5)
|
|
+ /* don't check mail so often (5.5s is minimum interval) */
|
|
+ if (current_update_time - last_mail_update < 5.5)
|
|
return;
|
|
else
|
|
last_mail_update = current_update_time;
|
|
|
|
- if (stat(current_mail_spool, &buf)) {
|
|
- static int rep;
|
|
- if (!rep) {
|
|
+ if (stat(current_mail_spool, &sbuf) == -1) {
|
|
ERR("can't stat %s: %s", current_mail_spool, strerror(errno));
|
|
- rep = 1;
|
|
- }
|
|
- return;
|
|
+ return;
|
|
}
|
|
|
|
#if HAVE_DIRENT_H
|
|
/* maildir format */
|
|
- if (S_ISDIR(buf.st_mode)){
|
|
+ if (S_ISDIR(sbuf.st_mode)){
|
|
DIR *dir;
|
|
char *dirname;
|
|
struct dirent *dirent;
|
|
@@ -95,7 +91,7 @@
|
|
/* mbox format */
|
|
|
|
|
|
- if (buf.st_mtime != last_mail_mtime) {
|
|
+ if (sbuf.st_ctime != last_mail_mtime) {
|
|
/* yippee, modification time has changed, let's read mail count! */
|
|
static int rep;
|
|
FILE *fp;
|
|
@@ -127,7 +123,6 @@
|
|
reading_status = 1;
|
|
}
|
|
}
|
|
- else {
|
|
if (reading_status && strncmp(buf, "X-Mozilla-Status:", 17) == 0) {
|
|
/* check that mail isn't already read */
|
|
if (strchr(buf+21, '0'))
|
|
@@ -144,7 +139,6 @@
|
|
reading_status = 0;
|
|
continue;
|
|
}
|
|
- }
|
|
|
|
/* skip until \n */
|
|
while (strchr(buf, '\n') == NULL && !feof(fp))
|
|
@@ -155,7 +149,7 @@
|
|
|
|
if (reading_status) info.new_mail_count++;
|
|
|
|
- last_mail_mtime = buf.st_mtime;
|
|
+ last_mail_mtime = sbuf.st_mtime;
|
|
}
|
|
}
|
|
|
|
--------------------- patch -----------------------------
|
|
|
|
|