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:
M | data.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;
}