snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit b0b052ab3b724ded9b13e2703dc7f0138a0b9a4f
parent b23c6d98b6fe2b9052072faa7d89b81f0a72be00
Author: default <nobody@localhost>
Date:   Thu, 24 Nov 2022 08:36:01 +0100

Function object_del() also deletes the indexes.

Diffstat:
Mdata.c | 19+++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/data.c b/data.c @@ -424,10 +424,23 @@ int object_del(const char *id) int status = 404; xs *fn = _object_fn(id); - if (fn != NULL && unlink(fn) != -1) + if (fn != NULL && unlink(fn) != -1) { status = 200; - srv_debug(2, xs_fmt("object_del %s %d", id, status)); + /* also delete associated indexes */ + xs *spec = _object_fn(id); + spec = xs_replace_i(spec, ".json", "*.idx"); + xs *files = xs_glob(spec, 0, 0); + char *p, *v; + + p = files; + while (xs_list_iter(&p, &v)) { + srv_debug(0, xs_fmt("object_del index %s", v)); + unlink(v); + } + } + + srv_debug(0, xs_fmt("object_del %s %d", id, status)); return status; } @@ -601,6 +614,8 @@ int timeline_del(snac *snac, char *id) ret = 200; } + object_del(id); + return ret; }