From: Denis Vlasenko Date: Tue, 17 Mar 2009 13:03:06 +0000 (-0000) Subject: ftpd: document NLST format X-Git-Tag: 1_14_0~228 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=3a7a1eba2e2b3cc05f000fc739d3548dd0a0872d;p=oweals%2Fbusybox.git ftpd: document NLST format --- diff --git a/networking/ftpd.c b/networking/ftpd.c index 2c1d42ebf..f005d129c 100644 --- a/networking/ftpd.c +++ b/networking/ftpd.c @@ -692,6 +692,7 @@ handle_dir_common(int opts) * are fed with ls output with bare '\n'. * Pity... that would be much simpler. */ +/* TODO: need to s/LF/NUL/g here */ xwrite_str(remote_fd, line); xwrite(remote_fd, "\r\n", 2); free(line); @@ -710,6 +711,13 @@ handle_list(void) static void handle_nlst(void) { + /* NLST returns list of names, "\r\n" terminated without regard + * to the current binary flag. Names may start with "/", + * then they represent full names (we don't produce such names), + * otherwise names are relative to current directory. + * Embedded "\n" are replaced by NULs. This is safe since names + * can never contain NUL. + */ handle_dir_common(0); } static void