aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data.c27
-rw-r--r--snac.h1
2 files changed, 19 insertions, 9 deletions
diff --git a/data.c b/data.c
index 4a16a82..3b9840e 100644
--- a/data.c
+++ b/data.c
@@ -3042,18 +3042,13 @@ xs_list *content_search(snac *user, const char *regex,
}
-int instance_failure(const char *url, int op)
-/* do some checks and accounting on instance failures */
+int actor_failure(const char *id, int op)
+/* actor failure maintenance */
{
int ret = 0;
- xs *l = xs_split(url, "/");
- const char *hostname = xs_list_get(l, 2);
double mt;
- if (!xs_is_string(hostname))
- return 0;
-
- xs *md5 = xs_md5_hex(hostname, strlen(hostname));
+ xs *md5 = xs_md5_hex(id, strlen(id));
xs *fn = xs_fmt("%s/failure/%s", srv_basedir, md5);
switch (op) {
@@ -3075,7 +3070,7 @@ int instance_failure(const char *url, int op)
/* only create once, as the date will be used */
if ((f = fopen(fn, "w")) != NULL) {
- fprintf(f, "%s\n", hostname);
+ fprintf(f, "%s\n", id);
fclose(f);
}
}
@@ -3093,6 +3088,20 @@ int instance_failure(const char *url, int op)
}
+int instance_failure(const char *url, int op)
+/* instance failure maintenance */
+{
+ /* extract just the host name */
+ xs *l = xs_split(url, "/");
+ const char *hostname = xs_list_get(l, 2);
+
+ if (!xs_is_string(hostname))
+ return 0;
+
+ return actor_failure(hostname, op);
+}
+
+
/** notifications **/
xs_str *notify_check_time(snac *snac, int reset)
diff --git a/snac.h b/snac.h
index 1a58e0b..2d21887 100644
--- a/snac.h
+++ b/snac.h
@@ -278,6 +278,7 @@ int content_match(const char *file, const xs_dict *msg);
xs_list *content_search(snac *user, const char *regex,
int priv, int skip, int show, int max_secs, int *timeout);
+int actor_failure(const char *id, int op);
int instance_failure(const char *url, int op);
void enqueue_input(snac *snac, const xs_dict *msg, const xs_dict *req, int retries);