summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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)
424 int status = 404; 424 int status = 404;
425 xs *fn = _object_fn(id); 425 xs *fn = _object_fn(id);
426 426
427 if (fn != NULL && unlink(fn) != -1) 427 if (fn != NULL && unlink(fn) != -1) {
428 status = 200; 428 status = 200;
429 429
430 srv_debug(2, xs_fmt("object_del %s %d", id, status)); 430 /* also delete associated indexes */
431 xs *spec = _object_fn(id);
432 spec = xs_replace_i(spec, ".json", "*.idx");
433 xs *files = xs_glob(spec, 0, 0);
434 char *p, *v;
435
436 p = files;
437 while (xs_list_iter(&p, &v)) {
438 srv_debug(0, xs_fmt("object_del index %s", v));
439 unlink(v);
440 }
441 }
442
443 srv_debug(0, xs_fmt("object_del %s %d", id, status));
431 444
432 return status; 445 return status;
433} 446}
@@ -601,6 +614,8 @@ int timeline_del(snac *snac, char *id)
601 ret = 200; 614 ret = 200;
602 } 615 }
603 616
617 object_del(id);
618
604 return ret; 619 return ret;
605} 620}
606 621