Denis Vlasenko
21278dff70
busybox: do not print help to fd 2, print it to fd 1
...
otherwise this can break scripts
2008-06-25 12:15:46 +00:00
Denis Vlasenko
fe733a9744
changes in comments only
2008-06-24 16:08:22 +00:00
Denis Vlasenko
cc3f20b9bd
fix breakage found by randomconfig
2008-06-23 22:31:52 +00:00
Denis Vlasenko
1363f0df15
strrchr: actually, last one was finding "" in "any" at pos 0,
...
should find at pos LAST...
2008-06-18 20:01:12 +00:00
Denis Vlasenko
d5736c5607
strrchr: bikeshed painting time!
...
replace cubic running time implementation with quadratic
make embedded test actually readable
function old new delta
strrstr 42 44 +2
2008-06-18 19:49:46 +00:00
Bernhard Reutner-Fischer
4954d47ab0
- fixes from Tito
2008-06-18 08:32:25 +00:00
Bernhard Reutner-Fischer
619b87dfa5
- fix includes
2008-06-17 12:45:39 +00:00
Bernhard Reutner-Fischer
13436ea0dd
- improved strrstr impl from vda with testcases from Tito and vda
2008-06-17 12:11:34 +00:00
Denis Vlasenko
f45c4f41b7
whitespace and comment fixes, no code changes
2008-06-16 04:09:25 +00:00
Denis Vlasenko
b4c5bf615e
Specially for Bernhard Fischer introduce USE_BB_CRYPT
...
which selects between libc/custom crypt routines.
2008-06-15 18:35:34 +00:00
Denis Vlasenko
5cdc247ba4
further encrypt_des optimizations
...
function old new delta
pw_encrypt 943 964 +21
des_crypt 1512 1509 -3
u_sbox 512 256 -256
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 21/-259) Total: -238 bytes
2008-06-15 09:48:18 +00:00
Denis Vlasenko
04087c6bbd
cryptpw: fix "cryptpw -a des -- TEXT" case
...
libbb/pw_encrypt_des.c: optimize
function old new delta
cryptpw_main 177 157 -20
des_crypt 1682 1512 -170
pw_encrypt 1036 842 -194
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-384) Total: -384 bytes
Run tested.
2008-06-15 08:12:00 +00:00
Denis Vlasenko
d50dda8c35
*: use llist_pop for traverse-and-free list operation
...
function old new delta
append_file_list_to_list 109 111 +2
udhcpc_main 2414 2413 -1
run_parts_main 325 324 -1
od_main 2324 2323 -1
getopt_main 709 707 -2
env_main 253 251 -2
sed_main 659 656 -3
ps_main 522 519 -3
traceroute_main 3960 3954 -6
sort_main 844 838 -6
diff_main 866 858 -8
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/10 up/down: 2/-33) Total: -31 bytes
2008-06-15 05:40:56 +00:00
Denis Vlasenko
e235285c3a
crypt: code shrink
...
function old new delta
des_crypt - 1682 +1682
md5_crypt - 627 +627
pw_encrypt 3608 1036 -2572
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 0/1 up/down: 2309/-2572) Total: -263 bytes
2008-06-14 22:11:29 +00:00
Denis Vlasenko
a1767a1f5d
dos2unix: do not destroy symlinks and mode of the file being converted.
2008-06-14 04:28:41 +00:00
Denis Vlasenko
21765fa063
udhcpc: kill undocumented -W, it was a no-op.
...
fix option parsing in the case some CONFIG_x are off.
disable -b on NOMMU, make backgrounding work correctly
(if a bit differently from MMU case). Previously,
it wasn't working at all.
stop using global data for flags in main(), opt
bitfield works as well.
function old new delta
cryptpw_main 177 153 -24
packed_usage 24478 24452 -26
client_background 26 - -26
udhcpc_main 2462 2372 -90
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/3 up/down: 0/-166) Total: -166 bytes
2008-06-13 20:44:05 +00:00
Denis Vlasenko
76f812803b
trivial crypt shrinkage
...
function old new delta
__md5_to64 27 29 +2
pw_encrypt 3631 3608 -23
2008-06-13 15:13:41 +00:00
Denis Vlasenko
fdddab0c61
make pw_encrypt() return malloc'ed string.
...
text data bss dec hex filename
759802 604 6684 767090 bb472 busybox_old
759804 604 6676 767084 bb46c busybox_unstripped
2008-06-12 16:56:52 +00:00
Denis Vlasenko
4ea83bf562
uclibc insists on having 70k static buffer for crypt.
...
For bbox it's not acceptable. Roll our own des and md5 crypt
implementation. Against older uclibc:
text data bss dec hex filename
759945 604 6684 767233 bb501 busybox_old
759766 604 6684 767054 bb44e busybox_unstripped
so, we still save on code size.
2008-06-12 16:55:59 +00:00
Denis Vlasenko
09c0a749a1
define CLOCK_MONOTONIC to 1 if it is not defined
2008-06-07 23:43:43 +00:00
Denis Vlasenko
dd6f570fa3
add libbb/print_flags.c...
2008-06-07 15:11:08 +00:00
Denis Vlasenko
53354ac47d
libbb: introduce and use print_flags().
...
Mostly by Natanael Copa <natanael.copa AT gmail.com>
function old new delta
print_e2flags - 189 +189
print_flags_separated - 86 +86
static.flag_labels - 60 +60
static.dma_wmode_masks - 32 +32
static.flag_masks - 28 +28
static.arp_labels - 16 +16
static.arp_masks - 12 +12
ls_main 836 843 +7
...
popstring 140 134 -6
arp_show 740 708 -32
print_flags 189 25 -164
ipaddr_list_or_flush 2396 2170 -226
process_dev 5306 4706 -600
------------------------------------------------------------------------------
(add/remove: 10/0 grow/shrink: 5/10 up/down: 458/-1043) Total: -585 bytes
text data bss dec hex filename
810564 624 7060 818248 c7c48 busybox_old
810002 624 7060 817686 c7a16 busybox_unstripped
2008-06-07 15:10:29 +00:00
Denis Vlasenko
f592aa36f3
which: -a support (needed for bfin uclibc build script)
...
real support (with CONFIG_DESKTOP=y): 120+ bytes:
text data bss dec hex filename
807958 624 7036 815618 c7202 busybox_old
808085 624 7036 815745 c7281 busybox_unstripped
"fake" support (with CONFIG_DESKTOP unset): ~45 bytes:
text data bss dec hex filename
797790 611 6996 805397 c4a15 busybox_old
797834 611 6996 805441 c4a41 busybox_unstripped
2008-06-05 13:33:59 +00:00
Denis Vlasenko
d12fcc20da
libiproute: fix option parsing, so that "ip -o link" works again.
...
closes bug 3524
2008-05-31 07:34:14 +00:00
Bernhard Reutner-Fischer
17282292c2
- add strrchr
2008-05-28 14:19:27 +00:00
Denis Vlasenko
b267ed95bc
lineedit: correctly handle prompt longer than screen width. closes bug 3414
2008-05-25 21:52:03 +00:00
Denis Vlasenko
e9b76e1f1e
dnsd: fixes various segfaults.
...
One was a lib api change that was not updated and another
is a stack buffer overflow.
It also adds support for '*' in dnsd.conf. It resolves all hostnames to
a specific ip address. This is useful if you for example want redirect
all http traffic to your first-boot-web-wizard on you router/firewall.
By Timo Teras
2008-05-22 17:41:01 +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
Bernhard Reutner-Fischer
ae4342ca3e
- Rename getpty() to xgetpty() and adjust callers.
...
- Rewrite kbd_mode and setconsole
- Introduce and use console_make_active() and xopen_xwrite_close()
- honour buffer-reservation method as set by the user (dumpkmap, loadkmap)
- shrink rtcwake and some console-tools
Saves about 270 Bytes
2008-05-19 08:18:50 +00:00
Denis Vlasenko
5599502a55
more -Wall warning fixes. -Wall is enabled now.
2008-05-18 22:28:26 +00:00
Bernhard Reutner-Fischer
f3b778a4dc
- fix bug where we incorrectly rejected ifconfig eth0 hw ether $whatever
...
- add support for printing ipoib to ifconfig
2008-05-16 16:10:31 +00:00
Denis Vlasenko
6b06cb80be
more of -Wall fixes from Cristian Ionescu-Idbohrn.
...
Some are fixing real bugs.
function old new delta
syslogd_main 938 958 +20
get_signum 136 143 +7
obj_load 777 782 +5
recv_from_to 210 214 +4
get_next_block 1795 1799 +4
display_topmem_process_list 1117 1121 +4
logread_main 484 487 +3
buffer_fill_and_print 73 76 +3
kill_main 687 689 +2
ll_remember_index 240 241 +1
do_stats 452 453 +1
if_readconf 166 165 -1
display_process_list 1192 1191 -1
run_applet_and_exit 507 505 -2
print_signames 33 31 -2
parse_one_line 1092 1090 -2
find_out_spec 57 55 -2
add_ksymoops_symbols 421 419 -2
ash_main 1407 1402 -5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 11/8 up/down: 54/-17) Total: 37 bytes
2008-05-15 21:30:45 +00:00
Denis Vlasenko
77ad97f199
more -Wall warning fixes from Cristian Ionescu-Idbohrn.
...
This time it resulted in small code changes:
function old new delta
nexpr 820 828 +8
tail_main 1200 1202 +2
wrapf 166 167 +1
parse_mount_options 227 209 -18
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 11/-18) Total: -7 bytes
2008-05-13 02:27:31 +00:00
Denis Vlasenko
6bf05cf1ff
httpd: fix several bugs triggering by realtive path in -h DIR.
...
function old new delta
handle_incoming_and_exit 2657 2659 +2
send_cgi_and_exit 869 862 -7
parse_conf 1647 1626 -21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 2/-28) Total: -26 bytes
2008-05-07 12:18:48 +00:00
Denis Vlasenko
10f6fb1d46
fix build failure for libbusybox
2008-04-29 00:10:27 +00:00
Denis Vlasenko
16afa38a7b
libbb: fix wrong sscanf count check (affects pidof etc)
2008-04-25 23:20:25 +00:00
Denis Vlasenko
2c84495184
lineedit: hack for making it sort-of-work even if term width is wrong
...
function old new delta
read_line_input 3158 3153 -5
input_end 29 24 -5
input_delete 115 110 -5
input_forward 27 20 -7
cmdedit_set_out_char 88 80 -8
2008-04-25 18:44:35 +00:00
Bernhard Reutner-Fischer
15ce7f5b58
- bump copyright year
2008-04-24 10:35:50 +00:00
Denis Vlasenko
b520271f65
lineedit: filename completion on symlinks-to-dirs should add / too
2008-04-24 04:42:52 +00:00
Denis Vlasenko
765c1c3c31
getopt32: fix "tar x" case; fix memory leak
2008-04-23 07:22:31 +00:00
Denis Vlasenko
be002adb2f
add forgotten files. I am forgetting it all the time :(
2008-04-22 18:07:41 +00:00
Denis Vlasenko
5d89fbaa2e
*: remove remaining instances of ".data" hack
2008-04-22 00:08:27 +00:00
Denis Vlasenko
9137341851
getopt32: fix recently broken opt_complementary "--"
2008-04-21 22:04:21 +00:00
Denis Vlasenko
5bb2fc2dc1
tentative fix for ppc64 problems with ioctl.
...
Zero code size impact.
2008-04-21 03:23:59 +00:00
Denis Vlasenko
0a1446275d
xmalloc_open_read_close: use fstat to get file size (instead of lseek).
...
by Joakim Tjernlund <Joakim.Tjernlund AT transmode.se>
function old new delta
xmalloc_open_read_close 190 181 -9
2008-04-20 14:45:43 +00:00
Denis Vlasenko
25cfe4996e
libbb: prevent xmalloc_open_read_close from dying on seek failure
...
start_stop_daemon: use open_read_close instead of xmalloc_open_read_close
start_stop_daemon: use local structure instead of global one
function old new delta
check 1620 1661 +41
xmalloc_open_read_close 171 190 +19
start_stop_daemon_main 976 954 -22
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 60/-22) Total: 38 bytes
2008-04-20 01:27:59 +00:00
Denis Vlasenko
f3745ea489
libbb: introduce xmalloc_xopen_read_close and use where appropriate
...
instead of xmalloc_open_read_close.
function old new delta
xmalloc_xopen_read_close - 34 +34
xmalloc_open_read_close 163 171 +8
passwd_main 1070 1074 +4
rexecve 254 257 +3
handle_incoming_and_exit 2657 2659 +2
parse_command 1509 1510 +1
buffer_fill_and_print 76 73 -3
evaltreenr 599 589 -10
evaltree 599 589 -10
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/3 up/down: 52/-23) Total: 29 bytes
2008-04-19 19:32:08 +00:00
Denis Vlasenko
6c10657c4a
style fixes. no code changes
2008-04-19 19:05:12 +00:00
Denis Vlasenko
867bd37c7f
fix english in comment
2008-04-13 02:27:39 +00:00
Denis Vlasenko
7465dbcf2a
ash: speed up NOFORK code in ash by eliminating second find_applet().
...
some code reduction along the way.
function old new delta
run_list 1971 1981 +10
run_nofork_applet_prime 181 182 +1
unsetcmd 97 96 -1
delete_cmd_entry 54 53 -1
describe_command 399 397 -2
cmdlookup 152 150 -2
evaltreenr 602 599 -3
evaltree 602 599 -3
clearcmdentry 101 98 -3
cdcmd 675 672 -3
hashcmd 305 301 -4
find_command 933 910 -23
evalcommand 1371 1229 -142
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/11 up/down: 11/-187) Total: -176 bytes
2008-04-13 02:25:53 +00:00
Denis Vlasenko
93b8263652
fix build with gcc -combine
2008-04-11 11:27:29 +00:00
Denis Vlasenko
858ebf130a
actually adding xfuncs_printf.c :(
2008-04-09 00:33:53 +00:00
Denis Vlasenko
b12b1c87b5
Splitting xfuncs.c into two parts. No code chabges.
2008-04-09 00:33:23 +00:00
Denis Vlasenko
79cedcb2c0
Avoid linking in printf/bsearch if possible. -20k for static bbox with
...
"basename", "true" and "false" only.
function old new delta
full_write2_str - 25 +25
bb_show_usage 183 202 +19
main 883 898 +15
run_applet_and_exit 501 507 +6
2008-04-08 21:13:28 +00:00
Denis Vlasenko
278a1c2264
brctl: optional support for "show" cmd (by L. Gabriel Somlo <somlo AT cmu.edu>)
...
function old new delta
brctl_main 739 1186 +447
if_indextoname - 104 +104
static.keywords 827 841 +14
static.ops - 7 +7
packed_usage 23978 23976 -2
2008-04-06 07:17:02 +00:00
Denis Vlasenko
0edbdd8ac8
xfunc_die: resurrect (actually, it's "svn add" being forgotten again)
2008-04-01 17:43:03 +00:00
Denis Vlasenko
468aea2d88
shells: do not frocibly enable test, echo and kill _applets_,
...
just build relevant source and use xxx_main functions.
build system: add a special case when we have exactly one applet enabled
(makes "true", "false", "basename" REALLY tiny).
getopt32: do not use stdio.
function old new delta
getopt32 1385 1412 +27
make_device 1187 1200 +13
basename_main 120 127 +7
tcpudpsvd_main 1922 1926 +4
testcmd 5 - -5
echocmd 5 - -5
fuser_main 1243 1231 -12
------------------------------------------------------------------------------
(add/remove: 0/2 grow/shrink: 4/1 up/down: 51/-22) Total: 29 bytes
2008-04-01 14:47:57 +00:00
Denis Vlasenko
b9ad75fa60
copy_file: handle "cp /dev/foo file" (almost) compatibly to coreutils.
...
(almost because we do not copy mode, which is probably wasn't intended).
+61 bytes.
2008-03-28 17:49:31 +00:00
Denis Vlasenko
2570b2e575
whitespace fixes
2008-03-28 01:00:09 +00:00
Denis Vlasenko
cf26ab70c1
mdev: plug a few memory and fd leaks; simplify code a bit
2008-03-27 22:45:44 +00:00
Denis Vlasenko
8ee649a02e
*: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/
2008-03-26 20:04:27 +00:00
Denis Vlasenko
08ec67bc62
patch: add support for -R. ~ +110 byte. By Pascal Bellard <pascal.bellard AT ads-lu.com>
...
fbsplash: new applet by Michele Sanges <michele.sanges AT otomelara.it
function old new delta
fbsplash_main - 1525 +1525
fb_drawfullrectangle - 118 +118
static.param_value - 100 +100
packed_usage 23776 23872 +96
applet_names 1843 1852 +9
applet_main 1120 1124 +4
read_line_input 3156 3158 +2
applet_nameofs 560 562 +2
applet_install_loc 140 141 +1
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 6/0 up/down: 1857/0) Total: 1857 bytes
text data bss dec hex filename
799233 641 7380 807254 c5156 busybox_old
801202 641 7380 809223 c5907 busybox_unstripped
2008-03-26 13:32:30 +00:00
Denis Vlasenko
c693840fe8
*: whitespace fixes, no code changes
2008-03-24 02:18:03 +00:00
Denis Vlasenko
0b6c6a9c9f
lpd: fix OOM vulnerability (was eating arbitrarily large commands)
2008-03-24 00:04:42 +00:00
Denis Vlasenko
9230582315
inetd: use change_identity().
...
libbb: shrink our internal initgroups().
httpd: remove stray 'else' and 'index_page = "index.html"'
function old new delta
httpd_main 750 743 -7
inetd_main 2033 2011 -22
bb_internal_initgroups 251 228 -23
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-52) Total: -52 bytes
2008-03-20 15:12:58 +00:00
Denis Vlasenko
104d544fd7
die_if_bad_username: shrink: 88 -> 77 bytes
2008-03-19 23:25:00 +00:00
Denis Vlasenko
dd5702d696
...and actually adding new file now...
2008-03-19 23:15:55 +00:00
Denis Vlasenko
a7d6c8bab9
adduser/addgroup: check username for invalid chars
...
(by Tito <farmatito AT tiscali.it>). +129 bytes when enabled.
2008-03-19 23:15:26 +00:00
Denis Vlasenko
d1277c6052
remove extra spaces in help text; delete duplicate #define
2008-03-17 09:37:24 +00:00
Denis Vlasenko
4ee7cd4f6f
*: mode tcp/udpsvd to networking, delete ipsvd/*
...
*/Config.in: fixes to text
svlogd: make it NOMMU capable
function old new delta
processorstart 378 420 +42
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 42/0) Total: 42 bytes
text data bss dec hex filename
797153 662 7420 805235 c4973 busybox_old
797196 662 7420 805278 c499e busybox_unstripped
2008-03-17 09:13:22 +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
62a90cdd74
*: shrink by using [f]open_or_warn_stdin where appropriate
...
function old new delta
lsattr_main 62 143 +81
open_or_warn_stdin - 36 +36
fclose_if_not_stdin 20 47 +27
xfopen_stdin - 20 +20
tac_main 336 356 +20
cksum_main 249 259 +10
bb_argv_dash - 8 +8
su_main 448 455 +7
cmp_main 630 633 +3
passwd_main 1072 1074 +2
uudecode_main 317 315 -2
text_yank 110 108 -2
handle_incoming_and_exit 2653 2651 -2
flags 5 1 -4
write_leases 235 230 -5
fopen_or_warn_stdin 48 42 -6
fold_main 648 642 -6
static.argv_dash 8 - -8
sum_main 142 128 -14
tail_main 1237 1221 -16
sed_main 711 695 -16
cmp_xfopen_input 17 - -17
bb_cat 113 96 -17
catv_main 328 306 -22
strings_main 457 434 -23
hash_file 298 274 -24
sum_file 353 325 -28
sort_main 904 859 -45
expand_main 736 686 -50
cut_main 1116 1065 -51
md5_sha1_sum_main 549 493 -56
lsattr_args 90 - -90
read_stduu 408 255 -153
------------------------------------------------------------------------------
(add/remove: 3/3 grow/shrink: 7/20 up/down: 214/-657) Total: -443 bytes
text data bss dec hex filename
797417 658 7428 805503 c4a7f busybox_old
796973 658 7428 805059 c48c3 busybox_unstripped
2008-03-17 09:07:36 +00:00
Denis Vlasenko
d02db89244
clean up TODO file. No real code changes.
2008-03-17 09:05:21 +00:00
Denis Vlasenko
85c247161b
*: fix fallout from -Wunused-parameter
...
function old new delta
bbunpack 358 366 +8
passwd_main 1070 1072 +2
handle_incoming_and_exit 2651 2653 +2
getpty 88 86 -2
script_main 975 972 -3
inetd_main 2036 2033 -3
dname_enc 377 373 -4
make_new_session 474 462 -12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/5 up/down: 12/-24) Total: -12 bytes
text data bss dec hex filename
797429 658 7428 805515 c4a8b busybox_old
797417 658 7428 805503 c4a7f busybox_unstripped
2008-03-17 09:04:04 +00:00
Denis Vlasenko
081eb71ebd
dnsd: properly set _src_ IP:port on outgoing UDP packets
...
function old new delta
send_to_from - 258 +258
dnsd_main 1500 1568 +68
interrupt 17 19 +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/0 up/down: 328/0) Total: 328 bytes
text data bss dec hex filename
797101 658 7428 805187 c4943 busybox_old
797429 658 7428 805515 c4a8b busybox_unstripped
2008-03-17 09:02:21 +00:00
Denis Vlasenko
68404f13d4
*: add -Wunused-parameter; fix resulting breakage
...
function old new delta
procps_scan 1265 1298 +33
aliascmd 278 283 +5
parse_file_cmd 116 120 +4
dname_enc 373 377 +4
setcmd 90 93 +3
execcmd 57 60 +3
count_lines 72 74 +2
process_command_subs 340 339 -1
test_main 409 407 -2
mknod_main 179 177 -2
handle_incoming_and_exit 2653 2651 -2
argstr 1312 1310 -2
shiftcmd 131 128 -3
exitcmd 46 43 -3
dotcmd 297 294 -3
breakcmd 86 83 -3
evalpipe 353 349 -4
evalcommand 1180 1176 -4
evalcmd 109 105 -4
send_tree 374 369 -5
mkfifo_main 82 77 -5
evalsubshell 152 147 -5
typecmd 75 69 -6
letcmd 61 55 -6
add_cmd 1190 1183 -7
main 891 883 -8
ash_main 1415 1407 -8
parse_stream 1377 1367 -10
alloc_procps_scan 55 - -55
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 7/21 up/down: 54/-148) Total: -94 bytes
text data bss dec hex filename
797195 658 7428 805281 c49a1 busybox_old
797101 658 7428 805187 c4943 busybox_unstripped
2008-03-17 09:00:54 +00:00
Denis Vlasenko
cdf62770af
dos2unix: tiny shrink
...
login,su: fix setup_environment() so that it works as intended
(parameter names were a bit misleading)
fdisk: shrink
help text: shrink
function old new delta
login_main 1658 1701 +43
setup_environment 206 203 -3
dos_compatible_flag 4 1 -3
dos2unix_main 383 375 -8
get_boot 1724 1702 -22
fdisk_main 2949 2889 -60
packed_usage 24250 23948 -302
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/6 up/down: 43/-398) Total: -355 bytes
text data bss dec hex filename
798768 661 7428 806857 c4fc9 busybox_old
798327 658 7428 806413 c4e0d busybox_unstripped
2008-03-17 08:42:43 +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
8e2cfec1cd
libbb: introduse and use signal_[no_]SA_RESTART_empty_mask and sigaction_set
...
signal_SA_RESTART_empty_mask - 65 +65
signal_no_SA_RESTART_empty_mask - 54 +54
dd_main 1325 1369 +44
sigaction_set - 19 +19
dname_enc 373 377 +4
UNSPEC_print 64 66 +2
setsignal 296 294 -2
bb_signals_recursive 95 92 -3
bb_askpass 367 361 -6
inetd_main 1810 1797 -13
rx_main 912 883 -29
sigdelset 32 - -32
__sigdelset 32 - -32
__GI_sigdelset 32 - -32
sighup_handler 84 37 -47
arping_main 1844 1797 -47
fsck_main 1869 1807 -62
run_list 1917 1844 -73
vlock_main 492 409 -83
progressmeter 883 798 -85
handle_incoming_and_exit 2737 2651 -86
------------------------------------------------------------------------------
(add/remove: 3/3 grow/shrink: 3/12 up/down: 188/-632) Total: -444 bytes
2008-03-12 23:19:35 +00:00
Denis Vlasenko
4cf1d08fc2
nc: remove a bit of bloat
...
inetd: more NOMMU fixes
rx: shrink
devfsd: minor shrink
vlock: shrink
tcpudp: narrow down window where we have no wildcard socket
parse_one_line 1015 1102 +87
init_ring - 53 +53
xzalloc_lsa - 48 +48
read_byte 51 50 -1
rearm_alarm 28 25 -3
nc_main 1028 1000 -28
initring 53 - -53
vlock_main 583 496 -87
reread_config_file 1089 991 -98
rx_main 1046 912 -134
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 1/6 up/down: 188/-404) Total: -216 bytes
text data bss dec hex filename
800120 661 7428 808209 c5511 busybox_old
799796 661 7428 807885 c53cd busybox_unstripped
2008-03-12 23:13:50 +00:00
Denis Vlasenko
4e6d5117b8
inetd: make it NOMMU-capable and IPv6-friendly. Lots of renames
...
of variable/function names
Total: -2474 bytes
text data bss dec hex filename
802215 661 7452 810328 c5d58 busybox_old
800120 661 7428 808209 c5511 busybox_unstripped
2008-03-12 22:14:34 +00:00
Denis Vlasenko
4e6c8120a5
crond: make it NOMMU-capable
...
function old new delta
safe_setenv4 - 62 +62
ForkJob 472 511 +39
change_identity 21 57 +36
ParseField 564 571 +7
SynchronizeDir 178 176 -2
LogLevel 4 - -4
LogFile 4 - -4
FileBase 4 - -4
DebugOpt 4 - -4
CDir 4 - -4
DeleteFile 141 132 -9
packed_usage 24248 24228 -20
crondlog 157 113 -44
change_identity_e2str 54 - -54
SynchronizeFile 729 671 -58
crond_main 1555 1404 -151
------------------------------------------------------------------------------
(add/remove: 1/6 grow/shrink: 3/6 up/down: 144/-358) Total: -214 bytes
2008-03-12 22:10:25 +00:00
Paul Fox
b4a5087ee0
define DEBUG as 0, for when ENABLE_FEATURE_DEVPTS is not on.
2008-03-05 22:01:45 +00:00
Denis Vlasenko
d18f52bd18
actually add bb_qsort.c
...
*: s/Denis/Denys/
2008-03-02 12:53:15 +00:00
Denis Vlasenko
fb29038b59
libbb: inntroduce and use bb_pstrcmp() and qsort_string_vector()
...
msh: glob0/glob1/glob2/glob3 are just a sorting routine! remove them.
bb_pstrcmp - 25 +25
qsort_string_vector - 24 +24
expand 2209 2227 +18
getopt32 1359 1370 +11
passwd_main 1072 1074 +2
handle_incoming_and_exit 2737 2735 -2
UNSPEC_print 66 64 -2
forkexec 1343 1339 -4
input_tab 3338 3330 -8
get_dir 185 177 -8
expmeta 481 473 -8
cmdputs 405 397 -8
xstrcmp 12 - -12
find_pair 187 167 -20
match_compare 25 - -25
dir_strcmp 25 - -25
glob2 27 - -27
glob3 34 - -34
glob1 256 - -256
------------------------------------------------------------------------------
(add/remove: 2/6 grow/shrink: 3/8 up/down: 80/-439) Total: -359 bytes
2008-03-02 12:51:26 +00:00
Denis Vlasenko
574f2f4394
*: add optimization barrier to all "G trick" locations
2008-02-27 18:41:59 +00:00
Denis Vlasenko
c8f2f74ddd
libbb: add forgotten part of "script" applet change
2008-02-27 14:33:28 +00:00
Denis Vlasenko
5014dada3f
script: new applet by Pascal Bellard <pascal.bellard AT ads-lu.com>
2008-02-27 11:54:59 +00:00
Denis Vlasenko
d686482d05
actually add libbb/safe_gethostname.c
2008-02-25 23:24:32 +00:00
Denis Vlasenko
6f1713f216
*: intrduce and use safe_gethostname. By Tito <farmatito AT tiscali.it>
...
safe_gethostname - 48 +48
glob3 35 37 +2
timestamp_and_log 314 315 +1
udhcp_send_kernel_packet 234 231 -3
scan_tree 275 271 -4
passwd_main 1074 1070 -4
print_login_prompt 68 58 -10
obscure 392 377 -15
syslogd_main 882 866 -16
print_login_issue 516 478 -38
hostname_main 278 223 -55
parse_and_put_prompt 825 756 -69
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/9 up/down: 51/-214) Total: -163 bytes
text data bss dec hex filename
798791 728 7484 807003 c505b busybox_old
798631 728 7484 806843 c4fbb busybox_unstripped
2008-02-25 23:23:58 +00:00
Denis Vlasenko
394eebed66
lpd: spool mode added by Vladimir
...
lpr: more robust error reporting
*: introduce and use xchroot
libbb: full_read/write now will report partial data counts prior to error
isdirectory.c: style fixes
lpd_main 249 486 +237
xchroot - 29 +29
get_response_or_say_and_die 110 139 +29
full_write 52 60 +8
full_read 55 63 +8
static.newline 1 - -1
switch_root_main 404 400 -4
chpst_main 1089 1079 -10
getopt32 1370 1359 -11
chroot_main 115 101 -14
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/4 up/down: 311/-40) Total: 271 bytes
text data bss dec hex filename
798472 728 7484 806684 c4f1c busybox_old
798775 728 7484 806987 c504b busybox_unstripped
2008-02-25 20:30:24 +00:00
Denis Vlasenko
f99afb5dff
lpd: new applet by Vladimir Dronnikov <dronnikov AT gmail.com>
2008-02-24 23:32:36 +00:00
Denis Vlasenko
400d8bb45e
less,klogd,syslogd,nc,tcpudp: exit on signal by killing itself, not exit(1)
...
*: minor shrink
2008-02-24 13:36:01 +00:00
Denis Vlasenko
32b2a9fd6a
small code readability and typo fixes
2008-02-22 22:43:22 +00:00
Denis Vlasenko
68444b9f0c
lpr and lpq applets by Walter Harms.
...
text data bss dec hex filename
392 0 0 392 188 lpq.o
1378 0 0 1378 562 lpr.o
142 0 0 142 8e parse_prt.o
2008-02-22 22:24:48 +00:00
Denis Vlasenko
081efd1232
corrected English in comment
2008-02-20 22:57:24 +00:00
Denis Vlasenko
e376d454bb
libbb: introduce and use nonblock_safe_read(). Yay!
...
Our shells are immune from this nasty O_NONBLOCK now!
function old new delta
nonblock_safe_read - 78 +78
file_get 276 295 +19
generateMTFValues 428 435 +7
read_line_input 1776 1772 -4
preadbuffer 543 450 -93
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/2 up/down: 104/-97) Total: 7 bytes
text data bss dec hex filename
615190 715 23924 639829 9c355 busybox_old
615168 715 23924 639807 9c33f busybox_unstripped
2008-02-20 22:23:24 +00:00
Denis Vlasenko
6f04391cec
lineedit: tiny shrink
2008-02-18 22:28:03 +00:00
Denis Vlasenko
c9ca0a3274
mount: recognize "dirsync" (closes bug 835)
...
mount: sanitize environ if called by non-root
*: adjust for slightly different sanitize routine
2008-02-18 11:08:33 +00:00
Denis Vlasenko
56244736ec
whitespace fixes
2008-02-17 15:14:04 +00:00
Denis Vlasenko
cb448fe01b
libbb: introduce and use xrename and rename_or_warn.
2008-02-17 14:28:53 +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
Mike Frysinger
977bc6a137
we need to pass back the rtc device name that was actually used so that we can turn around and check its sysfs status
2008-02-15 07:19:03 +00:00
Mike Frysinger
6b160e490d
split some rtc funcs out of hwclock and into an rtc header/lib so that the new rtcwake applet as well as hwclock can utilize the same code
2008-02-15 02:27:19 +00:00
Denis Vlasenko
39487e2d6a
libbb: filename completion should match dangling symlinks too
2008-02-14 19:55:58 +00:00
Denis Vlasenko
d5fe880a57
cp: add ENABLE_FEATURE_VERBOSE_CP_MESSAGE. Closes bug 1470
2008-02-13 16:52:00 +00:00
Bernhard Reutner-Fischer
a985d306a1
- spelling fixes
2008-02-11 11:44:38 +00:00
Denis Vlasenko
04e11c9209
getpot: add support for "a+" specifier for nonnegative int parameters.
...
By Vladimir Dronnikov <dronnikov at gmail.com>.
fdisk and top are converted as an example.
function old new delta
getopt32 1340 1370 +30
top_main 1137 1120 -17
fdisk_main 3033 2949 -84
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 30/-101) Total: -71 bytes
2008-02-10 19:44:20 +00:00
Denis Vlasenko
80667e30fb
msh: fix Ctrl-C handling with line editing
2008-02-02 18:35:55 +00:00
Bernhard Reutner-Fischer
8c69afd992
- be C99 friendly. Anonymous unions are a GNU extension. This change is
...
size-neutral WRT -std=gnu99 and fixes several compilation errors for strict
C99 mode.
2008-01-29 10:33:34 +00:00
Denis Vlasenko
9772816570
*: move getopt reset code to better place(s)
2008-01-28 22:57:10 +00:00
Denis Vlasenko
b5c60fc787
mkswap, readahead: stop using fdlength, it is reported to be unreliable
2008-01-27 23:41:34 +00:00
Denis Vlasenko
c4e4be9414
tentatively fix getopt state corruption for NOFORK applets
2008-01-27 22:39:55 +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
a5549c9617
fdisk: fix a case where break was reached only for DOS labels
2008-01-24 22:49:15 +00:00
Paul Fox
518d8dd979
eliminated CONFIG_FEATURE_EDITING_FANCY_KEYS. the size savings
...
was small, compared to the total size of the command-line editing
features, and it removed key bindings that most wouldn't consider
"fancy", like ^U, and 'l' and 'h' in vi mode, ^F and ^B in emacs
mode.
2008-01-18 20:41:24 +00:00
Paul Fox
84bbac5a09
enable use of ^V prefix to allow forced insertion of any character. in
...
particular, without this it's impossible to enter a TAB on the commandline
(whether tab completion is enabled or not).
2008-01-11 16:50:08 +00:00
Paul Fox
ee8e3ee919
allow 8-bit characters
2008-01-11 16:12:57 +00:00
Denis Vlasenko
6b404431aa
ps: fix build breakage from vda's recent commit
...
*: whitespace fixes
2008-01-07 16:13:14 +00:00
Denis Vlasenko
56ea65ca5f
ps: fix overflow in USER and VSZ columns
...
function old new delta
smart_ulltoa4 - 280 +280
smart_ulltoa5 283 408 +125
ulltoa6_and_space - 25 +25
scale 28 38 +10
bbunpack 358 366 +8
ps_main 259 261 +2
glob3 35 37 +2
fill_bounds 172 174 +2
process_stdin 456 446 -10
smart_ulltoa6 406 - -406
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 6/1 up/down: 454/-416) Total: 38 bytes
2008-01-06 03:26:53 +00:00
Denis Vlasenko
5fee2e1a79
ps: add conditional support for -o [e]time
2008-01-05 03:26:41 +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
27963980db
adding libbb/printable.c
2007-12-30 20:13:39 +00:00
Denis Vlasenko
d3c042fc60
libbb: introduce fputc_printable (from ed)
...
netstat: print control chars as ^C etc
vi: style fixlet
function old new delta
fputc_printable - 100 +100
unix_do_one 451 487 +36
printLines 258 190 -68
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/1 up/down: 136/-68) Total: 68 bytes
2007-12-30 01:59:53 +00:00
Denis Vlasenko
abee3d0e0d
Fix xmalloc_fgets_str so that it really does NOT strip terminator.
...
Add xmalloc_fgetline_str which does strip terminator,
and use it in dpkg instead of xmalloc_fgets_str.
netstat: use xmalloc_fgets_str - allows to eat strings with NULs
(this fixes bug with some weird /proc/net/unix input)
function old new delta
xmalloc_fgets_internal - 191 +191
xmalloc_fgetline_str - 18 +18
do_info 116 120 +4
unix_do_one 451 447 -4
tcp_do_one 423 419 -4
send_tree 369 365 -4
xmalloc_fgets_str 178 15 -163
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/4 up/down: 213/-175) Total: 38 bytes
text data bss dec hex filename
778445 832 7344 786621 c00bd busybox_old
778483 832 7344 786659 c00e3 busybox_unstripped
2007-12-26 20:44:45 +00:00
Denis Vlasenko
f7be20e70c
nameif: extended matching (Nico Erfurth <masta@perlgolf.de>)
...
*: whitespace fixes
function old new delta
prepend_new_eth_table - 304 +304
nameif_main 620 684 +64
cc_macaddr 51 - -51
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 1/0 up/down: 368/-51) Total: 317 bytes
2007-12-24 14:09:19 +00:00
Denis Vlasenko
fcfb5c04bb
defconfig: update
...
appletli.c: add vda's (C)
top: fixlet for incorrect display of "0"
Makefile: reduce stack size from 20k to 16k
2007-12-24 12:16:24 +00:00
Denis Vlasenko
94e3365b8f
perror_nomsg: don't print extra colon
...
losetup: print name of loop device in error messages
2007-12-22 15:44:23 +00:00
Denis Vlasenko
2cd4a747e5
num conversions: allow for leading '+' (renice needs that)
2007-12-11 13:15:11 +00:00
Denis Vlasenko
9cb220be9d
lineedit: don't violate API if we do simple fgets
...
ash: cosmetic style fixes, no code changes
2007-12-09 10:03:28 +00:00
Denis Vlasenko
b851c42a14
signal names hack was wrong, it broke "get signal name" function.
...
Reverting :(
2007-12-04 21:44:52 +00:00
Denis Vlasenko
c689fcfdb0
Make signal table a bit smaller
...
get_signum 136 151 +15
signals 224 192 -32
2007-12-04 10:20:48 +00:00
Denis Vlasenko
5f934b0785
guard against SIGxxx >= 32 (no code changes on i386)
2007-12-04 10:05:28 +00:00
Denis Vlasenko
7221c8c22d
lineedit: reduce stack usage
...
netstat: reduce stack usage; fix handling of NULs in unix socket filenames
static.has_inode 1 - -1
do_info 119 116 -3
deinit_S 60 51 -9
unix_do_one 578 451 -127
parse_and_put_prompt 966 825 -141
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/4 up/down: 0/-281) Total: -281 bytes
2007-12-03 10:45:14 +00:00
Denis Vlasenko
8003e266ed
explain why we use mmap instead of malloc
2007-12-02 07:18:29 +00:00
Denis Vlasenko
4c13922961
Introduce FEATURE_COPYBUF_KB.
...
People who want smaller stack at any cost may use it
to reduce cp's stack usage (FEATURE_COPYBUF_KB=1).
Desktop people may get faster copy of big files
(FEATURE_COPYBUF_KB=32 is ~30% faster than 4kb)
2007-12-02 03:27:42 +00:00
Denis Vlasenko
6672c8e480
test: stop using lots of bss.
...
function old new delta
test_main 425 456 +31
t_lex 69 73 +4
syntax 100 104 +4
ptr_to_statics 8 12 +4
t_wp_op 4 - -4
t_wp 4 - -4
ngroups 4 - -4
group_array 4 - -4
binop 590 585 -5
oexpr 104 97 -7
aexpr 101 94 -7
nexpr 831 820 -11
leaving 156 - -156
------------------------------------------------------------------------------
(add/remove: 0/5 grow/shrink: 4/4 up/down: 43/-202) Total: -159 bytes
text data bss dec hex filename
775098 929 9084 785111 bfad7 busybox_old
775107 933 8908 784948 bfa34 busybox_unstripped
2007-11-30 07:29:05 +00:00
Denis Vlasenko
745cd17926
Further optimize applet tables; prettify build output
...
text data bss dec hex filename
775923 929 9100 785952 bfe20 busybox_old
775565 929 9100 785594 bfcba busybox_unstripped
2007-11-29 03:31:20 +00:00
Denis Vlasenko
1aa7e477b1
reorganize applet table. Eliminates pointers to names.
...
Should be a big win for libbusybox. busybox wins too:
text data bss dec hex filename
776524 929 9100 786553 c0079 busybox_old
775903 929 9100 785932 bfe0c busybox_unstripped
2007-11-28 06:49:03 +00:00
Denis Vlasenko
6446c2d4ab
which: fix testsuite failure
...
pidof: do not output empty line if nothing found
testsuite: disable false positive
2007-11-25 04:54:13 +00:00
Denis Vlasenko
9d6c46955f
Introduce FEATURE_PREFER_IPV4_ADDRESS. If selected, we have:
...
function old new delta
str2sockaddr 328 344 +16
2007-11-14 10:18:33 +00:00
Denis Vlasenko
73cb1fdfea
lineedit: stop using both data/bss and tons of stack.
...
stack usage was ~10 kb!
unfortunately, noticeable code size growth:
text data bss dec hex filename
9252 12 181 9445 24e5 busybox.t7/libbb/lineedit.o
9714 4 0 9718 25f6 busybox.t8/libbb/lineedit.o
2007-11-10 01:35:47 +00:00
Denis Vlasenko
d031b203c7
syslogd: support "symlink to symlink" for /dev/log; reduce stack usage
...
function old new delta
create_socket - 134 +134
syslogd_main 1132 865 -267
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/1 up/down: 134/-267) Total: -133 bytes
text data bss dec hex filename
775603 974 9420 785997 bfe4d busybox_old
775445 974 9420 785839 bfdaf busybox_unstripped
2007-11-10 01:28:19 +00:00
Bernhard Reutner-Fischer
9bd8d0c23e
- commentary fixes
...
- use common exit sequence for failure path:
text data bss dec hex filename
308 0 0 308 134 libbb/xreadlink.o.pgf
296 0 0 296 128 libbb/xreadlink.o
2007-11-08 21:11:43 +00:00
Paul Fox
599bbfbd9b
xmalloc_follow_symlinks() -- fix ELOOP issue with absolute paths,
...
return full path in cases where path doesn't resolve to a link.
change name to better differentiate from xmalloc_readlink().
2007-11-08 20:00:36 +00:00
Denis Vlasenko
abbd363261
xreadlink: code shrink
...
udhcp: add missing tryagain member to client_config
function old new delta
xmalloc_readlink_follow 169 154 -15
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-15) Total: -15 bytes
2007-11-08 17:40:23 +00:00
Paul Fox
53bd4015aa
follow symlinks to find the true passwd file before updating.
2007-11-08 01:12:38 +00:00
Paul Fox
459a2ba1ef
new xmalloc_readlink_follow() routine to fully expand trailing symlinks
...
to get to a "real" file (or directory).
2007-11-08 01:11:41 +00:00
Denis Vlasenko
5281630229
login: clear dangerous environment variables if started by non-root
2007-11-06 05:26:51 +00:00