diff options
| author | 2024-04-22 05:46:56 +0200 | |
|---|---|---|
| committer | 2024-04-22 05:46:56 +0200 | |
| commit | ebf6a4bd8e97e434d1502ddead4690aca3dd6d33 (patch) | |
| tree | 1c0db63d7828759c3736e75a08da60a7362c65bd /data.c | |
| parent | Updated TODO. (diff) | |
| download | snac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.tar.gz snac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.tar.xz snac2-ebf6a4bd8e97e434d1502ddead4690aca3dd6d33.zip | |
URLs like {srv_baseurl}/{user}/admin/p/{md5} are valid.
But only if {md5} is in the user's timeline.
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 14 |
1 files changed, 9 insertions, 5 deletions
| @@ -1065,14 +1065,18 @@ int timeline_touch(snac *snac) | |||
| 1065 | xs_str *timeline_fn_by_md5(snac *snac, const char *md5) | 1065 | xs_str *timeline_fn_by_md5(snac *snac, const char *md5) |
| 1066 | /* get the filename of an entry by md5 from any timeline */ | 1066 | /* get the filename of an entry by md5 from any timeline */ |
| 1067 | { | 1067 | { |
| 1068 | xs_str *fn = xs_fmt("%s/private/%s.json", snac->basedir, md5); | 1068 | xs_str *fn = NULL; |
| 1069 | 1069 | ||
| 1070 | if (mtime(fn) == 0.0) { | 1070 | if (xs_is_hex(md5) && strlen(md5) == 32) { |
| 1071 | fn = xs_free(fn); | 1071 | fn = xs_fmt("%s/private/%s.json", snac->basedir, md5); |
| 1072 | fn = xs_fmt("%s/public/%s.json", snac->basedir, md5); | ||
| 1073 | 1072 | ||
| 1074 | if (mtime(fn) == 0.0) | 1073 | if (mtime(fn) == 0.0) { |
| 1075 | fn = xs_free(fn); | 1074 | fn = xs_free(fn); |
| 1075 | fn = xs_fmt("%s/public/%s.json", snac->basedir, md5); | ||
| 1076 | |||
| 1077 | if (mtime(fn) == 0.0) | ||
| 1078 | fn = xs_free(fn); | ||
| 1079 | } | ||
| 1076 | } | 1080 | } |
| 1077 | 1081 | ||
| 1078 | return fn; | 1082 | return fn; |