From 751eb0586adbb3e4a0469e0dca2ed4d623a6c338 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 29 Jul 2023 15:19:52 +0200 Subject: [PATCH] msg_create() is of type @wrapper. This means that it also generate the same id for the same Note. --- activitypub.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/activitypub.c b/activitypub.c index 26a8347..05eb32f 100644 --- a/activitypub.c +++ b/activitypub.c @@ -764,6 +764,16 @@ xs_dict *msg_base(snac *snac, const char *type, const char *id, else id = NULL; } + else + if (strcmp(id, "@wrapper") == 0) { + /* like @object, but always generate the same id */ + if (object != NULL) { + did = xs_fmt("%s/%s", xs_dict_get(object, "id"), type); + id = did; + } + else + id = NULL; + } } xs_dict *msg = xs_dict_new(); @@ -935,7 +945,7 @@ xs_dict *msg_actor(snac *snac) xs_dict *msg_create(snac *snac, const xs_dict *object) /* creates a 'Create' message */ { - xs_dict *msg = msg_base(snac, "Create", "@object", snac->actor, "@now", object); + xs_dict *msg = msg_base(snac, "Create", "@wrapper", snac->actor, "@now", object); xs_val *v; if ((v = xs_dict_get(object, "attributedTo")))