commit 2d2a685

default  ·  2024-09-20 08:47:14 +0000 UTC
parent 3a5c781
More migration work.
7 files changed,  +29, -13
M main.c
M xs.h
+8, -0
 1@@ -2696,6 +2696,14 @@ int migrate_account(snac *user)
 2         return 1;
 3     }
 4 
 5+    xs *move = msg_move(user, new_account);
 6+    xs *fwers = follower_list(user);
 7+
 8+    xs_json_dump(move, 4, stdout);
 9+    printf("\n");
10+    xs_json_dump(fwers, 4, stdout);
11+    printf("\n");
12+
13     return 0;
14 }
15 
M main.c
+12, -4
 1@@ -47,8 +47,8 @@ int usage(void)
 2     printf("unlimit {basedir} {uid} {actor}      Unlimits an actor\n");
 3     printf("verify_links {basedir} {uid}         Verifies a user's links (in the metadata)\n");
 4     printf("search {basedir} {uid} {regex}       Searches posts by content\n");
 5-    printf("alias {basedir} {uid} {account}      Sets account (@user@host or actor url) as an alias\n");
 6     printf("export_csv {basedir} {uid}           Exports data as CSV files into current directory\n");
 7+    printf("alias {basedir} {uid} {account}      Sets account (@user@host or actor url) as an alias\n");
 8     printf("migrate {basedir} {uid}              Migrates to the account defined as the alias\n");
 9 
10     return 1;
11@@ -292,12 +292,20 @@ int main(int argc, char *argv[])
12             status = webfinger_request(url, &actor, &uid);
13 
14         if (valid_status(status)) {
15-            snac.config = xs_dict_set(snac.config, "alias", actor);
16+            if (strcmp(actor, snac.actor) == 0) {
17+                snac_log(&snac, xs_fmt("You can't be your own alias"));
18+                return 1;
19+            }
20+            else {
21+                snac.config = xs_dict_set(snac.config, "alias", actor);
22 
23-            user_persist(&snac, 1);
24+                user_persist(&snac, 1);
25+            }
26         }
27-        else
28+        else {
29             snac_log(&snac, xs_fmt("Webfinger error for %s %d", url, status));
30+            return 1;
31+        }
32 
33         return 0;
34     }
M xs.h
+2, -4
 1@@ -23,7 +23,6 @@ typedef enum {
 2     XSTYPE_LITEM  = 0x1f,       /* Element of a list (any type) */
 3     XSTYPE_DICT   = 0x1c,       /* Sequence of KEYVALs up to EOM (with size) */
 4     XSTYPE_KEYVAL = 0x1e,       /* key + value (STRING key + any type) */
 5-    XSTYPE_EOM    = 0x19,       /* End of Multiple (LIST or DICT) */
 6     XSTYPE_DATA   = 0x10        /* A block of anonymous data */
 7 } xstype;
 8 
 9@@ -170,7 +169,7 @@ void *_xs_realloc(void *ptr, size_t size, const char *file, int line, const char
10     xs_val *ndata = realloc(ptr, size);
11 
12     if (ndata == NULL) {
13-        fprintf(stderr, "**OUT OF MEMORY**\n");
14+        fprintf(stderr, "ERROR: out of memory at %s:%d: %s()\n", file, line, func);
15         abort();
16     }
17 
18@@ -266,7 +265,6 @@ xstype xs_type(const xs_val *data)
19     case XSTYPE_DICT:
20     case XSTYPE_KEYVAL:
21     case XSTYPE_NUMBER:
22-    case XSTYPE_EOM:
23     case XSTYPE_DATA:
24         t = data[0];
25         break;
26@@ -696,7 +694,7 @@ xs_list *xs_list_new(void)
27 {
28     int sz = 1 + _XS_TYPE_SIZE + 1;
29     xs_list *l = xs_realloc(NULL, sz);
30-    memset(l, XSTYPE_EOM, sz);
31+    memset(l, '\0', sz);
32 
33     l[0] = XSTYPE_LIST;
34     _xs_put_size(l, sz);
+3, -3
 1@@ -1,8 +1,8 @@
 2 /* copyright (c) 2022 - 2024 grunfink et al. / MIT license */
 3 
 4-#ifndef _XS_MIME
 5+#ifndef _XS_MIME_H
 6 
 7-#define _XS_MIME
 8+#define _XS_MIME_H
 9 
10 const char *xs_mime_by_ext(const char *file);
11 
12@@ -81,4 +81,4 @@ const char *xs_mime_by_ext(const char *file)
13 
14 #endif /* XS_IMPLEMENTATION */
15 
16-#endif /* XS_MIME */
17+#endif /* XS_MIME_H */
+1, -1
1@@ -47,7 +47,7 @@ xs_list *xs_set_result(xs_set *s)
2 void xs_set_free(xs_set *s)
3 /* frees a set, dropping the list */
4 {
5-    free(xs_set_result(s));
6+    xs_free(xs_set_result(s));
7 }
8 
9 
+2, -0
1@@ -33,6 +33,8 @@
2 
3 #ifdef XS_IMPLEMENTATION
4 
5+#include <ctype.h>
6+
7 #ifndef xs_countof
8 #define xs_countof(a) (sizeof((a)) / sizeof((*a)))
9 #endif
+1, -1
1@@ -1 +1 @@
2-/* 9c3dd1b1165c25baa154e82d8d278926e376af81 2024-09-14T18:18:42+02:00 */
3+/* ae3126a2d093c6bb5c36328e27bc93a452aff379 2024-09-20T07:39:32+02:00 */