Skip to content
Snippets Groups Projects
Commit f83ed582 authored by rswindell's avatar rswindell
Browse files

Resolve <data_dir>/qnet/<hub_id>.out case sensitivity issue (e.g. on *nix file

systems) where a mixed-case directory would work for including the files in
the packet, but the files would not be deleted. The directory name must be the
lower-case QWK-ID (e.g. "hubid.out", not "HubID.out" or "HUBID.out") for the
files to be included (and deleted) now.
parent a3487f25
No related branches found
No related tags found
No related merge requests found
......@@ -318,7 +318,7 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
,cfg.data_dir,useron.number,msg.subj);
SAFEPRINTF2(tmp,"%s%s",cfg.temp_dir,msg.subj);
if(fexistcase(str) && !fexistcase(tmp))
mv(str,tmp,1);
mv(str,tmp,/* copy: */TRUE);
}
size=msgtoqwk(&msg,qwk,mode,INVALID_SUB,0,hdrs);
......@@ -541,20 +541,23 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
return(false);
if(/*!prepack && */ useron.rest&FLAG('Q')) { /* If QWK Net node, check for files */
SAFEPRINTF2(str,"%sqnet/%s.out/",cfg.data_dir,useron.alias);
char id[LEN_QWKID+1];
SAFECOPY(id,useron.alias);
strlwr(id);
SAFEPRINTF2(str,"%sqnet/%s.out/",cfg.data_dir,id);
dir=opendir(str);
while(dir!=NULL && (dirent=readdir(dir))!=NULL) { /* Move files into temp dir */
SAFEPRINTF3(str,"%sqnet/%s.out/%s",cfg.data_dir,useron.alias,dirent->d_name);
SAFEPRINTF3(str,"%sqnet/%s.out/%s",cfg.data_dir,id,dirent->d_name);
if(isdir(str))
continue;
SAFEPRINTF2(tmp2,"%s%s",cfg.temp_dir,dirent->d_name);
lncntr=0; /* Default pause */
lncntr=0; /* Defeat pause */
if(online==ON_LOCAL)
eprintf(LOG_INFO,"Including %s in packet",str);
else
lprintf(LOG_INFO,"Including %s in packet",str);
bprintf(text[RetrievingFile],str);
if(!mv(str,tmp2,1))
if(!mv(str,tmp2,/* copy: */TRUE))
netfiles++;
}
if(dir!=NULL)
......@@ -591,8 +594,8 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
? cfg.altpath[batdn_alt[i]-1]
: cfg.dir[batdn_dir[i]]->path
,tmp);
mv(str,tmp2,1); /* copy the file to temp dir */
getnodedat(cfg.node_num,&thisnode,1);
mv(str,tmp2,/* copy: */TRUE); /* copy the file to temp dir */
getnodedat(cfg.node_num,&thisnode,/* copy: */TRUE);
thisnode.aux=0xfe;
putnodedat(cfg.node_num,&thisnode);
CRLF;
......@@ -615,17 +618,17 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
SAFEPRINTF(str,"%sQWK/HELLO",cfg.text_dir);
if(fexistcase(str)) {
SAFEPRINTF(tmp2,"%sHELLO",cfg.temp_dir);
mv(str,tmp2,1);
mv(str,tmp2,/* copy: */TRUE);
}
SAFEPRINTF(str,"%sQWK/BBSNEWS",cfg.text_dir);
if(fexistcase(str)) {
SAFEPRINTF(tmp2,"%sBBSNEWS",cfg.temp_dir);
mv(str,tmp2,1);
mv(str,tmp2,/* copy: */TRUE);
}
SAFEPRINTF(str,"%sQWK/GOODBYE",cfg.text_dir);
if(fexistcase(str)) {
SAFEPRINTF(tmp2,"%sGOODBYE",cfg.temp_dir);
mv(str,tmp2,1);
mv(str,tmp2,/* copy: */TRUE);
}
SAFEPRINTF(str,"%sQWK/BLT-*",cfg.text_dir);
glob(str,0,NULL,&g);
......@@ -635,7 +638,7 @@ bool sbbs_t::pack_qwk(char *packet, ulong *msgcnt, bool prepack)
if(isdigit(str[4]) && isdigit(str[9])) {
SAFEPRINTF2(str,"%sQWK/%s",cfg.text_dir,fname);
SAFEPRINTF2(tmp2,"%s%s",cfg.temp_dir,fname);
mv(str,tmp2,1);
mv(str,tmp2,/* copy: */TRUE);
}
}
globfree(&g);
......
......@@ -344,8 +344,10 @@ void sbbs_t::qwk_success(ulong msgcnt, char bi, char prepack)
smbmsg_t msg;
if(useron.rest&FLAG('Q')) { // Was if(!prepack) only
sprintf(str,"%sqnet/%.8s.out/",cfg.data_dir,useron.alias);
strlwr(str);
char id[LEN_QWKID+1];
SAFECOPY(id,useron.alias);
strlwr(id);
sprintf(str,"%sqnet/%s.out/",cfg.data_dir,id);
delfiles(str,ALLFILES);
}
......
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