On 04.07.2016 19:18, Golub Mikhail wrote:
> Доброго времени суток.
>
> Подскажите, плиз, как лучше реализовать следующее: удаление писем из
> ящика по расписанию.
>
> Пользовался раньше этим
ftp://ftp.visti.net/pub/tools/mpurge.tgz
> Легко и удобно - закинул в планировщик задание типа "удалить письма из
> такого-то ящика старше 30 дней" и все довольны.
> На новых ОС софт не компилируется. Я не программист, тем более на С,
> поэтому в код не вникал.
Собирается на десятке с минимальным патчем:
--- Makefile.orig 2016-07-04 19:29:12.823677000 +0700
+++ Makefile 2016-07-04 19:28:46.863577000 +0700
@@ -1,4 +1,4 @@
PROG = mpurge
-NOMAN =
+NO_MAN =
.include <
bsd.prog.mk>
--- mpurge.c.orig 2016-07-04 19:26:04.873833000 +0700
+++ mpurge.c 2016-07-04 19:28:24.975932000 +0700
@@ -34,6 +34,7 @@ static char rcsid[] = "$Id: mpurge.c,v 1
#include <sysexits.h>
#include <stdio.h>
#include <stdlib.h>
+#include <string.h>
#include <strings.h>
#include <sys/stat.h>
#include <errno.h>
@@ -88,9 +89,9 @@ char *mbox;
debug(func, "processing mbox \"%s\"\n", mbox);
if ((stat(mbox, &st) < 0) || !st.st_size) return 0;
- if (st.st_mode & S_IFMT != S_IFREG) {
+ if ((st.st_mode & S_IFMT) != S_IFREG) {
debug(func, "\"%s\" is not a regular file -- skipping\n", mbox);
- return;
+ return EINVAL;
}
fd = open(mbox, (d_flag ? O_RDONLY : O_RDWR)|O_EXLOCK|O_NONBLOCK, 0);