diff options
| author | 2022-11-25 17:26:12 +0100 | |
|---|---|---|
| committer | 2022-11-25 17:26:12 +0100 | |
| commit | 6c6b5a30c4570ac0ace13e95e28a678c3720b899 (patch) | |
| tree | dc93af34c1877f60b6b762a053c7ed3db385dd47 /data.c | |
| parent | Renamed indexes. (diff) | |
| download | snac2-6c6b5a30c4570ac0ace13e95e28a678c3720b899.tar.gz snac2-6c6b5a30c4570ac0ace13e95e28a678c3720b899.tar.xz snac2-6c6b5a30c4570ac0ace13e95e28a678c3720b899.zip | |
Do hard links to objects in each user's public and private caches.
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 17 |
1 files changed, 15 insertions, 2 deletions
| @@ -14,7 +14,7 @@ | |||
| 14 | #include <sys/file.h> | 14 | #include <sys/file.h> |
| 15 | #include <fcntl.h> | 15 | #include <fcntl.h> |
| 16 | 16 | ||
| 17 | double db_layout = 2.3; | 17 | double db_layout = 2.4; |
| 18 | 18 | ||
| 19 | 19 | ||
| 20 | int db_upgrade(d_char **error); | 20 | int db_upgrade(d_char **error); |
| @@ -901,12 +901,25 @@ void timeline_object_add(snac *snac, const char *id, char *msg) | |||
| 901 | { | 901 | { |
| 902 | object_add(id, msg); | 902 | object_add(id, msg); |
| 903 | 903 | ||
| 904 | /* add to the private index */ | ||
| 904 | xs *idx = xs_fmt("%s/private.idx", snac->basedir); | 905 | xs *idx = xs_fmt("%s/private.idx", snac->basedir); |
| 905 | index_add(idx, id); | 906 | index_add(idx, id); |
| 906 | 907 | ||
| 908 | /* build the name for the linked copy in the private cache */ | ||
| 909 | xs *ofn = _object_fn(id); | ||
| 910 | xs *l = xs_split(ofn, "/"); | ||
| 911 | xs *cfn = xs_fmt("%s/private/%s", snac->basedir, xs_list_get(l, -1)); | ||
| 912 | |||
| 913 | link(ofn, cfn); | ||
| 914 | |||
| 907 | if (xs_startswith(id, snac->actor)) { | 915 | if (xs_startswith(id, snac->actor)) { |
| 908 | idx = xs_replace_i(idx, "private.", "public."); | 916 | /* add to the public index */ |
| 917 | idx = xs_replace_i(idx, "private", "public"); | ||
| 909 | index_add(idx, id); | 918 | index_add(idx, id); |
| 919 | |||
| 920 | /* add to the public cache */ | ||
| 921 | cfn = xs_replace_i(cfn, "private", "public"); | ||
| 922 | link(ofn, cfn); | ||
| 910 | } | 923 | } |
| 911 | } | 924 | } |
| 912 | 925 | ||