[git commit] ftpd: make LIST command show dotfiles too

Denys Vlasenko vda.linux at googlemail.com
Mon Sep 15 21:35:58 UTC 2014


commit: http://git.busybox.net/busybox/commit/?id=7666fa1d02b4e7e74a83833881caef09b475b88b
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

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

diff --git a/networking/ftpd.c b/networking/ftpd.c
index 9fcc3e9..6adcb1d 100644
--- a/networking/ftpd.c
+++ b/networking/ftpd.c
@@ -622,7 +622,7 @@ popen_ls(const char *opt)
 	pid_t pid;
 
 	argv[0] = "ftpd";
-	argv[1] = opt; /* "-l" or "-1" */
+	argv[1] = opt; /* "-lA" or "-1A" */
 	argv[2] = "--";
 	argv[3] = G.ftp_arg;
 	argv[4] = NULL;
@@ -699,7 +699,7 @@ handle_dir_common(int opts)
 	if (!(opts & USE_CTRL_CONN) && !port_or_pasv_was_seen())
 		return; /* port_or_pasv_was_seen emitted error response */
 
-	ls_fd = popen_ls((opts & LONG_LISTING) ? "-l" : "-1");
+	ls_fd = popen_ls((opts & LONG_LISTING) ? "-lA" : "-1A");
 	ls_fp = xfdopen_for_read(ls_fd);
 /* FIXME: filenames with embedded newlines are mishandled */
 
@@ -1102,10 +1102,11 @@ enum {
 #if !BB_MMU
 	OPT_l = (1 << 0),
 	OPT_1 = (1 << 1),
+	OPT_A = (1 << 2),
 #endif
-	OPT_v = (1 << ((!BB_MMU) * 2 + 0)),
-	OPT_S = (1 << ((!BB_MMU) * 2 + 1)),
-	OPT_w = (1 << ((!BB_MMU) * 2 + 2)) * ENABLE_FEATURE_FTP_WRITE,
+	OPT_v = (1 << ((!BB_MMU) * 3 + 0)),
+	OPT_S = (1 << ((!BB_MMU) * 3 + 1)),
+	OPT_w = (1 << ((!BB_MMU) * 3 + 2)) * ENABLE_FEATURE_FTP_WRITE,
 };
 
 int ftpd_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
@@ -1126,12 +1127,11 @@ int ftpd_main(int argc UNUSED_PARAM, char **argv)
 	G.timeout = 2 * 60;
 	opt_complementary = "t+:T+:vv:SS";
 #if BB_MMU
-	opts = getopt32(argv,   "vS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
+	opts = getopt32(argv,    "vS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
 #else
-	opts = getopt32(argv, "l1vS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
+	opts = getopt32(argv, "l1AvS" IF_FEATURE_FTP_WRITE("w") "t:T:", &G.timeout, &abs_timeout, &G.verbose, &verbose_S);
 	if (opts & (OPT_l|OPT_1)) {
 		/* Our secret backdoor to ls */
-/* TODO: pass -A? It shows dot files */
 /* TODO: pass --group-directories-first? would be nice, but ls doesn't do that yet */
 		if (fchdir(3) != 0)
 			_exit(127);


More information about the busybox-cvs mailing list