Browse Source

On Update + Person, call object_del() before actor_add().

default 3 năm trước cách đây
mục cha
commit
e2c332c68a
3 tập tin đã thay đổi với 7 bổ sung0 xóa
  1. 2 0
      activitypub.c
  2. 3 0
      data.c
  3. 2 0
      snac.h

+ 2 - 0
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

+ 3 - 0
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);
 

+ 2 - 0
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);