clear any orphan .in files

This commit is contained in:
Joanna Doyle 2021-07-30 06:26:23 +02:00
parent a259a93f80
commit 732d635660
No known key found for this signature in database
GPG Key ID: 3C392FB3FD1F5AB9
1 changed files with 9 additions and 6 deletions

View File

@ -2504,6 +2504,7 @@ purge_stale_locks (int game)
char buf[16];
pid_t pid;
size_t len;
struct stat pstat;
int seconds = 0;
if (!strcmp (dent->d_name, ".") || !strcmp (dent->d_name, ".."))
@ -2515,10 +2516,6 @@ purge_stale_locks (int game)
debug_write("purge_stale_locks !colon");
graceful_exit (201);
}
if (colon - dent->d_name != strlen(me->username))
continue;
if (strncmp (dent->d_name, me->username, colon - dent->d_name))
continue;
len = strlen (dent->d_name) + strlen(dgl_format_str(game, me, myconfig[game]->inprogressdir, NULL)) + 1;
fn = malloc (len);
@ -2526,13 +2523,13 @@ purge_stale_locks (int game)
snprintf (fn, len, "%s%s", dgl_format_str(game, me, myconfig[game]->inprogressdir, NULL), dent->d_name);
/* skip .in files */
if (len >= 3) {
if (len >= 4) {
char *tmp = fn + len - 4;
if (!strcmp(tmp, ".in")) {
fn[len-4] = '\0';
printf("%s", fn);
/* unlink .in file if it's orphaned */
if (stat(fn, NULL)) {
if (stat(fn, &pstat)) {
fn[len-4] = '.';
unlink(fn);
}
@ -2540,6 +2537,12 @@ purge_stale_locks (int game)
continue;
}
}
if (colon - dent->d_name != strlen(me->username))
continue;
if (strncmp (dent->d_name, me->username, colon - dent->d_name))
continue;
fn_in = malloc(len + 3);
snprintf (fn_in, len + 3, "%s.in", fn);