aboutsummaryrefslogtreecommitdiff
path: root/networking/ftpd.c
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2014-09-15 23:35:58 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2014-09-15 23:35:58 +0200
commit7666fa1d02b4e7e74a83833881caef09b475b88b (patch)
tree413baf197e4f5094327b9fe15437b5df550628d6 /networking/ftpd.c
parent05399fc53dc0b812727e44189882181ecaf3b6d6 (diff)
downloadbusybox-7666fa1d02b4e7e74a83833881caef09b475b88b.tar.gz
ftpd: make LIST command show dotfiles too
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/ftpd.c')
-rw-r--r--networking/ftpd.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/networking/ftpd.c b/networking/ftpd.c
index 9fcc3e963..6adcb1dee 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);