diff options
| author | 2024-03-12 18:04:09 +0100 | |
|---|---|---|
| committer | 2024-03-12 18:04:09 +0100 | |
| commit | cd0e211354575f89f169da2e86b5b234a2624b9d (patch) | |
| tree | bc681f26bd01436c1fdf06ca3cc74a941d234d37 | |
| parent | Added actor refreshing via the user queue. (diff) | |
| download | snac2-cd0e211354575f89f169da2e86b5b234a2624b9d.tar.gz snac2-cd0e211354575f89f169da2e86b5b234a2624b9d.tar.xz snac2-cd0e211354575f89f169da2e86b5b234a2624b9d.zip | |
Don't call enqueue_actor_request() with a NULL user.
| -rw-r--r-- | activitypub.c | 2 | ||||
| -rw-r--r-- | data.c | 12 | ||||
| -rw-r--r-- | snac.h | 2 |
3 files changed, 15 insertions, 1 deletions
diff --git a/activitypub.c b/activitypub.c index 08f79ed..bd72cb4 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -2256,6 +2256,8 @@ void process_user_queue_item(snac *snac, xs_dict *q_item) | |||
| 2256 | 2256 | ||
| 2257 | if (valid_status((status = activitypub_request(snac, actor, &actor_o)))) | 2257 | if (valid_status((status = activitypub_request(snac, actor, &actor_o)))) |
| 2258 | actor_add(actor, actor_o); | 2258 | actor_add(actor, actor_o); |
| 2259 | else | ||
| 2260 | object_touch(actor); | ||
| 2259 | 2261 | ||
| 2260 | snac_log(snac, xs_fmt("refresh actor %s %d", actor, status)); | 2262 | snac_log(snac, xs_fmt("refresh actor %s %d", actor, status)); |
| 2261 | } | 2263 | } |
| @@ -811,6 +811,16 @@ double object_mtime(const char *id) | |||
| 811 | } | 811 | } |
| 812 | 812 | ||
| 813 | 813 | ||
| 814 | void object_touch(const char *id) | ||
| 815 | { | ||
| 816 | xs *md5 = xs_md5_hex(id, strlen(id)); | ||
| 817 | xs *fn = _object_fn_by_md5(md5, "object_touch"); | ||
| 818 | |||
| 819 | if (mtime(fn)) | ||
| 820 | utimes(fn, NULL); | ||
| 821 | } | ||
| 822 | |||
| 823 | |||
| 814 | xs_str *_object_index_fn(const char *id, const char *idxsfx) | 824 | xs_str *_object_index_fn(const char *id, const char *idxsfx) |
| 815 | /* returns the filename of an object's index */ | 825 | /* returns the filename of an object's index */ |
| 816 | { | 826 | { |
| @@ -1586,7 +1596,7 @@ int actor_get_refresh(snac *user, const char *actor, xs_dict **data) | |||
| 1586 | { | 1596 | { |
| 1587 | int status = actor_get(actor, data); | 1597 | int status = actor_get(actor, data); |
| 1588 | 1598 | ||
| 1589 | if (status == 205) | 1599 | if (status == 205 && user && !xs_startswith(user->actor, srv_baseurl)) |
| 1590 | enqueue_actor_request(user, actor); | 1600 | enqueue_actor_request(user, actor); |
| 1591 | 1601 | ||
| 1592 | return status; | 1602 | return status; |
| @@ -112,6 +112,8 @@ double object_ctime_by_md5(const char *md5); | |||
| 112 | double object_ctime(const char *id); | 112 | double object_ctime(const char *id); |
| 113 | double object_mtime_by_md5(const char *md5); | 113 | double object_mtime_by_md5(const char *md5); |
| 114 | double object_mtime(const char *id); | 114 | double object_mtime(const char *id); |
| 115 | void object_touch(const char *id); | ||
| 116 | |||
| 115 | int object_admire(const char *id, const char *actor, int like); | 117 | int object_admire(const char *id, const char *actor, int like); |
| 116 | int object_unadmire(const char *id, const char *actor, int like); | 118 | int object_unadmire(const char *id, const char *actor, int like); |
| 117 | 119 | ||