Denis Vlasenko
9f57cf6604
ftpd: fix command fetching to not do it in 1-byte reads;
...
fix command de-escaping. Tested to download files with embeeded \xff and LF.
libbb: tweaks for the above
function old new delta
ftpd_main 2231 2321 +90
xmalloc_fgets_internal 190 222 +32
xmalloc_fgets_str_len - 27 +27
xmalloc_fgets_str 7 23 +16
xmalloc_fgetline_str 10 26 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/0 up/down: 181/0) Total: 181 bytes
2009-03-18 17:32:44 +00:00
Denis Vlasenko
fce4a9454c
ftpd: add some comments
2009-03-18 16:02:54 +00:00
Denis Vlasenko
e3b840ce98
ftpd: trim messages (but make sure they still make sense)
...
text data bss dec hex filename
4400 0 0 4400 1130 ftpd_old.o
4346 0 0 4346 10fa ftpd.o
2009-03-18 14:25:28 +00:00
Denis Vlasenko
5b492ee876
ftpd: do not use nasty tricks for re-execing if we are on MMU machine.
...
On NOMMU, code is alomost the same, on MMU:
function old new delta
handle_dir_common 223 390 +167
ftpd_main 2306 2231 -75
popen_ls 203 - -203
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/1 up/down: 167/-278) Total: -111 bytes
2009-03-18 14:12:22 +00:00
Denis Vlasenko
1432cb4bd9
ftpd: add support for MDTM, I see clients often use it,
...
it may allow client-side caching.
function old new delta
ftpd_main 2232 2306 +74
gmtime_r - 19 +19
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/0 up/down: 93/0) Total: 93 bytes
2009-03-18 00:45:00 +00:00
Denis Vlasenko
3a7a1eba2e
ftpd: document NLST format
2009-03-17 13:03:06 +00:00
Denis Vlasenko
1a82555108
ftpd: instead of wordy HELP, implement useful, and smaller, FEAT.
...
(HELP is still "supported" as an alias to FEAT)
text data bss dec hex filename
807331 468 7856 815655 c7227 busybox_old
807246 468 7856 815570 c71d2 busybox_unstripped
2009-03-17 12:40:34 +00:00
Denis Vlasenko
edb0de4283
ftpd: implement -vv verbosity
...
function old new delta
ftpd_main 2097 2190 +93
verbose_log - 33 +33
cmdio_write_raw 12 34 +22
cmdio_write_ok 25 45 +20
cmdio_write_error 25 45 +20
cmdio_write 62 78 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/0 up/down: 204/0) Total: 204 bytes
2009-03-17 12:23:24 +00:00
Denis Vlasenko
e6c94a611a
ftpd: tweak timeout code
2009-03-17 05:11:51 +00:00
Denis Vlasenko
074c9036b2
ftpd: fix thinko: set_nport takes port in network order
2009-03-16 21:01:41 +00:00
Denis Vlasenko
fbf5846ce1
ftpd: dont use fdprintf for simple status messages
...
function old new delta
ftpd_main 2025 2055 +30
cmdio_write_ok 17 25 +8
cmdio_write_error 17 25 +8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 46/0) Total: 46 bytes
2009-03-16 20:54:45 +00:00
Denis Vlasenko
43bb7bba3b
ftpd: simplify PORT check by assuming IP = peer's IP.
...
Should be as safe as before this change.
function old new delta
ftpd_main 2115 2025 -90
2009-03-16 19:54:06 +00:00
Denis Vlasenko
20c8216897
ftpd: add idle and absolute timeouts. This is a security issue,
...
otherwise ftpd may end up hanging indefinitely.
function old new delta
timeout_handler - 110 +110
ftpd_main 2019 2115 +96
packed_usage 25662 25685 +23
handle_upload_common 306 322 +16
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/0 up/down: 245/0) Total: 245 bytes
2009-03-16 16:19:53 +00:00
Denis Vlasenko
f2160b6a09
ftpd: security tightened up:
...
PORT is not allowed on !IPv4
PORT must have IP == peer's IP
upload is allowed only into regular files
function old new delta
ftpd_main 1815 2019 +204
handle_upload_common 260 306 +46
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 250/0) Total: 250 bytes
2009-03-16 14:53:54 +00:00
Denis Vlasenko
fc58ba1298
ftpd: fix the bug where >2GB file ops report errors;
...
make a few simplifications; add TODOs.
function old new delta
port_or_pasv_was_seen - 37 +37
get_remote_transfer_fd 104 109 +5
handle_upload_common 265 260 -5
handle_dir_common 228 223 -5
popen_ls 211 203 -8
ftpd_main 1825 1815 -10
data_transfer_checks_ok 37 - -37
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/4 up/down: 42/-65) Total: -23 bytes
2009-03-15 15:54:58 +00:00
Denis Vlasenko
4221e90ae4
ftpd: stop unconditional logging to syslog. This was the only applet
...
which was doing it. Added option -S to enable it when desired.
function old new delta
packed_usage 25647 25666 +19
ftpd_main 1826 1825 -1
2009-03-11 15:07:44 +00:00
Denis Vlasenko
5b28d314e7
ftpd: add LOG_NDELAY to openlog
2009-03-09 17:22:16 +00:00
Denis Vlasenko
c41cba5a57
ftpd: reuse ls applet for LIST/NLST/STAT generation
...
function old new delta
popen_ls - 211 +211
ftpd_main 1760 1826 +66
handle_dir_common 199 228 +29
get_remote_transfer_fd 89 104 +15
replace_char 30 34 +4
handle_upload_common 263 265 +2
bind_for_passive_mode 129 121 -8
cmdio_write 84 62 -22
escape_text 166 136 -30
init_data_sock_params 81 - -81
ftpdataio_dispose_transfer_fd 87 - -87
write_dirstats 149 - -149
write_filestats 603 - -603
------------------------------------------------------------------------------
(add/remove: 1/4 grow/shrink: 11/5 up/down: 384/-986) Total: -602 bytes
text data bss dec hex filename
808804 476 7864 817144 c77f8 busybox_old
808156 476 7864 816496 c7570 busybox_unstripped
2009-03-09 15:46:07 +00:00
Denis Vlasenko
9b2fbda538
ftpd: EPSV and SIZE support. Tested to work on IPv6 too.
...
libbb: str2sockaddr shuld accept [IPv6] addr without port -
wget 'ftp://[::1]/file' needs that to work.
function old new delta
bind_for_passive_mode - 129 +129
get_nport - 30 +30
ftpd_main 1731 1760 +29
str2sockaddr 412 431 +19
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 2/0 up/down: 207/0) Total: 207 bytes
text data bss dec hex filename
808568 476 7864 816908 c770c busybox_old
808804 476 7864 817144 c77f8 busybox_unstripped
2009-03-09 13:01:08 +00:00
Denis Vlasenko
57a3b17498
ftp: reduce amount of realloc's done in cmdio_write
...
text data bss dec hex filename
808562 476 7864 816902 c7706 busybox_old
808568 476 7864 816908 c770c busybox_unstripped
2009-03-09 04:38:37 +00:00
Denis Vlasenko
d42eb81206
ftpd: code shrink
2009-03-09 04:22:52 +00:00
Denis Vlasenko
3455285339
ftpd: code shrink
2009-03-09 04:18:00 +00:00
Denis Vlasenko
f1a11b5a4e
ftp: code shrink
...
text data bss dec hex filename
809078 476 7864 817418 c790a busybox_old
808590 476 7864 816930 c7722 busybox_unstripped
2009-03-09 04:13:59 +00:00
Denis Vlasenko
9e95920efd
ftpd: code shuffled a bit, added comments
2009-03-09 03:15:05 +00:00
Denis Vlasenko
51c9bb1fd1
ftpd: add comment
2009-03-09 02:51:46 +00:00
Denis Vlasenko
ffb4bb3034
ftpd: further code shrink
...
function old new delta
port_pasv_cleanup - 50 +50
replace_char - 30 +30
ftp_write_str_common 102 104 +2
handle_dir_common 209 204 -5
ftpd_main 1990 1970 -20
port_cleanup 23 - -23
pasv_cleanup 28 - -28
handle_upload_common 320 273 -47
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 1/3 up/down: 82/-123) Total: -41 bytes
2009-03-09 02:23:45 +00:00
Denis Vlasenko
73c571a5ff
*: move get_sock_lsa and xwrite_str to libbb, use where appropriate
...
function old new delta
get_sock_lsa - 72 +72
buffer_fill_and_print 179 196 +17
parse_expr 824 832 +8
read_base64 343 348 +5
nameval 202 206 +4
fbset_main 1694 1698 +4
expand 1849 1853 +4
udhcp_send_kernel_packet 249 252 +3
udhcp_get_option 223 222 -1
chat_main 1246 1245 -1
pack_gzip 1661 1659 -2
doset 299 297 -2
bb__parsespent 119 117 -2
test_main 260 257 -3
qgravechar 109 106 -3
tcpudpsvd_main 1834 1830 -4
sysctl_display_all 589 580 -9
xopen_xwrite_close 44 33 -11
prs 30 18 -12
find_main 418 406 -12
full_write2_str 25 12 -13
adduser_main 667 654 -13
evaltreenr 817 802 -15
evaltree 817 802 -15
tftpd_main 526 493 -33
ftpd_main 2050 1990 -60
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 7/18 up/down: 117/-211) Total: -94 bytes
2009-03-09 00:12:37 +00:00
Denis Vlasenko
5e4fda0aff
ftpd: code chrink, fixed some minor bugs
...
ls: update comment
*: openlog fixes (added LOG_PID, set LOG_DAEMON as appropriate)
function old new delta
xwrite_str - 26 +26
cmdio_write_ok - 15 +15
handle_cwd 40 45 +5
packed_usage 25668 25670 +2
cmdio_write_raw 7 9 +2
handle_upload_common 322 320 -2
udhcpd_main 1375 1372 -3
udhcpc_main 2362 2359 -3
port_cleanup 27 23 -4
handle_dir_common 221 209 -12
str_netfd_write 26 - -26
cmdio_get_cmd_and_arg 122 - -122
ftpd_main 2208 2050 -158
------------------------------------------------------------------------------
text data bss dec hex filename
809933 476 7864 818273 c7c61 busybox_old
809199 476 7864 817539 c7983 busybox_unstripped
2009-03-08 23:46:48 +00:00
Denis Vlasenko
bf9d17949e
adding forgotten new file
2009-03-08 09:31:28 +00:00