summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2022-11-25 12:09:30 +0100
committerdefault <nobody@localhost>2022-11-25 12:09:30 +0100
commite2c332c68a5b2dabd7f9fff41a86f0ae60de02d9 (patch)
treec10b209eb78197b9bb2bebb9b2d18e2b820666c2
parent200a6a0c91b8c4132aacf4eca9033a74ce3dfc8e (diff)
On Update + Person, call object_del() before actor_add().
-rw-r--r--activitypub.c2
-rw-r--r--data.c3
-rw-r--r--snac.h2
3 files changed, 7 insertions, 0 deletions
diff --git a/activitypub.c b/activitypub.c
index bb091ff..f3f15af 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -917,7 +917,9 @@ int process_message(snac *snac, char *msg, char *req)
else
if (strcmp(type, "Update") == 0) {
if (strcmp(utype, "Person") == 0) {
+ object_del(actor);
actor_add(snac, actor, xs_dict_get(msg, "object"));
+
snac_log(snac, xs_fmt("updated actor %s", actor));
}
else
diff --git a/data.c b/data.c
index 15ca18d..9acf83c 100644
--- a/data.c
+++ b/data.c
@@ -433,6 +433,9 @@ int object_add(const char *id, d_char *obj)
return 204; /* No content */
}
+// if (xs_dict_get(obj, "suspended") != NULL)
+// srv_log(xs_fmt("object_add suspended: true %s", id));
+
if ((f = fopen(fn, "w")) != NULL) {
flock(fileno(f), LOCK_EX);
diff --git a/snac.h b/snac.h
index be8aaae..aad4697 100644
--- a/snac.h
+++ b/snac.h
@@ -57,6 +57,8 @@ int index_del(const char *fn, const char *md5);
d_char *index_list(const char *fn, int max);
d_char *index_list_desc(const char *fn, int max);
+int object_del(const char *id);
+
int follower_add(snac *snac, char *actor, char *msg);
int follower_del(snac *snac, char *actor);
int follower_check(snac *snac, char *actor);