diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp index 18b8c54f1d2589ffaef01932544ca1a0decdb7a1..38458a04e9bd050a8e023a4e3046ee02cc6969da 100644 --- a/src/sbbs3/file.cpp +++ b/src/sbbs3/file.cpp @@ -301,3 +301,11 @@ bool sbbs_t::checkfname(char *fname) } return(true); } + +long sbbs_t::delfiles(const char *inpath, const char *spec, size_t keep) +{ + long result = ::delfiles(inpath, spec, keep); + if(result < 0) + errormsg(WHERE, ERR_REMOVE, inpath, result, spec); + return result; +} diff --git a/src/sbbs3/main.cpp b/src/sbbs3/main.cpp index 7fc95bc97c1e385ff07de2d0c59f876f3e23dc76..5a29215dd3940bdaaa253dcdee75ab32493a817e 100644 --- a/src/sbbs3/main.cpp +++ b/src/sbbs3/main.cpp @@ -2689,7 +2689,7 @@ void event_thread(void* arg) sbbs->console|=CON_L_ECHO; sbbs->getusrsubs(); bool success = sbbs->unpack_rep(g.gl_pathv[i]); - delfiles(sbbs->cfg.temp_dir,ALLFILES); /* clean-up temp_dir after unpacking */ + sbbs->delfiles(sbbs->cfg.temp_dir,ALLFILES); /* clean-up temp_dir after unpacking */ sbbs->batch_create_list(); /* FREQs? */ sbbs->batdn_total=0; sbbs->online=FALSE; @@ -2701,7 +2701,6 @@ void event_thread(void* arg) sbbs->errormsg(WHERE, ERR_REMOVE, g.gl_pathv[i], 0); } else { char badpkt[MAX_PATH+1]; - SAFECOPY(badpkt, g.gl_pathv[i]); SAFEPRINTF2(badpkt, "%s.%lx.bad", g.gl_pathv[i], time(NULL)); remove(badpkt); if(rename(g.gl_pathv[i], badpkt) == 0) @@ -2758,7 +2757,7 @@ void event_thread(void* arg) remove(bat_list); } else sbbs->lputs(LOG_INFO, "No packet created (no new messages)"); - delfiles(sbbs->cfg.temp_dir,ALLFILES); + sbbs->delfiles(sbbs->cfg.temp_dir,ALLFILES); sbbs->console&=~CON_L_ECHO; sbbs->online=FALSE; } @@ -2809,7 +2808,7 @@ void event_thread(void* arg) sbbs->qwk_success(l,0,1); sbbs->putmsgptrs(); } - delfiles(sbbs->cfg.temp_dir,ALLFILES); + sbbs->delfiles(sbbs->cfg.temp_dir,ALLFILES); sbbs->console&=~CON_L_ECHO; sbbs->online=FALSE; } @@ -2935,7 +2934,7 @@ void event_thread(void* arg) sbbs->lprintf(LOG_ERR, "!ERROR %d (%s) renaming %s to %s" ,errno, strerror(errno), str, newname); } - delfiles(sbbs->cfg.temp_dir,ALLFILES); + sbbs->delfiles(sbbs->cfg.temp_dir,ALLFILES); sbbs->console&=~CON_L_ECHO; sbbs->online=FALSE; if(remove(str)) @@ -2994,7 +2993,7 @@ void event_thread(void* arg) close(file); } } - delfiles(sbbs->cfg.temp_dir,ALLFILES); + sbbs->delfiles(sbbs->cfg.temp_dir,ALLFILES); sbbs->cfg.qhub[i]->last=time32(NULL); SAFEPRINTF(str,"%sqnet.dab",sbbs->cfg.ctrl_dir); diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h index 487c7622b903ece2de8b4e79cafd016324934e71..d5c30254f5bea85b44e57c7b95e5ea18c46c14d3 100644 --- a/src/sbbs3/sbbs.h +++ b/src/sbbs3/sbbs.h @@ -923,6 +923,7 @@ public: char * getfilespec(char *str); bool checkfname(char *fname); bool addtobatdl(file_t* f); + long delfiles(const char *inpath, const char *spec, size_t keep = 0); /* listfile.cpp */ bool listfile(const char *fname, const char *buf, uint dirnum