Skip to content
Snippets Groups Projects
Commit 6dda1874 authored by Rob Swindell's avatar Rob Swindell :speech_balloon:
Browse files

Use fmutex_close() and don't log ENOENT errors when removing pack*.now files

parent 6d424f3a
No related branches found
No related tags found
No related merge requests found
Pipeline #7159 failed
...@@ -2920,16 +2920,17 @@ void event_thread(void* arg) ...@@ -2920,16 +2920,17 @@ void event_thread(void* arg)
if(sbbs->useron.number != 0 && !(sbbs->useron.misc&(DELETED|INACTIVE))) { if(sbbs->useron.number != 0 && !(sbbs->useron.misc&(DELETED|INACTIVE))) {
time_t t; time_t t;
SAFEPRINTF(lockfname,"%s.lock",fname); SAFEPRINTF(lockfname,"%s.lock",fname);
int lockfile = fmutex_open(lockfname,startup->host_name,TIMEOUT_MUTEX_FILE, &t); int lockfile = fmutex_open(lockfname,startup->host_name,TIMEOUT_MUTEX_FILE, &t, true);
if(lockfile < 0) { if(lockfile < 0) {
if(difftime(time(NULL), t) > 60) if(difftime(time(NULL), t) > 60)
sbbs->lprintf(LOG_INFO," %s exists (unpack in progress?) since %s", lockfname, time_as_hhmm(&sbbs->cfg, t, str)); sbbs->lprintf(LOG_INFO," %s exists (unpack in progress?) since %s", lockfname, time_as_hhmm(&sbbs->cfg, t, str));
continue; continue;
} }
sbbs->lprintf(LOG_DEBUG, "%s is now owned", lockfname);
if(!fexist(fname)) { if(!fexist(fname)) {
sbbs->lprintf(LOG_NOTICE, "%s already gone", fname); sbbs->lprintf(LOG_DEBUG, "%s already gone", fname);
close(lockfile); if(!fmutex_close(lockfname, lockfile))
sbbs->fremove(WHERE, lockfname, /* log-all-errors: */true); sbbs->errormsg(WHERE, ERR_REMOVE, lockfname);
continue; continue;
} }
sbbs->online=ON_LOCAL; sbbs->online=ON_LOCAL;
...@@ -2956,8 +2957,8 @@ void event_thread(void* arg) ...@@ -2956,8 +2957,8 @@ void event_thread(void* arg)
SAFEPRINTF(str,"%sfile/", sbbs->cfg.data_dir); SAFEPRINTF(str,"%sfile/", sbbs->cfg.data_dir);
sbbs->delfiles(str, badpkt, /* keep: */10); sbbs->delfiles(str, badpkt, /* keep: */10);
} }
close(lockfile); if(!fmutex_close(lockfname, lockfile))
sbbs->fremove(WHERE, lockfname, /* log-all-errors: */true); sbbs->errormsg(WHERE, ERR_REMOVE, lockfname);
} }
else { else {
sbbs->lprintf(LOG_INFO, "Removing: %s", fname); sbbs->lprintf(LOG_INFO, "Removing: %s", fname);
...@@ -2988,16 +2989,17 @@ void event_thread(void* arg) ...@@ -2988,16 +2989,17 @@ void event_thread(void* arg)
continue; continue;
} }
SAFEPRINTF2(lockfname,"%spack%04u.lock",sbbs->cfg.data_dir,usernum); SAFEPRINTF2(lockfname,"%spack%04u.lock",sbbs->cfg.data_dir,usernum);
int lockfile = fmutex_open(lockfname,startup->host_name,TIMEOUT_MUTEX_FILE, &t); int lockfile = fmutex_open(lockfname,startup->host_name,TIMEOUT_MUTEX_FILE, &t, true);
if(lockfile < 0) { if(lockfile < 0) {
if(difftime(time(NULL), t) > 60) if(difftime(time(NULL), t) > 60)
sbbs->lprintf(LOG_INFO,"%s exists (pack in progress?) since %s", lockfname, time_as_hhmm(&sbbs->cfg, t, str)); sbbs->lprintf(LOG_INFO,"%s exists (pack in progress?) since %s", lockfname, time_as_hhmm(&sbbs->cfg, t, str));
continue; continue;
} }
sbbs->lprintf(LOG_DEBUG, "%s is now owned", lockfname);
if(!fexist(fname)) { if(!fexist(fname)) {
sbbs->lprintf(LOG_NOTICE, "%s already gone", fname); sbbs->lprintf(LOG_DEBUG, "%s already gone", fname);
close(lockfile); if(!fmutex_close(lockfname, lockfile))
sbbs->fremove(WHERE, lockfname, /* log-all-errors: */true); sbbs->errormsg(WHERE, ERR_REMOVE, lockfname);
continue; continue;
} }
if(!(sbbs->useron.misc&(DELETED|INACTIVE))) { if(!(sbbs->useron.misc&(DELETED|INACTIVE))) {
...@@ -3022,9 +3024,9 @@ void event_thread(void* arg) ...@@ -3022,9 +3024,9 @@ void event_thread(void* arg)
sbbs->console&=~CON_L_ECHO; sbbs->console&=~CON_L_ECHO;
sbbs->online=false; sbbs->online=false;
} }
sbbs->fremove(WHERE, fname, /* log-all-errors: */true); sbbs->fremove(WHERE, fname);
close(lockfile); if(!fmutex_close(lockfname, lockfile))
sbbs->fremove(WHERE, lockfname, /* log-all-errors: */true); sbbs->errormsg(WHERE, ERR_REMOVE, lockfname);
} }
globfree(&g); globfree(&g);
sbbs->useron.number = 0; sbbs->useron.number = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment