Only in ftpd: cmp.o Only in ftpd: ftpcmd.c Only in ftpd: ftpcmd.o diff -u ftpd.org/ftpcmd.y ftpd/ftpcmd.y --- ftpd.org/ftpcmd.y Tue Apr 17 19:03:52 2001 +++ ftpd/ftpcmd.y Fri Aug 24 11:28:37 2001 @@ -92,6 +92,7 @@ extern char tmpline[]; extern int readonly; extern int noepsv; +extern int noretr; off_t restart_point; @@ -434,8 +435,11 @@ } | RETR check_login SP pathname CRLF { - if ($2 && $4 != NULL) - retrieve((char *) 0, $4); + if(noretr) + reply(500, "RETR command is disabled"); + else + if ($2 && $4 != NULL) + retrieve((char *) 0, $4); if ($4 != NULL) free($4); } Only in ftpd: ftpd Only in ftpd: ftpd.8.gz diff -u ftpd.org/ftpd.c ftpd/ftpd.c --- ftpd.org/ftpd.c Wed Mar 21 14:40:36 2001 +++ ftpd/ftpd.c Fri Aug 24 11:26:46 2001 @@ -150,6 +150,7 @@ int pdata = -1; /* for passive mode */ int readonly=0; /* Server is in readonly mode. */ int noepsv=0; /* EPSV command is disabled. */ +int noretr=0; /* RETR command is disabled. */ sig_atomic_t transflag; off_t file_size; off_t byte_count; @@ -299,7 +300,7 @@ #endif /* OLD_SETPROCTITLE */ - while ((ch = getopt(argc, argv, "AdlDESURrt:T:u:va:p:46")) != -1) { + while ((ch = getopt(argc, argv, "AdlDESURrt:T:u:va:p:w46")) != -1) { switch (ch) { case 'D': daemon_mode++; @@ -370,6 +371,10 @@ case 'v': debug = 1; + break; + + case 'w': + noretr = 1; break; case '4': Only in ftpd: ftpd.o Only in ftpd: logwtmp.o Only in ftpd: ls.o Only in ftpd: popen.o Only in ftpd: print.o Only in ftpd: skey-stuff.o Only in ftpd: util.o