diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index 83ec882c3a1dea27f31e9f216a23f38c3106c36e..a8d13319153c003974a30307078392cb5feb0253 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -766,7 +766,12 @@ static void send_thread(void* arg) if(xfer.dir>=0) { memset(&f,0,sizeof(f)); - if(loadfile(&scfg, xfer.dir, xfer.filename, &f, file_detail_normal) == TRUE) { + if(!loadfile(&scfg, xfer.dir, getfname(xfer.filename), &f, file_detail_normal)) { + lprintf(LOG_ERR, "%04d <%s> DATA downloaded: %s (not found in filebase!)" + ,xfer.ctrl_sock + ,xfer.user->alias + ,xfer.filename); + } else { f.hdr.times_downloaded++; f.hdr.last_downloaded = time32(NULL); updatefile(&scfg, &f); @@ -823,12 +828,11 @@ static void send_thread(void* arg) putsmsg(&scfg,uploader.number,str); } } + mqtt_file_download(&mqtt, xfer.user, &f, total, xfer.client); + smb_freefilemem(&f); } if(!xfer.tmpfile && !xfer.delfile && !(scfg.dir[f.dir]->misc&DIR_NOSTAT)) inc_download_stats(&scfg, 1, (ulong)total); - - if(!xfer.tmpfile) - mqtt_file_download(&mqtt, xfer.user, &f, total, xfer.client); } if(xfer.credits) {