Denis Vlasenko [Mon, 1 Oct 2007 09:59:47 +0000 (09:59 -0000)]
hush: feeble attempt at making it more NOMMU-friendly
Denis Vlasenko [Mon, 1 Oct 2007 09:59:01 +0000 (09:59 -0000)]
hush: stop doing manual acounting of open fd's, kernel can do it for us
Denis Vlasenko [Sun, 30 Sep 2007 23:50:48 +0000 (23:50 -0000)]
introduce and use close_on_exec_on(fd). -50 bytes.
Denis Vlasenko [Sun, 30 Sep 2007 17:55:43 +0000 (17:55 -0000)]
move udhcp_{client/server}_config to common_bufsiz1
udhcp_run_script 1108 1151 +43
init_packet 209 210 +1
udhcpc_main 2395 2393 -2
udhcp_client_config 56 - -56
udhcp_server_config 88 - -88
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 2/1 up/down: 44/-146) Total: -102 bytes
text data bss dec hex filename
771326 1029 9696 782051 beee3 busybox_old
771383 1029 9552 781964 bee8c busybox_unstripped
Denis Vlasenko [Sun, 30 Sep 2007 17:54:10 +0000 (17:54 -0000)]
dhcpreplay: code shrink, -40 bytes
Denis Vlasenko [Sun, 30 Sep 2007 16:36:02 +0000 (16:36 -0000)]
fixlet to pgrep/pkill
Denis Vlasenko [Sun, 30 Sep 2007 16:32:01 +0000 (16:32 -0000)]
print_signames_and_exit -> print_signames (because of "ash calls kill_main")
Denis Vlasenko [Sun, 30 Sep 2007 16:22:36 +0000 (16:22 -0000)]
replace printf with fputs where appropriate
Denis Vlasenko [Sun, 30 Sep 2007 16:04:21 +0000 (16:04 -0000)]
libiproute: add missing break's
Denis Vlasenko [Sun, 30 Sep 2007 00:06:42 +0000 (00:06 -0000)]
announce 1.7.2 on the website
Denis Vlasenko [Sat, 29 Sep 2007 23:26:52 +0000 (23:26 -0000)]
small code shrink
Denis Vlasenko [Sat, 29 Sep 2007 22:52:25 +0000 (22:52 -0000)]
build system: pass EXTRA_LDFLAGS to final link stage
Denis Vlasenko [Sat, 29 Sep 2007 22:49:26 +0000 (22:49 -0000)]
trivial typo fix
Denis Vlasenko [Sat, 29 Sep 2007 22:26:01 +0000 (22:26 -0000)]
pgrep,pkill: new applets by Loic Grenie <loic.grenie@gmail.com>
Denis Vlasenko [Sat, 29 Sep 2007 19:19:55 +0000 (19:19 -0000)]
xrealloc_getcwd_or_warn: smaller cod and less wasted RAM at run time
Denis Vlasenko [Sat, 29 Sep 2007 18:27:14 +0000 (18:27 -0000)]
remove if() which is always true
Denis Vlasenko [Fri, 28 Sep 2007 23:45:56 +0000 (23:45 -0000)]
bunzip2: trim verbose messages
text data bss dec hex filename
770752 1029 9696 781477 beca5 busybox_old
770691 1029 9696 781416 bec68 busybox_unstripped
Denis Vlasenko [Fri, 28 Sep 2007 22:35:29 +0000 (22:35 -0000)]
httpd: trivial simplification
Denis Vlasenko [Fri, 28 Sep 2007 22:13:55 +0000 (22:13 -0000)]
more "if (p) free(p)" fixes; fix a typo in comment
Denis Vlasenko [Fri, 28 Sep 2007 22:07:23 +0000 (22:07 -0000)]
fix "if (p) free(p)" constructs
Denis Vlasenko [Fri, 28 Sep 2007 21:56:36 +0000 (21:56 -0000)]
remove stray semicolon
Denis Vlasenko [Fri, 28 Sep 2007 13:41:41 +0000 (13:41 -0000)]
hdparm: paranoia-induced fix against theoretical div-by-0 case
Denis Vlasenko [Fri, 28 Sep 2007 13:38:08 +0000 (13:38 -0000)]
hdparm: more robust (re overflows) code. +38 bytes.
Denis Vlasenko [Fri, 28 Sep 2007 11:37:38 +0000 (11:37 -0000)]
trivial fix in setfiles. spotted by Yuichi Nakamura <ynakam@hitachisoft.jp>
Denis Vlasenko [Fri, 28 Sep 2007 11:21:47 +0000 (11:21 -0000)]
hdparm: reduce possibility of numeric overflow in -T.
do_time 386 410 +24
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 24/0) Total: 24 bytes
Denis Vlasenko [Fri, 28 Sep 2007 10:29:17 +0000 (10:29 -0000)]
assorted static vars removal
function old new delta
tcpudpsvd_main 1829 1839 +10
update_status 567 569 +2
sigterm 1 - -1
.........
dhcprelay_signal_handler 8 - -8
nfs_strerror 60 49 -11
singlemount 4579 4564 -15
static.p 16 - -16
svstatus 20 - -20
dhcprelay_xid_list 32 - -32
runsv_main 1785 1746 -39
static.buf 74 28 -46
svd 56 - -56
dhcprelay_main 1141 1080 -61
------------------------------------------------------------------------------
(add/remove: 0/20 grow/shrink: 2/10 up/down: 12/-386) Total: -374 bytes
Denis Vlasenko [Fri, 28 Sep 2007 10:28:03 +0000 (10:28 -0000)]
hdparm: simplify timing measurement (it wa the last last user
of setitimer in the tree).
static.thousand 16 - -16
read_big_block 81 46 -35
getitimer 41 - -41
setitimer 47 - -47
__GI_setitimer 47 - -47
do_time 480 386 -94
------------------------------------------------------------------------------
(add/remove: 0/4 grow/shrink: 0/2 up/down: 0/-280) Total: -280 bytes
M miscutils/hdparm.c
Denis Vlasenko [Fri, 28 Sep 2007 10:25:32 +0000 (10:25 -0000)]
hdparm: get rid of static variables
process_dev 5309 5311 +2
unregister_hwif 1 - -1
...........
Xreadahead 4 - -4
seek_to_zero 25 17 -8
hdparm_main 1242 1227 -15
do_time 547 480 -67
------------------------------------------------------------------------------
(add/remove: 0/83 grow/shrink: 1/3 up/down: 2/-248) Total: -246 bytes
Denis Vlasenko [Thu, 27 Sep 2007 20:49:57 +0000 (20:49 -0000)]
libbb: make const_int_0 reside in rodata
Denis Vlasenko [Thu, 27 Sep 2007 20:46:08 +0000 (20:46 -0000)]
libbb: align bb_common_bufsiz1 to "long long"
Denis Vlasenko [Thu, 27 Sep 2007 17:11:48 +0000 (17:11 -0000)]
less: make 'f' page forward
Denis Vlasenko [Thu, 27 Sep 2007 15:07:23 +0000 (15:07 -0000)]
wget: -O FILE is allowed to overwrite existing file (compat)
Denis Vlasenko [Thu, 27 Sep 2007 11:15:42 +0000 (11:15 -0000)]
zcip: fix unaligned trap on ARM
Denis Vlasenko [Thu, 27 Sep 2007 10:26:59 +0000 (10:26 -0000)]
remove stray '/*' within comment
Denis Vlasenko [Thu, 27 Sep 2007 10:23:34 +0000 (10:23 -0000)]
hdparm: use fixed fd #3 for device being interrogated
(surprisingly, on i386 almost no code size change)
Denis Vlasenko [Thu, 27 Sep 2007 10:20:47 +0000 (10:20 -0000)]
introduce bb_putchar(). saves ~1800 on uclibc (less on glibc).
Denis Vlasenko [Thu, 27 Sep 2007 10:17:53 +0000 (10:17 -0000)]
style and message text fixes
Denis Vlasenko [Thu, 27 Sep 2007 10:17:16 +0000 (10:17 -0000)]
lineedit: plug memory leak
Denis Vlasenko [Thu, 27 Sep 2007 10:12:02 +0000 (10:12 -0000)]
vlock: get rid of statics
Denis Vlasenko [Thu, 27 Sep 2007 10:09:59 +0000 (10:09 -0000)]
introduce safe_poll (fixes a problem in top)
function old new delta
safe_poll - 77 +77
svlogd_main 1470 1466 -4
zcip_main 1530 1524 -6
forkexec 1345 1338 -7
decode_format_string 795 788 -7
collect_blk 474 467 -7
buffer_pread 540 532 -8
tftp 1182 1172 -10
microcom_main 763 749 -14
arpping 441 424 -17
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/9 up/down: 77/-80) Total: -3 bytes
text data bss dec hex filename
770162 1034 10404 781600 bed20 busybox_old
770158 1034 10404 781596 bed1c busybox_unstripped
Denis Vlasenko [Thu, 27 Sep 2007 10:08:02 +0000 (10:08 -0000)]
make variables static
Denis Vlasenko [Wed, 26 Sep 2007 18:18:59 +0000 (18:18 -0000)]
check-lxdialog.sh: no point in giving up, maybe -lcurses will work?
Denis Vlasenko [Wed, 26 Sep 2007 18:01:32 +0000 (18:01 -0000)]
load_policy: update (Yuichi Nakamura <ynakam@hitachisoft.jp>)
Denis Vlasenko [Wed, 26 Sep 2007 17:55:55 +0000 (17:55 -0000)]
chcon: trivial fix
Denis Vlasenko [Wed, 26 Sep 2007 17:54:18 +0000 (17:54 -0000)]
losetup: support -f (Loic Grenie <loic.grenie@gmail.com>)
function old new delta
losetup_main 238 278 +40
packed_usage 23021 23027 +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 46/0) Total: 46 bytes
Denis Vlasenko [Wed, 26 Sep 2007 12:18:07 +0000 (12:18 -0000)]
runsvdir: fix "linear wait time" bug
Denis Vlasenko [Wed, 26 Sep 2007 10:46:18 +0000 (10:46 -0000)]
inetd: move struct fields around -> save .25 k of code
function old new delta
freeconfig 75 76 +1
register_rpc 200 196 -4
dupconfig 165 159 -6
reapchild 173 166 -7
retry 93 82 -11
goaway 112 101 -11
getconfigent 1241 1222 -19
setup 645 592 -53
inetd_main 2160 2107 -53
config 1602 1518 -84
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/9 up/down: 1/-248) Total: -247 bytes
text data bss dec hex filename
773951 1038 10332 785321 bfba9 busybox_old
773703 1038 10332 785073 bfab1 busybox_unstripped
Denis Vlasenko [Wed, 26 Sep 2007 10:34:54 +0000 (10:34 -0000)]
install: fix bug in "install -c file dir" (tries to copy dir into dir too)
install: 'support' (ignore) -v and -b
Denis Vlasenko [Tue, 25 Sep 2007 18:35:28 +0000 (18:35 -0000)]
documentation bits in comments, no code changes
Denis Vlasenko [Tue, 25 Sep 2007 18:06:36 +0000 (18:06 -0000)]
cp: -r and -R imply -d (coreutils compat)
Denis Vlasenko [Tue, 25 Sep 2007 11:58:33 +0000 (11:58 -0000)]
httpd: small auth and IPv6 fixes (Kim B. Heino <Kim.Heino@bluegiga.com>)
Denis Vlasenko [Tue, 25 Sep 2007 11:55:57 +0000 (11:55 -0000)]
ed: large cleanup
function old new delta
bad_nums - 43 +43
skip_blank - 24 +24
getNum 557 578 +21
insertLine 159 163 +4
setCurNum 31 33 +2
lastNum 4 - -4
fileName 4 - -4
dirty 4 - -4
curNum 4 - -4
curLine 4 - -4
bufUsed 4 - -4
bufSize 4 - -4
bufPtr 4 - -4
bufBase 4 - -4
printLines 357 345 -12
findLine 165 152 -13
lines 16 - -16
deleteLines 203 144 -59
readLines 538 473 -65
addLines 163 87 -76
marks 104 - -104
termEdit 140 - -140
ed_main 3125 2654 -471
------------------------------------------------------------------------------
(add/remove: 2/12 grow/shrink: 3/6 up/down: 94/-992) Total: -898 bytes
text data bss dec hex filename
771142 1034 10564 782740 bf194 busybox_old
770265 1034 10404 781703 bed87 busybox_unstripped
# size */ed.o
text data bss dec hex filename
6370 0 156 6526 197e editors.org/ed.o
5505 0 0 5505 1581 editors/ed.o
Denis Vlasenko [Mon, 24 Sep 2007 20:14:32 +0000 (20:14 -0000)]
insmod: fix help text to not show options if only 2.6 was selected
Denis Vlasenko [Mon, 24 Sep 2007 19:54:36 +0000 (19:54 -0000)]
insmod: shorten message text; style fixes
Denis Vlasenko [Mon, 24 Sep 2007 19:32:53 +0000 (19:32 -0000)]
tar: add a comment about previous subtle fix
Denis Vlasenko [Mon, 24 Sep 2007 19:07:57 +0000 (19:07 -0000)]
tar: strip leading '/' BEFORE memorizing hardlink's name
function old new delta
writeFileToTarball 1362 1352 -10
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-10) Total: -10 bytes
Denis Vlasenko [Mon, 24 Sep 2007 18:30:02 +0000 (18:30 -0000)]
ash: fix prompt expansion (Natanael Copa <natanael.copa@gmail.com>)
Denis Vlasenko [Mon, 24 Sep 2007 18:27:04 +0000 (18:27 -0000)]
*: kill bb_get_last_path_component, replace with two functions
(one which strips trailing slash and one which does not)
wget: straighten out as a result of above change
text data bss dec hex filename
5056 1 0 5057 13c1 busybox.t4/networking/wget.o
5022 0 0 5022 139e busybox.t5/networking/wget.o
Denis Vlasenko [Mon, 24 Sep 2007 18:25:08 +0000 (18:25 -0000)]
wget: get rid of setitimer
text data bss dec hex filename
5110 1 0 5111 13f7 busybox.t3/networking/wget.o
5056 1 0 5057 13c1 busybox.t4/networking/wget.o
Denis Vlasenko [Mon, 24 Sep 2007 18:24:17 +0000 (18:24 -0000)]
wget: reorder functions, no code changes
Denis Vlasenko [Mon, 24 Sep 2007 15:04:00 +0000 (15:04 -0000)]
wget: code shrink, move data out of bss
Denis Vlasenko [Mon, 24 Sep 2007 13:51:54 +0000 (13:51 -0000)]
wget: allow dots in header field names.
wget: code shrink
function old new delta
gethdr 211 190 -21
wget_main 2609 2557 -52
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-73) Total: -73 bytes
Denis Vlasenko [Mon, 24 Sep 2007 10:41:30 +0000 (10:41 -0000)]
inetd: make some fields smaller, move data out of data/bss sections
function old new delta
inetd_main 2125 2160 +35
setup 640 645 +5
initring 48 53 +5
reapchild 169 173 +4
retry 92 93 +1
goaway 113 112 -1
inetd_setproctitle 175 173 -2
chargen_dg 229 227 -2
uid 4 - -4
.......................
Argv 4 - -4
rlim_ofile_cur 8 - -8
config 1610 1602 -8
rlim_ofile 16 - -16
getconfigent 1271 1241 -30
builtins 176 132 -44
ring 128 - -128
allsock 128 - -128
------------------------------------------------------------------------------
(add/remove: 0/18 grow/shrink: 5/6 up/down: 50/-423) Total: -373 bytes
text data bss dec hex filename
774144 1051 10708 785903 bfdef busybox_old
774108 1039 10380 785527 bfc77 busybox_unstripped
$ size inetd.o inetd_orig.o
text data bss dec hex filename
9027 0 0 9027 2343 inetd.o
9064 12 324 9400 24b8 inetd_orig.o
Denis Vlasenko [Sun, 23 Sep 2007 18:34:49 +0000 (18:34 -0000)]
run_parts: make it sort executables by name (required by API)
Denis Vlasenko [Sun, 23 Sep 2007 14:05:54 +0000 (14:05 -0000)]
make fdisk compile on libc without llseek64
Denis Vlasenko [Sun, 23 Sep 2007 13:56:57 +0000 (13:56 -0000)]
httpd: simplify CGI i/o loop. -200 bytes.
Denis Vlasenko [Sat, 22 Sep 2007 21:37:27 +0000 (21:37 -0000)]
include libbb.h, not busybox.h
Bernhard Reutner-Fischer [Sat, 22 Sep 2007 21:18:46 +0000 (21:18 -0000)]
- actually mv microcom.c to miscutils
Bernhard Reutner-Fischer [Sat, 22 Sep 2007 21:13:17 +0000 (21:13 -0000)]
- add microcom to defconfig
Denis Vlasenko [Sat, 22 Sep 2007 20:51:41 +0000 (20:51 -0000)]
move microcom to miscutils
Bernhard Reutner-Fischer [Sat, 22 Sep 2007 20:35:32 +0000 (20:35 -0000)]
- remove some trailing whitespace
Denis Vlasenko [Sat, 22 Sep 2007 20:23:57 +0000 (20:23 -0000)]
microcom: add copyright/license info
Denis Vlasenko [Fri, 21 Sep 2007 22:48:02 +0000 (22:48 -0000)]
ash: remove erroneously applied patch
Denis Vlasenko [Fri, 21 Sep 2007 22:35:18 +0000 (22:35 -0000)]
httpd: optional support for partial downloads
Denis Vlasenko [Fri, 21 Sep 2007 18:06:20 +0000 (18:06 -0000)]
ash: s/int/smallint/. -60 bytes.
Denis Vlasenko [Fri, 21 Sep 2007 17:58:43 +0000 (17:58 -0000)]
test: correct confusing placement of "const"
Denis Vlasenko [Fri, 21 Sep 2007 17:42:40 +0000 (17:42 -0000)]
microcom: add new applet, this time for real
Denis Vlasenko [Fri, 21 Sep 2007 13:43:28 +0000 (13:43 -0000)]
microcom: new applet by Vladimir Dronnikov <dronnikov@gmail.ru>
Denis Vlasenko [Fri, 21 Sep 2007 13:16:32 +0000 (13:16 -0000)]
update Glenn McGrath's email address
Denis Vlasenko [Thu, 20 Sep 2007 19:44:10 +0000 (19:44 -0000)]
remove stray 8-bit chars from copyright banner
Denis Vlasenko [Sun, 16 Sep 2007 19:41:40 +0000 (19:41 -0000)]
announce 1.7.1 on website
Denis Vlasenko [Sat, 15 Sep 2007 13:28:30 +0000 (13:28 -0000)]
httpd: do not clear environment
mount: mount helpers support (by Vladimir Dronnikov <dronnikov@gmail.ru>)
Denis Vlasenko [Thu, 13 Sep 2007 20:20:44 +0000 (20:20 -0000)]
webpage: add a link to vda's "init must die" page
Denis Vlasenko [Tue, 11 Sep 2007 16:28:14 +0000 (16:28 -0000)]
cp: make it a bit closer to POSIX, but still refuse to open and
write to dest which is a symlink.
Denis Vlasenko [Tue, 11 Sep 2007 10:39:13 +0000 (10:39 -0000)]
cp: make "cp file /dev/node" special case; explained in comments
function old new delta
copy_file 1487 1538 +51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 51/0) Total: 51 bytes
text data bss dec hex filename
772502 1051 10724 784277 bf795 busybox_old
772554 1051 10724 784329 bf7c9 busybox_unstripped
Denis Vlasenko [Mon, 10 Sep 2007 17:17:01 +0000 (17:17 -0000)]
run_shell: code shrink for selinux
Denis Vlasenko [Mon, 10 Sep 2007 13:15:28 +0000 (13:15 -0000)]
setup_environment: code shrink
run_shell: mark as NORETURN
setup_environment, run_shell: add usage comments
login: add FIXME :(
function old new delta
UNSPEC_print 64 66 +2
sulogin_main 509 506 -3
mkfs_minix_main 3070 3067 -3
login_main 1615 1612 -3
su_main 461 448 -13
setup_environment 261 206 -55
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/5 up/down: 2/-77) Total: -75 bytes
text data bss dec hex filename
772578 1051 10724 784353 bf7e1 busybox_old
772502 1051 10724 784277 bf795 busybox_unstripped
Denis Vlasenko [Mon, 10 Sep 2007 12:23:27 +0000 (12:23 -0000)]
grep: delete obsolete comment
Denis Vlasenko [Mon, 10 Sep 2007 12:18:32 +0000 (12:18 -0000)]
grep: fix grep -F -e str1 -e str2 (was matching str2 only)
by replacing "=" by "|=" here:
found |= strstr(line, gl->pattern) != NULL;
grep: optimization: stop on first -e match
grep: stop using bss. -40 bytes
Denis Vlasenko [Sun, 9 Sep 2007 14:11:11 +0000 (14:11 -0000)]
style fix, no code changes
Denis Vlasenko [Sun, 9 Sep 2007 11:20:55 +0000 (11:20 -0000)]
open_transformer: fix vda's goofup
Denis Vlasenko [Sat, 8 Sep 2007 17:42:00 +0000 (17:42 -0000)]
top: small fix for command line wrapping
Denis Vlasenko [Sat, 8 Sep 2007 17:34:05 +0000 (17:34 -0000)]
top: get rid of on-stack variable buffers, use permanent one.
code shrank with and without TOPMEM:
top_main 828 844 +16
display_process_list 1525 1473 -52
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 16/-52) Total: -36 bytes
top_main 1150 1171 +21
display_topmem_process_list 1150 1167 +17
display_process_list 1525 1473 -52
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 38/-52) Total: -14 bytes
Denis Vlasenko [Sat, 8 Sep 2007 17:21:01 +0000 (17:21 -0000)]
top: add sizeof(G) check; fix style
Denis Vlasenko [Sat, 8 Sep 2007 16:51:19 +0000 (16:51 -0000)]
top: TOPMEM feature - 's(how sizes)' command. +2.5k when enabled,
+80 bytes when disabled (mainly because of text wrapping fixes
in display_process_list).
Paul Fox [Fri, 7 Sep 2007 20:28:25 +0000 (20:28 -0000)]
overload the existing '-q' flag so that if '-l' and '-q' are used
together, a "short form" listing (just pathnames) is generated.
change a few flag variables to "smallint" as well.
Denis Vlasenko [Fri, 7 Sep 2007 19:33:56 +0000 (19:33 -0000)]
messages: by popular request allow PATH to be customized at build time
mount: smallish code shrink
Denis Vlasenko [Fri, 7 Sep 2007 13:53:32 +0000 (13:53 -0000)]
syslogd: do not need to poll(), we can just block in read().
function old new delta
syslogd_main 1206 1106 -100
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-100) Total: -100 bytes
text data bss dec hex filename
769820 1051 10764 781635 bed43 busybox_old
769702 1051 10764 781517 beccd busybox_unstripped
Denis Vlasenko [Fri, 7 Sep 2007 13:43:28 +0000 (13:43 -0000)]
*: replace select-for-one descriptor with poll, it's smaller.
$ ./.cmk bloatcheck
function old new delta
readit 406 364 -42
syslogd_main 1249 1206 -43
traceroute_main 4115 4060 -55
mysleep 112 45 -67
arpping 579 441 -138
tftp 1575 1182 -393
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/6 up/down: 0/-738) Total: -738 bytes
text data bss dec hex filename
770580 1051 10764 782395 bf03b busybox_old
769820 1051 10764 781635 bed43 busybox_unstripped
Paul Fox [Thu, 6 Sep 2007 17:52:22 +0000 (17:52 -0000)]
fix infinite retry bug. also, reduce per-packet receive timeout
to something more reasonable than 5 seconds, and add simple
exponential backoff to compensate. improves performance on
marginal networks.