Bartosz Golaszewski
8d75d794ea
libbb: use sendfile() to copy data between file descriptors
...
Busybox already uses sendfile in httpd. This patch proposes to use it
globally to copy data between file descriptors.
It speeds up the copying on slow systems a lot - below are the times needed
to copy a 450Mb file with and without this option enabled on a BeagleBone
Black:
sendfile:
user 0m0.000s
sys 0m8.170s
read/write 4k:
user 0m0.470s
sys 0m16.300s
function old new delta
bb_full_fd_action 394 474 +80
Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2014-11-27 23:31:58 +01:00
Denys Vlasenko
a6ed6a3148
httpd: make sire pfd[TO_CGI].revents is cleared before poll()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-09-18 12:08:41 +02:00
Denys Vlasenko
fbe250db76
httpd: treat errors from stdin correctly.
...
Fron bug report:
If a CGI or proxied connection is rudely aborted (SIG_{KILL,BUS,SEGV})
then httpd will spin madly the poll loop in:
networking/httpd.c:1080
cgi_io_loop_and_exit()
Upon investigation I found that pfd[0].revents == 0x0018 (POLLHUP|POLLERR),
which leads to empty read, but the pfd[0].fd (STDIN_FILENO) is left open,
and in the FD list given to poll() which immediately returns to once
again inform the loop of (POLLHUP|POLLERR) condition of pfd[0].fd.
This continues until pfd[FROM_CGI].revents != 0
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-09-11 14:59:21 +02:00
Denys Vlasenko
982e87f2fb
Whitespace fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-07-30 11:52:58 +02:00
Denys Vlasenko
85daa67bc2
httpd: don't allow tabs and multiple spaces in request string
...
HTTP standard doesn't allow it and no sane clients should ever use it.
function old new delta
handle_incoming_and_exit 2795 2785 -10
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-03-25 23:27:00 +01:00
Denys Vlasenko
6967578728
whitespace fixes. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2013-01-14 01:34:48 +01:00
Pascal Bellard
70fc8c17e2
su: do not change to home dir unless -l
...
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-06-12 13:21:02 +02:00
Denys Vlasenko
8cab66730a
fix build breakage found by randconfig
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-20 14:48:00 +02:00
Rob Walker
7a4269329f
httpd: emit correct content length on range requests past the end. Closes 4952
...
Signed-off-by: Rob Walker <rwalker@codeaurora.org>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-04-03 08:09:28 +02:00
Denys Vlasenko
8cce1b3ad8
httpd: make byte ranges which start at 0 work too. Closes 4766
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-19 17:18:45 +01:00
Denys Vlasenko
ef43beac63
httpd: fix sendfile of files larger than 2 Gb. Closes 4754
...
When built with "sendfile" support, httpd was unable to send large files
(>2 GB) in one single connection, terminating it before the full file
has been sent.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-04 21:37:17 +01:00
Denys Vlasenko
35def51c97
httpd: fix MD5-encrypted-in-httpd.conf password logic
...
function old new delta
check_user_passwd 467 492 +25
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-02-01 02:42:54 +01:00
Denys Vlasenko
03419aa037
httpd: don't drop/abuse QUERY_STRING when /cgi-bin/index.cgi is used
...
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-12-19 12:30:34 +01:00
Denys Vlasenko
f282c6b657
libbb: remove is_directory's argument which is always NULL
...
function old new delta
send_cgi_and_exit 892 890 -2
ln_main 447 445 -2
handle_incoming_and_exit 2784 2780 -4
is_directory 66 59 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/6 up/down: 2/-19) Total: -15 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-12-18 03:27:46 +01:00
Denys Vlasenko
f85bd1a7a7
httpd: remove redundant NULL assignment and save one strrchr. -8 bytes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-12-18 03:22:36 +01:00
Denys Vlasenko
b05cd6b7a7
httpd: fix /../ sanitization (had one extra semicolon). rewrote it
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-12-16 01:37:02 +01:00
Pascal Bellard
0fa3e5f6f9
httpd: small fixes to previous change
...
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-11-29 20:54:30 +01:00
Pascal Bellard
7291755439
httpd: make it possible to use system passwords for auth
...
function old new delta
check_user_passwd 320 467 +147
httpd_main 760 757 -3
Signed-off-by: Pascal Bellard <pascal.bellard@ads-lu.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-11-29 13:51:11 +01:00
Denys Vlasenko
d2277e262f
nommu: fix cases where we mangle argv[0][0]
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-11-22 17:19:26 +01:00
Denys Vlasenko
dd1061b6a7
wget: URL-decode user:password before base64-encoding it into auth hdr. Closes 3625.
...
function old new delta
percent_decode_in_place - 152 +152
parse_url 304 317 +13
handle_incoming_and_exit 2795 2798 +3
httpd_main 763 760 -3
decodeString 152 - -152
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/1 up/down: 168/-155) Total: 13 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-09-11 21:04:02 +02:00
Denys Vlasenko
66426760be
*: remove "Options:" string from help texts
...
function old new delta
packed_usage 28706 28623 -83
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-06-05 03:58:28 +02:00
Denys Vlasenko
12a432715f
adduser: safe username passing to passwd/addgroup
...
passwd: support creating SHA passwords
random code shrink
function old new delta
crypt_make_pw_salt - 87 +87
adduser_main 883 904 +21
...
crypt_make_salt 99 89 -10
chpasswd_main 329 312 -17
packed_usage 28731 28691 -40
passwd_main 1070 1000 -70
cryptpw_main 310 224 -86
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/12 up/down: 154/-288) Total: -134 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-05-13 03:19:01 +02:00
Pere Orga
5bc8c005a8
move remaining help text from include/usage.src.h
...
Signed-off-by: Pere Orga <gotrunks@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-04-11 03:29:49 +02:00
Denys Vlasenko
d277f55ebd
http: document index.cgi usage. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-04-10 03:08:22 +02:00
Peter Korsgaard
95755181b8
httpd: don't send error messages with gzip encoding
...
If CONFIG_FEATURE_HTTPD_GZIP is enabled and request contained
'Accept-Encoding: gzip', then errors were sent with 'Content-Encoding: gzip'
even though they aren't.
Fix it by clearing content_gzip before sending the headers.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-03-27 23:26:33 +02:00
Denys Vlasenko
8030a14849
httpd: send correct mtime for .gz files
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2011-01-11 17:59:45 +01:00
Denys Vlasenko
fb132e4737
whitespace cleanup
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
2010-10-29 11:46:52 +02:00
Denys Vlasenko
0ef64bdb40
*: make GNU licensing statement forms more regular
...
This change retains "or later" state! No licensing _changes_ here,
only form is adjusted (article, space between "GPL" and "v2" and so on).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-08-16 20:14:46 +02:00
Peter Korsgaard
e5dbd56d77
httpd: simplified "gzip" test
...
function old new delta
handle_incoming_and_exit 2830 2807 -23
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-26 02:08:35 +02:00
Peter Korsgaard
7a2ba329b9
httpd: optional support for gzip-compressed pages
...
function old new delta
send_file_and_exit 662 761 +99
handle_incoming_and_exit 2756 2830 +74
send_headers 603 654 +51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 224/0) Total: 224 bytes
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-25 03:20:53 +02:00
Denys Vlasenko
535ce1df5c
httpd: cosmetic fixes, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-07-25 03:20:25 +02:00
Denys Vlasenko
31c3dad851
remove recently added erroneous _and_die()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-06-27 16:57:55 +02:00
Denys Vlasenko
41ddd9f606
*: make exec failure message more consistent
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-06-25 01:46:53 +02:00
Denys Vlasenko
8fc9e6a15d
httpd: fix proxy mode bug (annoying but harmless), better help text
...
function old new delta
cgi_io_loop_and_exit 594 635 +41
packed_usage 26815 26841 +26
handle_incoming_and_exit 2745 2739 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-04-02 10:40:58 +02:00
Denys Vlasenko
88aa558e5c
*: do not check for POLLIN/POLLOUT only, just in case it's POLHUP/POLERR
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-03-02 15:02:45 +01:00
Bernhard Reutner-Fischer
ca228fb16d
reuse a few strings
...
text data bss dec hex filename
839040 453 6828 846321 ce9f1 busybox_old
839019 453 6828 846300 ce9dc busybox_unstripped
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-02-26 10:09:31 +01:00
Denys Vlasenko
cb23d93c68
*: add/remove safe_, it seems we had a few incorrect uses
...
function old new delta
chat_main 1359 1361 +2
microcom_main 712 713 +1
ifplugd_main 1109 1110 +1
arpping 465 466 +1
acpid_main 440 441 +1
script_main 1069 1067 -2
cgi_io_loop_and_exit 594 591 -3
telnet_main 1475 1469 -6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/3 up/down: 6/-11) Total: -5 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-12 12:29:55 +01:00
Denys Vlasenko
dbc6a7a8fd
httpd -m: output salted MD5 hash. By (forrest AT hifulltech.com)
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-12-16 02:28:50 +01:00
Denys Vlasenko
a3aa3e3095
wget: check for close success; fix chunked; do not bother to send QUIT to ftp
...
Also, random fixes to use %u for unsigned quantities. -14 bytes in wget.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-12-11 12:36:10 +01:00
Denys Vlasenko
33d8d08f78
httpd: shrink mime type matching code (suggested by Bernhard)
...
function old new delta
static.suffixTable 100 231 +131
send_file_and_exit 625 658 +33
handle_incoming_and_exit 2749 2745 -4
send_cgi_and_exit 936 901 -35
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/2 up/down: 164/-39) Total: 125 bytes
text data bss dec hex filename
824631 458 6956 832045 cb22d busybox_old
824550 458 6956 831964 cb1dc busybox_unstripped
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-10 01:46:02 +02:00
Denys Vlasenko
108b8c5367
httpd: fix bug 601 "I:index.php does not run interpreter on DIR/ url"
...
function old new delta
parse_conf 1462 1485 +23
index_html - 11 +11
handle_incoming_and_exit 2762 2749 -13
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 34/-13) Total: 21 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-09-08 21:17:49 +02:00
Denys Vlasenko
a4bcbd0e04
telnetd: properly close fds in child
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-06-09 23:01:24 +02:00
Bernhard Reutner-Fischer
62851171db
fix debug message
...
Print the mime-type only after it has been set.
Add possible TODOs: use TCP_CORK, parse_config()
2009-05-04 09:57:25 +02:00
Denys Vlasenko
48a29defca
httpd: speed up httpd.conf at the cost of 49 bytes of code
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-05-02 00:50:38 +02:00
Denis Vlasenko
c8d7109f60
httpd: fix small bug in parser. it crept in during cleanup
2009-04-22 14:16:59 +00:00
Denis Vlasenko
00643ca520
httpd: allow empty lines in conf file
2009-04-22 13:52:22 +00:00
Denis Vlasenko
1cf4a0eb81
httpd: simplify insane conf file parser
...
function old new delta
bb_simplify_abs_path_inplace - 98 +98
parse_expr 824 832 +8
passwd_main 1025 1027 +2
evalvar 1374 1376 +2
parse_command 1463 1460 -3
bb_simplify_path 137 55 -82
parse_conf 1572 1422 -150
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 3/3 up/down: 126/-251) Total: -125 bytes
2009-04-22 13:49:16 +00:00
Denis Vlasenko
5e34ff29bc
*: mass renaming of USE_XXXX to IF_XXXX
...
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
2009-04-21 11:09:40 +00:00
Denis Vlasenko
cbb4e61dd5
httpd: add comment explaining why SERVER_NAME etc is not set.
2009-03-18 20:00:46 +00:00
Denis Vlasenko
2ca84f6064
httpd: tiny optimization
2009-02-05 12:38:21 +00:00