summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'data.c')
-rw-r--r--data.c19
1 files changed, 17 insertions, 2 deletions
diff --git a/data.c b/data.c
index 409055a..e621eb2 100644
--- 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;
}