summaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c25
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
20const char *public_address = "https:/" "/www.w3.org/ns/activitystreams#Public"; 20const char * const public_address = "https:/" "/www.w3.org/ns/activitystreams#Public";
21 21
22/* susie.png */ 22/* susie.png */
23 23
24const char *susie = 24const 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
31const char *susie_cool = 31const 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
38const char *susie_muertos = 38const 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 }