aboutsummaryrefslogtreecommitdiff
path: root/src/html.c
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2020-07-31 22:30:16 +0200
committerdec05eba <dec05eba@protonmail.com>2020-07-31 22:30:16 +0200
commit14d0e432238f058d7bc854e5051ee2bcec6e2b62 (patch)
treed7feebbba860970fcf2cc6fb9a65fe13923e7c1f /src/html.c
parent4b8b6cce11623d208c03595a241d9af21fba04ba (diff)
Fix add html/rss not working if previous add failed and .in_progress still exists
Diffstat (limited to 'src/html.c')
-rw-r--r--src/html.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/html.c b/src/html.c
index 6977770..6442188 100644
--- a/src/html.c
+++ b/src/html.c
@@ -259,7 +259,11 @@ int add_html(const char *name, const char *url, char *html_config_dir, char *pro
strcat(html_tracked_dir, "/tracked/");
strcat(html_tracked_dir, name);
- if(file_exists(html_tracked_dir) == 0) {
+ char in_progress_filepath[PATH_MAX];
+ strcpy(in_progress_filepath, html_tracked_dir);
+ strcat(in_progress_filepath, "/.in_progress");
+
+ if(file_exists(html_tracked_dir) == 0 && file_exists(in_progress_filepath) != 0) {
fprintf(stderr, "You are already tracking %s\n", url);
result = -1;
goto cleanup;
@@ -275,12 +279,11 @@ int add_html(const char *name, const char *url, char *html_config_dir, char *pro
Create an ".in_progress" file to prevent periodic sync from reading rss data
before we have finished adding all the data.
*/
- char in_progress_filepath[PATH_MAX];
- strcpy(in_progress_filepath, html_tracked_dir);
- strcat(in_progress_filepath, "/.in_progress");
+ remove(in_progress_filepath);
result = create_lock_file(in_progress_filepath);
if(result != 0) {
fprintf(stderr, "Failed to create %s/.in_progress\n", html_tracked_dir);
+ remove(html_tracked_dir);
goto cleanup;
}
@@ -300,7 +303,7 @@ int add_html(const char *name, const char *url, char *html_config_dir, char *pro
}
char updated[32];
- assert(sizeof(time_t) == 4);
+ assert(sizeof(time_t) == sizeof(long));
sprintf(updated, "%ld", time(NULL));
result = file_overwrite_in_dir(html_tracked_dir, "updated", updated, strlen(updated));
if(result != 0) {