diff --git a/src/sbbs3/download.cpp b/src/sbbs3/download.cpp index c13280ab7d4e27cc2a4486bf6d3a7fc91db560b7..1d8ab50f18232f22ce475342fd5e04361b38315c 100644 --- a/src/sbbs3/download.cpp +++ b/src/sbbs3/download.cpp @@ -163,12 +163,13 @@ void sbbs_t::notdownloaded(ulong size, time_t start, time_t end) /****************************************************************************/ int sbbs_t::protocol(char *cmdline, int cd) { - char str[256],*p=NULL; + char protlog[256],*p=NULL; + char msg[256]; int i; FILE* stream; - sprintf(str,"%sPROTOCOL.LOG",cfg.node_dir); - remove(str); /* Deletes the protocol log */ + sprintf(protlog,"%sPROTOCOL.LOG",cfg.node_dir); + remove(protlog); /* Deletes the protocol log */ if(useron.misc&AUTOHANG) autohang=1; else @@ -181,17 +182,21 @@ int sbbs_t::protocol(char *cmdline, int cd) //lprintf("%s",cmdline); if(cd) p=cfg.temp_dir; + sprintf(msg,"Transferring ",cmdline); + spymsg(msg); + sys_status|=SS_FILEXFER; i=external(cmdline,EX_OUTL,p); + sys_status&=~SS_FILEXFER; if(online==ON_REMOTE) rioctl(IOFB); // Save DSZLOG to logfile - if((stream=fnopen(NULL,str,O_RDONLY))!=NULL) { + if((stream=fnopen(NULL,protlog,O_RDONLY))!=NULL) { while(!feof(stream) && !ferror(stream)) { - if(!fgets(str,sizeof(str)-1,stream)) + if(!fgets(protlog,sizeof(protlog)-1,stream)) break; - truncsp(str); - logline(nulstr,str); + truncsp(protlog); + logline(nulstr,protlog); } fclose(stream); } diff --git a/src/sbbs3/sbbsdefs.h b/src/sbbs3/sbbsdefs.h index 2d3b37c416c2b8e0905e13fdcbcd18c1648d7657..8371b17c04b14cb156940904918448c3cec64dd0 100644 --- a/src/sbbs3/sbbsdefs.h +++ b/src/sbbs3/sbbsdefs.h @@ -596,6 +596,7 @@ enum { /* Values for xtrn_t.event */ #define SS_SPLITP (1L<<24) /* Split-screen private chat */ #define SS_NEWDAY (1L<<25) /* Date changed while online */ #define SS_RLOGIN (1L<<26) /* Current login via BSD RLogin */ +#define SS_FILEXFER (1L<<27) /* File transfer in progress, halt spy */ /* Bits in 'mode' for getkey and getstr */ #define K_UPPER (1L<<0) /* Converts all letters to upper case */