summaryrefslogtreecommitdiffstats
path: root/libexec
diff options
context:
space:
mode:
Diffstat (limited to 'libexec')
-rw-r--r--libexec/ftpd/ftpd.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/libexec/ftpd/ftpd.c b/libexec/ftpd/ftpd.c
index 8705dc8..4679626 100644
--- a/libexec/ftpd/ftpd.c
+++ b/libexec/ftpd/ftpd.c
@@ -2235,12 +2235,14 @@ statfilecmd(char *filename)
{
FILE *fin;
int atstart;
- int c;
+ int c, code;
char line[LINE_MAX];
+ struct stat st;
+ code = lstat(filename, &st) == 0 && S_ISDIR(st.st_mode) ? 212 : 213;
(void)snprintf(line, sizeof(line), _PATH_LS " -lgA %s", filename);
fin = ftpd_popen(line, "r");
- lreply(211, "status of %s:", filename);
+ lreply(code, "status of %s:", filename);
atstart = 1;
while ((c = getc(fin)) != EOF) {
if (c == '\n') {
@@ -2269,7 +2271,7 @@ statfilecmd(char *filename)
atstart = (c == '\n');
}
(void) ftpd_pclose(fin);
- reply(211, "End of Status");
+ reply(code, "End of Status");
}
void
OpenPOWER on IntegriCloud