summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2023-03-06 11:26:43 +0100
committerGravatar default2023-03-06 11:26:43 +0100
commit60f77b6cad7f64a4b6ef44010c8d103093ce32c2 (patch)
tree10504593969dd8ccba2df8aa8a0ed016885965d8
parentDon't send public admirations of non-public messages. (diff)
downloadsnac2-60f77b6cad7f64a4b6ef44010c8d103093ce32c2.tar.gz
snac2-60f77b6cad7f64a4b6ef44010c8d103093ce32c2.tar.xz
snac2-60f77b6cad7f64a4b6ef44010c8d103093ce32c2.zip
msg_update() sends copies the 'to' and 'cc' fields in notes.
-rw-r--r--activitypub.c11
-rw-r--r--snac.h2
2 files changed, 10 insertions, 3 deletions
diff --git a/activitypub.c b/activitypub.c
index 7599b58..e5713fa 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -445,12 +445,19 @@ d_char *msg_accept(snac *snac, char *object, char *to)
445} 445}
446 446
447 447
448d_char *msg_update(snac *snac, char *object) 448xs_dict *msg_update(snac *snac, xs_dict *object)
449/* creates an Update message */ 449/* creates an Update message */
450{ 450{
451 d_char *msg = msg_base(snac, "Update", "@object", snac->actor, "@now", object); 451 d_char *msg = msg_base(snac, "Update", "@object", snac->actor, "@now", object);
452 452
453 msg = xs_dict_append(msg, "to", public_address); 453 char *type = xs_dict_get(object, "type");
454
455 if (strcmp(type, "Note") == 0) {
456 msg = xs_dict_append(msg, "to", xs_dict_get(object, "to"));
457 msg = xs_dict_append(msg, "cc", xs_dict_get(object, "cc"));
458 }
459 else
460 msg = xs_dict_append(msg, "to", public_address);
454 461
455 return msg; 462 return msg;
456} 463}
diff --git a/snac.h b/snac.h
index 284b30e..5815656 100644
--- a/snac.h
+++ b/snac.h
@@ -183,7 +183,7 @@ xs_dict *msg_note(snac *snac, xs_str *content, xs_val *rcpts,
183d_char *msg_undo(snac *snac, char *object); 183d_char *msg_undo(snac *snac, char *object);
184d_char *msg_delete(snac *snac, char *id); 184d_char *msg_delete(snac *snac, char *id);
185d_char *msg_actor(snac *snac); 185d_char *msg_actor(snac *snac);
186d_char *msg_update(snac *snac, char *object); 186xs_dict *msg_update(snac *snac, xs_dict *object);
187 187
188int activitypub_request(snac *snac, char *url, d_char **data); 188int activitypub_request(snac *snac, char *url, d_char **data);
189int actor_request(snac *snac, char *actor, d_char **data); 189int actor_request(snac *snac, char *actor, d_char **data);