diff options
author | default <nobody@localhost> | 2023-03-07 14:33:15 +0100 |
---|---|---|
committer | default <nobody@localhost> | 2023-03-07 14:33:15 +0100 |
commit | ec31697b8dcfb5a154ba17471e068f9c661ad6a9 (patch) | |
tree | 026a58e1c1da61a6f7411b1acf76985428af075e /data.c | |
parent | a2d36aa5f22781f476848347ee7968ecb9c949d2 (diff) |
Collected addresses are also purged.
Diffstat (limited to 'data.c')
-rw-r--r-- | data.c | 26 |
1 files changed, 20 insertions, 6 deletions
@@ -1661,7 +1661,7 @@ static int _purge_file(const char *fn, time_t mt) if (mtime(fn) < mt) { /* older than the minimum time: delete it */ unlink(fn); - srv_debug(1, xs_fmt("purged %s", fn)); + srv_debug(2, xs_fmt("purged %s", fn)); ret = 1; } @@ -1669,23 +1669,33 @@ static int _purge_file(const char *fn, time_t mt) } -static void _purge_user_subdir(snac *snac, const char *subdir, int days) -/* purges all files in subdir older than days */ +static void _purge_dir(const char *dir, int days) +/* purges all files in a directory older than days */ { int cnt = 0; if (days) { time_t mt = time(NULL) - days * 24 * 3600; - xs *spec = xs_fmt("%s/%s/" "*", snac->basedir, subdir); + xs *spec = xs_fmt("%s/" "*", dir); xs *list = xs_glob(spec, 0, 0); - char *p, *v; + xs_list *p; + xs_str *v; p = list; while (xs_list_iter(&p, &v)) cnt += _purge_file(v, mt); + + srv_debug(1, xs_fmt("purge: %s %d", dir, cnt)); } +} + - snac_debug(snac, 1, xs_fmt("purge: ~/%s/ %d", subdir, cnt)); +static void _purge_user_subdir(snac *snac, const char *subdir, int days) +/* purges all files in a user subdir older than days */ +{ + xs *u_subdir = xs_fmt("%s/%s", snac->basedir, subdir); + + _purge_dir(u_subdir, days); } @@ -1755,6 +1765,10 @@ void purge_server(void) } } + /* purge collected inboxes */ + xs *ib_dir = xs_fmt("%s/inbox", srv_basedir); + _purge_dir(ib_dir, 7); + srv_debug(1, xs_fmt("purge: global (obj: %d, idx: %d)", cnt, icnt)); } |