wok view busybox/stuff/busybox-1.25-ftpd.u @ rev 19597

Up: cURL (7.52.1)
author Alexander Medvedev <devl547@gmail.com>
date Sun Jan 01 17:49:15 2017 +0000 (2017-01-01)
parents
children
line source
1 Keep anonynous default usage, need -a for authentication check
2 --- busybox-1.25/networking/ftpd.c
3 +++ busybox-1.25/networking/ftpd.c
4 @@ -13,7 +13,7 @@
5 */
7 //usage:#define ftpd_trivial_usage
8 -//usage: "[-wvS] [-t N] [-T N] [DIR]"
9 +//usage: "[-wvSa] [-t N] [-T N] [DIR]"
10 //usage:#define ftpd_full_usage "\n\n"
11 //usage: "Anonymous FTP server\n"
12 //usage: "\n"
13 @@ -25,6 +25,7 @@
14 //usage: "\n -w Allow upload"
15 //usage: "\n -v Log errors to stderr. -vv: verbose log"
16 //usage: "\n -S Log errors to syslog. -SS: verbose log"
17 +//usage: "\n -a Authentication check"
18 //usage: "\n -t,-T Idle and absolute timeouts"
19 //usage: "\n DIR Change root to this directory"
21 @@ -1108,7 +1109,8 @@
22 #endif
23 OPT_v = (1 << ((!BB_MMU) * 3 + 0)),
24 OPT_S = (1 << ((!BB_MMU) * 3 + 1)),
25 - OPT_w = (1 << ((!BB_MMU) * 3 + 2)) * ENABLE_FEATURE_FTP_WRITE,
26 + OPT_a = (1 << ((!BB_MMU) * 3 + 2)),
27 + OPT_w = (1 << ((!BB_MMU) * 3 + 3)) * ENABLE_FEATURE_FTP_WRITE,
28 };
30 int ftpd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
31 @@ -1132,9 +1134,9 @@
32 G.timeout = 2 * 60;
33 opt_complementary = "t+:T+:vv:SS";
34 #if BB_MMU
35 - opts = getopt32(argv, "vS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
36 + opts = getopt32(argv, "vSa" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
37 #else
38 - opts = getopt32(argv, "l1AvS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
39 + opts = getopt32(argv, "l1AvSa" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
40 if (opts & (OPT_l|OPT_1)) {
41 /* Our secret backdoor to ls */
42 /* TODO: pass --group-directories-first? would be nice, but ls doesn't do that yet */
43 @@ -1198,7 +1200,7 @@
44 signal(SIGALRM, timeout_handler);
46 #if ENABLE_FEATURE_FTP_AUTHENTICATION
47 - while (1) {
48 + if (opts & OPT_a) while (1) {
49 uint32_t cmdval = cmdio_get_cmd_and_arg();
50 if (cmdval == const_USER) {
51 pw = getpwnam(G.ftp_arg);
52 @@ -1248,7 +1250,7 @@
53 }
55 #if ENABLE_FEATURE_FTP_AUTHENTICATION
56 - change_identity(pw);
57 + if (opts & OPT_a) change_identity(pw);
58 #endif
60 /* RFC-959 Section 5.1