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