commit ec31697
default
·
2023-03-07 13:33:15 +0000 UTC
parent a2d36aa
Collected addresses are also purged.
1 files changed,
+20,
-6
M
data.c
M
data.c
+20,
-6
1@@ -1661,7 +1661,7 @@ static int _purge_file(const char *fn, time_t mt)
2 if (mtime(fn) < mt) {
3 /* older than the minimum time: delete it */
4 unlink(fn);
5- srv_debug(1, xs_fmt("purged %s", fn));
6+ srv_debug(2, xs_fmt("purged %s", fn));
7 ret = 1;
8 }
9
10@@ -1669,23 +1669,33 @@ static int _purge_file(const char *fn, time_t mt)
11 }
12
13
14-static void _purge_user_subdir(snac *snac, const char *subdir, int days)
15-/* purges all files in subdir older than days */
16+static void _purge_dir(const char *dir, int days)
17+/* purges all files in a directory older than days */
18 {
19 int cnt = 0;
20
21 if (days) {
22 time_t mt = time(NULL) - days * 24 * 3600;
23- xs *spec = xs_fmt("%s/%s/" "*", snac->basedir, subdir);
24+ xs *spec = xs_fmt("%s/" "*", dir);
25 xs *list = xs_glob(spec, 0, 0);
26- char *p, *v;
27+ xs_list *p;
28+ xs_str *v;
29
30 p = list;
31 while (xs_list_iter(&p, &v))
32 cnt += _purge_file(v, mt);
33+
34+ srv_debug(1, xs_fmt("purge: %s %d", dir, cnt));
35 }
36+}
37+
38
39- snac_debug(snac, 1, xs_fmt("purge: ~/%s/ %d", subdir, cnt));
40+static void _purge_user_subdir(snac *snac, const char *subdir, int days)
41+/* purges all files in a user subdir older than days */
42+{
43+ xs *u_subdir = xs_fmt("%s/%s", snac->basedir, subdir);
44+
45+ _purge_dir(u_subdir, days);
46 }
47
48
49@@ -1755,6 +1765,10 @@ void purge_server(void)
50 }
51 }
52
53+ /* purge collected inboxes */
54+ xs *ib_dir = xs_fmt("%s/inbox", srv_basedir);
55+ _purge_dir(ib_dir, 7);
56+
57 srv_debug(1, xs_fmt("purge: global (obj: %d, idx: %d)", cnt, icnt));
58 }
59