summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-03-22 12:44:09 (GMT)
committer Denys Vlasenko <vda.linux@googlemail.com>2010-03-22 12:44:09 (GMT)
commit8d1144565fd01576b72eac65ce4686405f98829e (patch)
tree25c9164bab5aae4a940785df1bc97591fa225d01
parent501e35c47441722c69c62bd52841a9a6fd64932c (diff)
downloadbusybox-8d1144565fd01576b72eac65ce4686405f98829e.tar.gz
busybox-8d1144565fd01576b72eac65ce4686405f98829e.tar.bz2
udhcpc: do not test for srand init, just do it at the start
function old new delta udhcpc_main 2855 2867 +12 static.initialized 1 - -1 client_background 32 31 -1 perform_release 124 122 -2 random_xid 38 - -38 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 1/2 up/down: 12/-42) Total: -30 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--networking/udhcp/dhcpc.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index d51d8b8..e79feb7 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -64,14 +64,8 @@ static smallint state;
/* Create a random xid */
-static uint32_t random_xid(void)
+static ALWAYS_INLINE uint32_t random_xid(void)
{
- static smallint initialized;
-
- if (!initialized) {
- srand(monotonic_us());
- initialized = 1;
- }
return rand();
}
@@ -643,15 +637,14 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
bb_sanitize_stdio();
/* Equivalent of doing a fflush after every \n */
setlinebuf(stdout);
-
/* Create pidfile */
write_pidfile(client_config.pidfile);
-
/* Goes to stdout (unless NOMMU) and possibly syslog */
bb_info_msg("%s (v"BB_VER") started", applet_name);
-
/* Set up the signal pipe */
udhcp_sp_setup();
+ /* We want random_xid to be random... */
+ srand(monotonic_us());
state = INIT_SELECTING;
udhcp_run_script(NULL, "deconfig");
@@ -681,7 +674,8 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
tv.tv_sec = timeout - already_waited_sec;
tv.tv_usec = 0;
- retval = 0; /* If we already timed out, fall through, else... */
+ retval = 0;
+ /* If we already timed out, fall through with retval = 0, else... */
if ((int)tv.tv_sec > 0) {
timestamp_before_wait = (unsigned)monotonic_sec();
log1("Waiting on select...");