diff options
| -rw-r--r-- | activitypub.c | 2 | ||||
| -rw-r--r-- | data.c | 24 |
2 files changed, 21 insertions, 5 deletions
diff --git a/activitypub.c b/activitypub.c index 17f74e0..228aabe 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -65,7 +65,6 @@ int actor_request(snac *snac, char *actor, d_char **data) | |||
| 65 | 65 | ||
| 66 | if (valid_status(status2)) { | 66 | if (valid_status(status2)) { |
| 67 | /* renew data */ | 67 | /* renew data */ |
| 68 | object_del(actor); | ||
| 69 | status = actor_add(snac, actor, payload); | 68 | status = actor_add(snac, actor, payload); |
| 70 | 69 | ||
| 71 | if (data != NULL) { | 70 | if (data != NULL) { |
| @@ -918,7 +917,6 @@ int process_message(snac *snac, char *msg, char *req) | |||
| 918 | else | 917 | else |
| 919 | if (strcmp(type, "Update") == 0) { | 918 | if (strcmp(type, "Update") == 0) { |
| 920 | if (strcmp(utype, "Person") == 0) { | 919 | if (strcmp(utype, "Person") == 0) { |
| 921 | object_del(actor); | ||
| 922 | actor_add(snac, actor, xs_dict_get(msg, "object")); | 920 | actor_add(snac, actor, xs_dict_get(msg, "object")); |
| 923 | 921 | ||
| 924 | snac_log(snac, xs_fmt("updated actor %s", actor)); | 922 | snac_log(snac, xs_fmt("updated actor %s", actor)); |
| @@ -428,14 +428,14 @@ int object_get(const char *id, d_char **obj, const char *type) | |||
| 428 | } | 428 | } |
| 429 | 429 | ||
| 430 | 430 | ||
| 431 | int object_add(const char *id, d_char *obj) | 431 | int _object_add(const char *id, d_char *obj, int ow) |
| 432 | /* stores an object */ | 432 | /* stores an object */ |
| 433 | { | 433 | { |
| 434 | int status = 201; /* Created */ | 434 | int status = 201; /* Created */ |
| 435 | xs *fn = _object_fn(id); | 435 | xs *fn = _object_fn(id); |
| 436 | FILE *f; | 436 | FILE *f; |
| 437 | 437 | ||
| 438 | if (mtime(fn) > 0.0) { | 438 | if (!ow && mtime(fn) > 0.0) { |
| 439 | /* object already here */ | 439 | /* object already here */ |
| 440 | srv_debug(0, xs_fmt("object_add object already here %s", id)); | 440 | srv_debug(0, xs_fmt("object_add object already here %s", id)); |
| 441 | return 204; /* No content */ | 441 | return 204; /* No content */ |
| @@ -471,6 +471,20 @@ int object_add(const char *id, d_char *obj) | |||
| 471 | } | 471 | } |
| 472 | 472 | ||
| 473 | 473 | ||
| 474 | int object_add(const char *id, d_char *obj) | ||
| 475 | /* stores an object */ | ||
| 476 | { | ||
| 477 | return _object_add(id, obj, 0); | ||
| 478 | } | ||
| 479 | |||
| 480 | |||
| 481 | int object_add_ow(const char *id, d_char *obj) | ||
| 482 | /* stores an object (overwriting allowed) */ | ||
| 483 | { | ||
| 484 | return _object_add(id, obj, 1); | ||
| 485 | } | ||
| 486 | |||
| 487 | |||
| 474 | int object_del_by_md5(const char *md5) | 488 | int object_del_by_md5(const char *md5) |
| 475 | /* deletes an object by its md5 */ | 489 | /* deletes an object by its md5 */ |
| 476 | { | 490 | { |
| @@ -1231,7 +1245,7 @@ int is_hidden(snac *snac, const char *id) | |||
| 1231 | int actor_add(snac *snac, const char *actor, d_char *msg) | 1245 | int actor_add(snac *snac, const char *actor, d_char *msg) |
| 1232 | /* adds an actor */ | 1246 | /* adds an actor */ |
| 1233 | { | 1247 | { |
| 1234 | return object_add(actor, msg); | 1248 | return object_add_ow(actor, msg); |
| 1235 | } | 1249 | } |
| 1236 | 1250 | ||
| 1237 | 1251 | ||
| @@ -1381,6 +1395,8 @@ d_char *history_list(snac *snac) | |||
| 1381 | } | 1395 | } |
| 1382 | 1396 | ||
| 1383 | 1397 | ||
| 1398 | /** the queue **/ | ||
| 1399 | |||
| 1384 | static int _enqueue_put(char *fn, char *msg) | 1400 | static int _enqueue_put(char *fn, char *msg) |
| 1385 | /* writes safely to the queue */ | 1401 | /* writes safely to the queue */ |
| 1386 | { | 1402 | { |
| @@ -1527,6 +1543,8 @@ d_char *dequeue(snac *snac, char *fn) | |||
| 1527 | } | 1543 | } |
| 1528 | 1544 | ||
| 1529 | 1545 | ||
| 1546 | /** the purge **/ | ||
| 1547 | |||
| 1530 | static void _purge_file(const char *fn, time_t mt) | 1548 | static void _purge_file(const char *fn, time_t mt) |
| 1531 | /* purge fn if it's older than days */ | 1549 | /* purge fn if it's older than days */ |
| 1532 | { | 1550 | { |