[git commit] ftpd: allow -A if !FTPD_AUTHENTICATION as well

Denys Vlasenko vda.linux at googlemail.com
Sat Apr 7 12:18:42 UTC 2018


commit: https://git.busybox.net/busybox/commit/?id=e0afe0a9fd610b1972fdaa444ca39af0b0be6ec4
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Users will be able to use "ftpd -A" in scripts regardless of build config

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 networking/ftpd.c | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/networking/ftpd.c b/networking/ftpd.c
index 4ecdb4121..6ca231c90 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -71,6 +71,10 @@
 //usage:     "\n	-w	Allow upload"
 //usage:	IF_FEATURE_FTPD_AUTHENTICATION(
 //usage:     "\n	-A	No login required, client access occurs under ftpd's UID"
+//
+// if !FTPD_AUTHENTICATION, -A is accepted too, but not shown in --help
+// since it's the only supported mode in that configuration
+//
 //usage:     "\n	-a USER	Enable 'anonymous' login and map it to USER"
 //usage:	)
 //usage:     "\n	-v	Log errors to stderr. -vv: verbose log"
@@ -1157,14 +1161,12 @@ enum {
 #if !BB_MMU
 	OPT_l = (1 << 0),
 	OPT_1 = (1 << 1),
-	OPT_A = (1 << 2),
 #endif
-	BIT_v =        (!BB_MMU) * 3,
-	OPT_v = (1 << (BIT_v + 0)),
-	OPT_S = (1 << (BIT_v + 1)),
-	OPT_w = (1 << (BIT_v + 2)) * ENABLE_FEATURE_FTPD_WRITE,
-	BIT_A =        BIT_v + 2 + ENABLE_FEATURE_FTPD_WRITE,
-	OPT_A = (1 << (BIT_A + 0)) * ENABLE_FEATURE_FTPD_AUTHENTICATION,
+	BIT_A =        (!BB_MMU) * 2,
+	OPT_A = (1 << (BIT_A + 0)),
+	OPT_v = (1 << (BIT_A + 1)),
+	OPT_S = (1 << (BIT_A + 2)),
+	OPT_w = (1 << (BIT_A + 3)) * ENABLE_FEATURE_FTPD_WRITE,
 };
 
 int ftpd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -1184,26 +1186,25 @@ int ftpd_main(int argc UNUSED_PARAM, char **argv)
 	verbose_S = 0;
 	G.timeout = 2 * 60;
 #if BB_MMU
-	opts = getopt32(argv, "^"    "vS"
-		IF_FEATURE_FTPD_WRITE("w") IF_FEATURE_FTPD_AUTHENTICATION("A")
+	opts = getopt32(argv, "^"   "AvS" IF_FEATURE_FTPD_WRITE("w")
 		"t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:")
 		"\0" "vv:SS",
 		&G.timeout, &abs_timeout, IF_FEATURE_FTPD_AUTHENTICATION(&anon_opt,)
 		&G.verbose, &verbose_S
 	);
 #else
-	opts = getopt32(argv, "^" "l1AvS"
-		IF_FEATURE_FTPD_WRITE("w") IF_FEATURE_FTPD_AUTHENTICATION("A")
+	opts = getopt32(argv, "^" "l1AvS" IF_FEATURE_FTPD_WRITE("w")
 		"t:+T:+" IF_FEATURE_FTPD_AUTHENTICATION("a:")
 		"\0" "vv:SS",
 		&G.timeout, &abs_timeout, IF_FEATURE_FTPD_AUTHENTICATION(&anon_opt,)
 		&G.verbose, &verbose_S
 	);
 	if (opts & (OPT_l|OPT_1)) {
-		/* Our secret backdoor to ls */
+		/* Our secret backdoor to ls: see popen_ls() */
 		if (fchdir(3) != 0)
 			_exit(127);
 		/* memset(&G, 0, sizeof(G)); - ls_main does it */
+		/* NB: in this case -A has a different meaning: like "ls -A" */
 		return ls_main(/*argc_unused*/ 0, argv);
 	}
 #endif


More information about the busybox-cvs mailing list