diff options
Diffstat (limited to 'activitypub.c')
| -rw-r--r-- | activitypub.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/activitypub.c b/activitypub.c index 1efd9ec..4ed2805 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -17,25 +17,25 @@ | |||
| 17 | 17 | ||
| 18 | #include <sys/wait.h> | 18 | #include <sys/wait.h> |
| 19 | 19 | ||
| 20 | const char *public_address = "https:/" "/www.w3.org/ns/activitystreams#Public"; | 20 | const char * const public_address = "https:/" "/www.w3.org/ns/activitystreams#Public"; |
| 21 | 21 | ||
| 22 | /* susie.png */ | 22 | /* susie.png */ |
| 23 | 23 | ||
| 24 | const char *susie = | 24 | const char * const susie = |
| 25 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" | 25 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" |
| 26 | "CEkxzAAAAUUlEQVQoz43R0QkAMQwCUDdw/y3dwE" | 26 | "CEkxzAAAAUUlEQVQoz43R0QkAMQwCUDdw/y3dwE" |
| 27 | "vsvzlL4X1IoQkAisKmwfAFT3RgJHbQezpSRoXEq" | 27 | "vsvzlL4X1IoQkAisKmwfAFT3RgJHbQezpSRoXEq" |
| 28 | "eqCL9BJBf7h3QbOCCxV5EVWMEMwG7K1/WODtlvx" | 28 | "eqCL9BJBf7h3QbOCCxV5EVWMEMwG7K1/WODtlvx" |
| 29 | "AYTtEsDU9F34AAAAAElFTkSuQmCC"; | 29 | "AYTtEsDU9F34AAAAAElFTkSuQmCC"; |
| 30 | 30 | ||
| 31 | const char *susie_cool = | 31 | const char * const susie_cool = |
| 32 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" | 32 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" |
| 33 | "CEkxzAAAAV0lEQVQoz43RwQ3AMAwCQDZg/y3ZgN" | 33 | "CEkxzAAAAV0lEQVQoz43RwQ3AMAwCQDZg/y3ZgN" |
| 34 | "qo3+JaedwDOUQBQFHYaTB8wTM6sGl2cMPu+DFzn" | 34 | "qo3+JaedwDOUQBQFHYaTB8wTM6sGl2cMPu+DFzn" |
| 35 | "+ZcgN7wF7ZVihXkfSlWIVzIA6dbQzaygllpNuTX" | 35 | "+ZcgN7wF7ZVihXkfSlWIVzIA6dbQzaygllpNuTX" |
| 36 | "ZmmFNlvxADX1+o0cUPMbAAAAAElFTkSuQmCC"; | 36 | "ZmmFNlvxADX1+o0cUPMbAAAAAElFTkSuQmCC"; |
| 37 | 37 | ||
| 38 | const char *susie_muertos = | 38 | const char * const susie_muertos = |
| 39 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" | 39 | "iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQAAAAC" |
| 40 | "CEkxzAAAAV0lEQVQoz4XQsQ0AMQxCUW/A/lv+DT" | 40 | "CEkxzAAAAV0lEQVQoz4XQsQ0AMQxCUW/A/lv+DT" |
| 41 | "ic6zGRolekIMyMELNp8PiCEw6Q4w4NoAt53IH5m" | 41 | "ic6zGRolekIMyMELNp8PiCEw6Q4w4NoAt53IH5m" |
| @@ -3101,6 +3101,11 @@ void process_user_queue_item(snac *user, xs_dict *q_item) | |||
| 3101 | const char *actor = xs_dict_get(q_item, "actor"); | 3101 | const char *actor = xs_dict_get(q_item, "actor"); |
| 3102 | double mtime = object_mtime(actor); | 3102 | double mtime = object_mtime(actor); |
| 3103 | 3103 | ||
| 3104 | if (actor_failure(actor, 0) == -1) { | ||
| 3105 | /* actor is broken beyond repair */ | ||
| 3106 | snac_debug(user, 1, xs_fmt("actor_refresh skipped broken actor %s", actor)); | ||
| 3107 | } | ||
| 3108 | else | ||
| 3104 | /* only refresh if it was refreshed more than an hour ago */ | 3109 | /* only refresh if it was refreshed more than an hour ago */ |
| 3105 | if (mtime + 3600.0 < (double) time(NULL)) { | 3110 | if (mtime + 3600.0 < (double) time(NULL)) { |
| 3106 | xs *actor_o = NULL; | 3111 | xs *actor_o = NULL; |
| @@ -3108,8 +3113,16 @@ void process_user_queue_item(snac *user, xs_dict *q_item) | |||
| 3108 | 3113 | ||
| 3109 | if (valid_status((status = activitypub_request(user, actor, &actor_o)))) | 3114 | if (valid_status((status = activitypub_request(user, actor, &actor_o)))) |
| 3110 | actor_add(actor, actor_o); | 3115 | actor_add(actor, actor_o); |
| 3111 | else | 3116 | else { |
| 3112 | object_touch(actor); | 3117 | if (status == HTTP_STATUS_GONE) { |
| 3118 | actor_failure(actor, 1); | ||
| 3119 | snac_log(user, xs_fmt("actor_refresh marking actor %s as broken %d", actor, status)); | ||
| 3120 | } | ||
| 3121 | else { | ||
| 3122 | actor_failure(actor, 2); | ||
| 3123 | object_touch(actor); | ||
| 3124 | } | ||
| 3125 | } | ||
| 3113 | 3126 | ||
| 3114 | snac_log(user, xs_fmt("actor_refresh %s %d", actor, status)); | 3127 | snac_log(user, xs_fmt("actor_refresh %s %d", actor, status)); |
| 3115 | } | 3128 | } |