瀏覽代碼

New function actor_failure().

grunfink 10 月之前
父節點
當前提交
335b90a9d1
共有 2 個文件被更改,包括 19 次插入9 次删除
  1. 18 9
      data.c
  2. 1 0
      snac.h

+ 18 - 9
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)

+ 1 - 0
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);