diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2020-11-29 11:32:48 +0100 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2020-11-29 11:32:48 +0100 |
commit | 87bd558f3f0452ed62f2686472e03a1be4a6e36d (patch) | |
tree | 46fb42606d1d8ba65211e5e2f4261830a01b8c00 /libbb | |
parent | 32a8f70ac1caa4037b63747c0c0a5086953ea668 (diff) | |
download | busybox-87bd558f3f0452ed62f2686472e03a1be4a6e36d.tar.gz |
libbb: bb_do_delay(3) -> pause_after_failed_login(), and stop looping there
function old new delta
pause_after_failed_login - 9 +9
vlock_main 358 353 -5
sulogin_main 252 247 -5
su_main 484 479 -5
passwd_main 936 931 -5
login_main 967 962 -5
bb_do_delay 68 - -68
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/5 up/down: 9/-93) Total: -84 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/bb_do_delay.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/libbb/bb_do_delay.c b/libbb/bb_do_delay.c index 65541704b..29343305d 100644 --- a/libbb/bb_do_delay.c +++ b/libbb/bb_do_delay.c @@ -8,13 +8,23 @@ */ #include "libbb.h" -void FAST_FUNC bb_do_delay(int seconds) +/* void FAST_FUNC bb_do_delay(int seconds) { ... } - no users yet */ + +#ifndef LOGIN_FAIL_DELAY +#define LOGIN_FAIL_DELAY 3 +#endif +void FAST_FUNC pause_after_failed_login(void) { - time_t start, now; +#if 0 /* over-engineered madness */ + time_t end, diff; - start = time(NULL); + end = time(NULL) + LOGIN_FAIL_DELAY; + diff = LOGIN_FAIL_DELAY; do { - sleep(seconds); - now = time(NULL); - } while ((now - start) < seconds); + sleep(diff); + diff = end - time(NULL); + } while (diff > 0); +#else + sleep(LOGIN_FAIL_DELAY); +#endif } |