Denis Vlasenko
4774179cb9
mail.c: more robust handling of SIGCHLD
...
init: more robust signal handling
2009-03-10 16:01:57 +00:00
Denis Vlasenko
93b38208d1
init: fix compile breakage with '# CONFIG_FEATURE_KILL_REMOVED is not set'
...
runsvdir.c: fix typo in comment
2009-02-14 20:58:13 +00:00
Denis Vlasenko
9ec0ecbfdd
init: remove wait() loop on restart, it may be dangerous
2009-01-31 19:26:12 +00:00
Denis Vlasenko
4ae8a05b13
init: fix a bug where on reload order of entries might be wrong
...
function old new delta
run_shutdown_and_kill_processes - 97 +97
pause_and_low_level_reboot - 48 +48
run_actions 81 107 +26
restart_handler 56 81 +25
new_init_action 137 150 +13
run 576 579 +3
open_stdio_to_tty 110 98 -12
check_delayed_sigs 195 170 -25
waitfor 354 318 -36
low_level_reboot 53 - -53
kill_all_processes 115 - -115
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 4/3 up/down: 212/-241) Total: -29 bytes
2009-01-31 18:55:54 +00:00
Denis Vlasenko
e35af56790
modutils-24: use xasprintf and xzalloc where appropriate,
...
remove unreachanble code
build system: correct some dependencies in config system
init: convert one #if into if() - for Rob.
function old new delta
obj_string_patch 136 129 -7
bb_init_module_24 4759 4615 -144
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-151) Total: -151 bytes
2009-01-31 14:22:24 +00:00
Denis Vlasenko
fc2a4fc2ba
init: small correction in a comment
2009-01-31 01:07:05 +00:00
Denis Vlasenko
72c99af0b4
init: major improvement in documentation and signal handling.
...
Lots of nasty, but hard to trip, races are fixed.
text data bss dec hex filename
1038828 924 10932 1050684 10083c busybox_old
1038787 924 10932 1050643 100813 busybox_unstripped
2009-01-31 01:03:45 +00:00
Denis Vlasenko
cab28aa7de
init: preparatory patch, no code changes
2009-01-31 01:02:07 +00:00
Denis Vlasenko
6c62246a35
init: reinstate proper handling of !ENABLE_FEATURE_USE_INITTAB
2009-01-29 02:01:04 +00:00
Denis Vlasenko
b2b2c404b5
init: reduce ifdef forest (specially for Rob's happiness)
2009-01-28 23:56:31 +00:00
Denis Vlasenko
1bcdcd2ef0
init: do not eat last char in messages;
...
do not print duplicate "init:" prefix to syslog
2008-12-09 21:23:31 +00:00
Denis Vlasenko
a34b8a4d30
init: O_NONBLOCK needs more thought. reverted for now
2008-11-29 23:14:37 +00:00
Denis Vlasenko
3fa36e2350
*: a bit of code shrink
...
function old new delta
stop_handler 41 38 -3
sulogin_main 508 504 -4
got_cont 4 - -4
cont_handler 11 - -11
startservice 309 297 -12
processorstart 423 409 -14
tcpudpsvd_main 1861 1843 -18
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 0/5 up/down: 0/-66) Total: -66 bytes
2008-11-09 00:15:11 +00:00
Denis Vlasenko
202ac504e1
*: code shrink by adding a wrapper around very common tcsetattr(0, TCSANOW, xx) op
...
function old new delta
tcsetattr_stdin_TCSANOW - 14 +14
set_sane_term 116 113 -3
top_main 1277 1273 -4
make_new_session 421 415 -6
rawmode 133 126 -7
reset_term 18 10 -8
die 43 35 -8
cookmode 62 54 -8
vlock_main 425 415 -10
read_line_input 3165 3155 -10
bb_askpass 357 347 -10
fsck_minix_main 3079 3065 -14
getty_main 2375 2332 -43
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/12 up/down: 14/-131) Total: -117 bytes
2008-11-05 13:20:58 +00:00
Denis Vlasenko
5cb54b5adc
init: downgrade ENABLE_DEBUG_INIT to just a #define to prevent people
...
from selecting it in error. It has to be used ONLY for debugging
init, never in production, as resulting init has serious differences.
2008-10-21 17:14:26 +00:00
Denis Vlasenko
b8d1a4cd5f
init: set stderr to NONBLOCK
...
*: s/setenv(a,b,1)/xsetenv(a,b)/
function old new delta
init_main 856 895 +39
message 146 144 -2
crond_main 1418 1416 -2
run 661 658 -3
zcip_main 1409 1403 -6
edit_file 910 901 -9
environment 20 - -20
2008-09-20 16:28:59 +00:00
Denis Vlasenko
084266ed52
fix several problems with config parser:
...
a bug where it underflows the string
a bug where it never frees parser_t struct
make read_config() return 0 if parser is NULL,
make config_close() accept and ignore NULL parser -
eliminates many if() blocks
reverse the sense of parser bit flags - negative flags
are harder to grok.
hexdump: revert the change to use config parser, it is BIGGER
and also requires additional quirks in parser
*: explicitly use PARSER_NORMAL instead of 0
function old new delta
login_main 1575 1596 +21
config_close 18 29 +11
bbunpack 383 391 +8
qgravechar 106 109 +3
rtnl_tab_initialize 121 117 -4
expand 1697 1693 -4
man_main 717 712 -5
nameif_main 674 668 -6
hexdump_main 597 591 -6
read_config 217 209 -8
dnsd_main 1478 1470 -8
sysctl_main 203 189 -14
config_open2 44 25 -19
make_device 1177 1141 -36
config_read 597 549 -48
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 4/11 up/down: 43/-158) Total: -115 bytes
2008-07-26 23:08:31 +00:00
Denis Vlasenko
5415c856ea
libbb: [x]fopen_for_{read,write} introduced and used.
...
(by Valdimir)
function old new delta
config_open2 - 41 +41
config_read 507 542 +35
find_pair 169 187 +18
fopen_for_write - 14 +14
fopen_for_read - 14 +14
find_main 406 418 +12
xfopen_for_write - 10 +10
xfopen_for_read - 10 +10
popstring 134 140 +6
parse_inittab 396 401 +5
next_token 923 928 +5
pack_gzip 1659 1661 +2
bb__parsespent 117 119 +2
fallbackSort 1719 1717 -2
evalvar 1376 1374 -2
qrealloc 36 33 -3
...
...
...
...
singlemount 4579 4569 -10
process_stdin 443 433 -10
patch_main 1111 1101 -10
ifupdown_main 2175 2165 -10
file_action_grep 90 80 -10
uuidcache_init 649 637 -12
hush_main 797 785 -12
read_config 230 217 -13
dpkg_main 3835 3820 -15
read_line_input 3134 3110 -24
sysctl_main 232 203 -29
config_open 40 10 -30
WARN_BAD_LINE 44 - -44
login_main 1714 1575 -139
------------------------------------------------------------------------------
(add/remove: 5/1 grow/shrink: 8/74 up/down: 174/-737) Total: -563 bytes
2008-07-21 23:05:26 +00:00
Denis Vlasenko
b74a2dba57
whitespace fixes, no code changed
2008-07-21 21:34:51 +00:00
Bernhard Reutner-Fischer
a53de7f7c2
- fix spelling
2008-07-21 13:46:54 +00:00
Bernhard Reutner-Fischer
5259361957
- remove superfluous forward declaration
2008-07-21 11:53:04 +00:00
Bernhard Reutner-Fischer
ad2fa65fc0
- no obj-code changes. Fix indentation, use existing defines.
2008-07-21 11:16:39 +00:00
Denis Vlasenko
2e157ddf9e
libbb: updated config_parse() from Vladimir
...
function old new delta
config_read 385 460 +75
runsvdir_main 1701 1716 +15
readit 331 338 +7
passwd_main 1049 1053 +4
parse_command 1504 1507 +3
decode_format_string 822 824 +2
bb__parsespent 117 119 +2
udhcp_get_option 221 222 +1
changepath 196 194 -2
parse_inittab 400 396 -4
nameif_main 683 679 -4
make_device 1176 1172 -4
config_open 48 40 -8
expand_main 698 689 -9
readcmd 1012 1002 -10
config_free_data 37 21 -16
SynchronizeFile 683 643 -40
sleep_main 474 362 -112
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 8/10 up/down: 109/-209) Total: -100 bytes
2008-07-19 09:27:19 +00:00
Denis Vlasenko
a474b68991
init: fix compile-time error; fix exiting on broken config file
...
parse_config: cosmetics
2008-07-17 17:58:44 +00:00
Bernhard Reutner-Fischer
54d50a0b47
- fix "noreduce" flag of config_read (didn't work at all, at least for me).
...
- convert init's inittab parsing to the new config parser:
function old new delta
config_read 393 386 -7
static.actions 72 64 -8
.rodata 121772 121764 -8
parse_inittab 554 393 -161
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-184) Total: -184 bytes
2008-07-17 14:00:42 +00:00
Denis Vlasenko
d48e81f0cd
mdev: do not follow symlinks in /sys (as was intended prior to rev 18811).
...
If this breaks things, please document why!
mdev,init: use shared code for fd sanitization
function old new delta
bb_daemonize_or_rexec 155 172 +17
mdev_main 500 505 +5
init_main 907 856 -51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 22/-51) Total: -29 bytes
2008-07-06 07:00:11 +00:00
Denis Vlasenko
a60f84ebf0
*: rename ATTRIBUTE_XXX to just XXX.
2008-07-05 09:18:54 +00:00
Bernhard Reutner-Fischer
5e25ddb7d3
- use STD*_FILENO some more. No object-code changes
2008-05-19 09:48:17 +00:00
Bernhard Reutner-Fischer
636a1f85e8
- use EXIT_{SUCCESS,FAILURE}. No object-code changes
2008-05-19 09:29:47 +00:00
Denis Vlasenko
ad4da989e3
init: fix askfirst not working as intended
2008-04-05 04:24:23 +00:00
Denis Vlasenko
c693840fe8
*: whitespace fixes, no code changes
2008-03-24 02:18:03 +00:00
Denis Vlasenko
e421b5ebf6
init: do not close all descriptors > 2. We were doing it - sometimes.
...
Good choices are "do it, always" or "don't do it". Second is smaller.
2008-03-17 22:01:42 +00:00
Denis Vlasenko
fb274df079
init: do not use bb_sanitize_stdio(), "/dev/null" may be missing (yet)
2008-03-17 13:26:51 +00:00
Denis Vlasenko
1d42665b6b
*: shrink: use Vladimir's "o+" specifier instead of xatou(opt_param)
...
function old new delta
getopt32 1370 1385 +15
sulogin_main 490 494 +4
realpath_main 84 86 +2
sleep_main 76 77 +1
mt_main 256 257 +1
printenv_main 75 74 -1
fdformat_main 546 545 -1
usleep_main 44 42 -2
setlogcons_main 77 75 -2
ed_main 2654 2649 -5
deallocvt_main 69 64 -5
addgroup_main 373 368 -5
mkfs_minix_main 2989 2982 -7
tail_main 1221 1213 -8
sv_main 1254 1241 -13
du_main 348 328 -20
tftp_main 325 302 -23
split_main 581 558 -23
nc_main 1000 977 -23
diff_main 891 868 -23
arping_main 1797 1770 -27
ls_main 893 847 -46
od_main 2797 2750 -47
readprofile_main 1944 1895 -49
tcpudpsvd_main 1973 1922 -51
udhcpc_main 2590 2513 -77
grep_main 824 722 -102
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/22 up/down: 23/-560) Total: -537 bytes
text data bss dec hex filename
796973 658 7428 805059 c48c3 busybox_old
796479 662 7420 804561 c46d1 busybox_unstripped
2008-03-17 09:09:09 +00:00
Denis Vlasenko
3f165fa5b3
libbb: introduce and use sigprocmask_allsigs and sigaction_set.
...
libbb: rename sig_pause to wait_for_any_sig.
2008-03-17 08:29:08 +00:00
Denis Vlasenko
671ca33aa1
init: make it NOMMU-capable
...
httpd: trivial compile fix
2008-02-19 14:13:20 +00:00
Denis Vlasenko
a58a637bed
init: fix comments
2008-02-19 12:10:18 +00:00
Denis Vlasenko
99a61842df
init: HUP should not be temporarily set to "restart",
...
we use it for config reload, and we have QUIT for "restart".
2008-02-19 12:08:38 +00:00
Denis Vlasenko
a37e7134f7
init: fix bug 1111: restart actions were not splitting words:
...
::restart:/sbin/rc restart
resulted in:
exec of '/sbin/rc restart' failed: No such file or directory
2008-02-19 02:57:07 +00:00
Denis Vlasenko
25591c322c
libbb: introduce bb_signals and bb_signals_recursive,
...
which sets same handler for many signals. sig_catch is nuked
(bb_signals_recursive is more descriptive name).
*: use them as appropriate.
function old new delta
bb_signals_recursive - 95 +95
bb_signals - 52 +52
run_command 258 273 +15
svlogd_main 1368 1377 +9
runsv_main 1746 1752 +6
runsvdir_main 1643 1646 +3
UNSPEC_print 64 66 +2
time_main 1128 1127 -1
...
resize_main 246 210 -36
sig_catch 63 - -63
set_fatal_sighandler 85 14 -71
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 5/24 up/down: 182/-548) Total: -366 bytes
2008-02-16 22:58:56 +00:00
Denis Vlasenko
c882f341ce
init: allow last line to be not terminated by '\n'
2008-01-29 09:56:21 +00:00
Bernhard Reutner-Fischer
f470196a41
- fix conflicting decls of syslog related facilitynames and prioritynames tables
2008-01-27 12:50:12 +00:00
Denis Vlasenko
21e20cb4ad
init: wait for orphaned children too while waiting
...
for sysinit-like processes (Harald Küthe <harald-tuxbox@arcor.de>)
2008-01-04 15:10:47 +00:00
Denis Vlasenko
fb0eba706c
libbb: introduce and use safe_waitpid (loops in EINTR)
...
*: use more approproate (shorter) versions of wait()
function old new delta
safe_waitpid - 48 +48
wait_any_nohang - 17 +17
send_tree 365 369 +4
processorstop 432 435 +3
text_yank 110 108 -2
make_human_readable_str 202 200 -2
crond_main 1368 1366 -2
handle_sigchld 49 43 -6
reapchild 166 159 -7
custom 260 250 -10
checkscript 191 177 -14
wait_nohang 17 - -17
wait_pid 43 - -43
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 2/7 up/down: 72/-103) Total: -31 bytes
2008-01-02 19:55:04 +00:00
Denis Vlasenko
d55268d0d4
init: don't spawn tons of waiting children, one is enough
...
init: shrink signal disabling code
init: rename some functions
text data bss dec hex filename
778657 832 7344 786833 c0191 busybox_old
778445 832 7344 786621 c00bd busybox_unstripped
2007-12-26 18:32:58 +00:00
Denis Vlasenko
5adfa44101
init: sometimes, #ifdefs are cleaner.
2007-12-25 16:08:53 +00:00
Mike Frysinger
bb50fdfe07
convert #if to if -- let gcc optimize away dead code for us
2007-12-25 04:30:14 +00:00
Denis Vlasenko
ec5631b6d6
init: add FEATURE_KILL_REMOVED (Eugene Bordenkircher <eugebo@gmail.com>)
...
init: slight size optimization
2007-12-25 01:08:58 +00:00
Denis Vlasenko
d7e2e127a9
cttyhack: add missing ';'
...
init: remove pointless access() check
2007-12-10 08:40:29 +00:00
Denis Vlasenko
2afabe8b83
init: remove superfluous forks and messing up with argv[0]
...
cttyhack: add stealing of ctty
2007-12-10 07:06:04 +00:00