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
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
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
982e87f2fb
Whitespace fixes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2013-07-30 11:52:58 +02:00
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
6967578728
whitespace fixes. no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2013-01-14 01:34:48 +01:00
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
8cab66730a
fix build breakage found by randconfig
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2012-04-20 14:48:00 +02:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
8030a14849
httpd: send correct mtime for .gz files
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2011-01-11 17:59:45 +01:00
fb132e4737
whitespace cleanup
...
Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com >
2010-10-29 11:46:52 +02:00
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
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
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
535ce1df5c
httpd: cosmetic fixes, no code changes
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-07-25 03:20:25 +02:00
31c3dad851
remove recently added erroneous _and_die()
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-27 16:57:55 +02:00
41ddd9f606
*: make exec failure message more consistent
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2010-06-25 01:46:53 +02:00
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
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
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
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
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
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
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
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
a4bcbd0e04
telnetd: properly close fds in child
...
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com >
2009-06-09 23:01:24 +02:00
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
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
c8d7109f60
httpd: fix small bug in parser. it crept in during cleanup
2009-04-22 14:16:59 +00:00
00643ca520
httpd: allow empty lines in conf file
2009-04-22 13:52:22 +00:00
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
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
cbb4e61dd5
httpd: add comment explaining why SERVER_NAME etc is not set.
2009-03-18 20:00:46 +00:00
2ca84f6064
httpd: tiny optimization
2009-02-05 12:38:21 +00:00