From a8354d242312ec18a48f8573a38b33be3765028d Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Fri, 20 Apr 2001 02:19:37 +0000 Subject: [PATCH] Changed version number to 1.05 for non-JS build. Fixed bugs in receive_thread() when failed to open/create file: GPF/segfault trying to display error message (whoops) and then no 450 result code. Better log output for file not found messages. --- src/sbbs3/ftpsrvr.c | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/src/sbbs3/ftpsrvr.c b/src/sbbs3/ftpsrvr.c index f37b86cef6..e5db765fe3 100644 --- a/src/sbbs3/ftpsrvr.c +++ b/src/sbbs3/ftpsrvr.c @@ -69,7 +69,11 @@ /* Constants */ #define FTP_SERVER "Synchronet FTP Server" +#ifdef JAVASCRIPT #define FTP_VERSION "1.10" +#else +#define FTP_VERSION "1.05" +#endif #define ILLEGAL_FILENAME_CHARS "\\/|<>+[]:=\";,%" @@ -1396,7 +1400,8 @@ static void receive_thread(void* arg) xfer=*(xfer_t*)arg; if((fp=fopen(xfer.filename,xfer.append ? "ab" : "wb"))==NULL) { - lprintf("%04d !DATA ERROR %d opening %s",xfer.ctrl_sock,xfer.filename,errno); + lprintf("%04d !DATA ERROR %d opening %s",xfer.ctrl_sock,errno,xfer.filename); + sockprintf(xfer.ctrl_sock,"450 ERROR %d opening %s.",errno,xfer.filename); close_socket(xfer.data_sock,__LINE__); return; } @@ -1894,10 +1899,11 @@ char* vpath(int lib, int dir, char* str) if(lib<0) return(str); strcat(str,scfg.lib[lib]->sname); + strcat(str,"/"); if(dir<0) return(str); - strcat(str,"/"); strcat(str,scfg.dir[dir]->code); + strcat(str,"/"); return(str); } @@ -3212,6 +3218,9 @@ static void ctrl_thread(void* arg) delfile=TRUE; fprintf(fp,"%-*s File/Folder Descriptions\r\n" ,INDEX_FNAME_LEN,startup->index_file_name); + if(startup->options&FTP_OPT_HTML_INDEX_FILE) + fprintf(fp,"%-*s File/Folder Descriptions (HTML)\r\n" + ,INDEX_FNAME_LEN,startup->html_index_file); if(lib<0) { /* File Aliases */ @@ -3399,8 +3408,8 @@ static void ctrl_thread(void* arg) filedat=getfileixb(&scfg,&f); if(!filedat && !(startup->options&FTP_OPT_DIR_FILES)) { sockprintf(sock,"550 File not found: %s",p); - lprintf("%04d !%s file not in database (%s) for %.4s command" - ,sock,user.alias,fname,cmd); + lprintf("%04d !%s file (%s%s) not in database for %.4s command" + ,sock,user.alias,vpath(lib,dir,str),p,cmd); filepos=0; continue; } @@ -3473,8 +3482,8 @@ static void ctrl_thread(void* arg) } else { sockprintf(sock,"550 File not found: %s",p); - lprintf("%04d !%s file not found (%s) for %.4s command" - ,sock,user.alias,p,cmd); + lprintf("%04d !%s file (%s%s) not found for %.4s command" + ,sock,user.alias,vpath(lib,dir,str),p,cmd); } filepos=0; socket_debug[sock]&=~SOCKET_DEBUG_DOWNLOAD; @@ -3597,9 +3606,11 @@ static void ctrl_thread(void* arg) sockprintf(sock,"553 File already exists."); continue; } - lprintf("%04d %s uploading: %s to /%s/%s in %s mode" - ,sock,user.alias,fname - ,scfg.lib[scfg.dir[dir]->lib]->sname,scfg.dir[dir]->code + lprintf("%04d %s uploading: %s to %s (%s) in %s mode" + ,sock,user.alias + ,p /* filename */ + ,vpath(lib,dir,str) /* virtual path */ + ,scfg.dir[dir]->path /* actual path */ ,pasv_sock==INVALID_SOCKET ? "active":"passive"); } sockprintf(sock,"150 Opening BINARY mode data connection for file transfer."); @@ -3900,7 +3911,9 @@ void DLLCALL ftp_server(void* arg) if(startup->html_index_script[0]==0) strcpy(startup->html_index_script,"ftp-html.js"); /*temporary*/ +#ifdef JAVASCRIPT startup->options|=FTP_OPT_HTML_INDEX_FILE; +#endif thread_up(); -- GitLab