diff options
author | Rob Landley <rob@landley.net> | 2005-05-04 02:15:23 +0000 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2005-05-04 02:15:23 +0000 |
commit | 918f2ab3d794172fcc089be3c3f4b0fe71537652 (patch) | |
tree | 445b20bc9b73ebb5f02d63853755ef29c1e4ced7 /networking/udhcp | |
parent | 8b80c71d70f6f063f01864d2363a235aa1d730cf (diff) | |
download | busybox-918f2ab3d794172fcc089be3c3f4b0fe71537652.tar.gz |
Revert the uptime() removal. Let the list sort it out...
Diffstat (limited to 'networking/udhcp')
-rw-r--r-- | networking/udhcp/arpping.c | 6 | ||||
-rw-r--r-- | networking/udhcp/common.c | 8 | ||||
-rw-r--r-- | networking/udhcp/common.h | 1 | ||||
-rw-r--r-- | networking/udhcp/dhcpc.c | 4 |
4 files changed, 14 insertions, 5 deletions
diff --git a/networking/udhcp/arpping.c b/networking/udhcp/arpping.c index da01ddd71..7cc2be42e 100644 --- a/networking/udhcp/arpping.c +++ b/networking/udhcp/arpping.c @@ -79,7 +79,7 @@ int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface) /* wait arp reply, and check it */ tm.tv_usec = 0; - prevTime = time(NULL); + prevTime = uptime(); while (timeout > 0) { FD_ZERO(&fdset); FD_SET(s, &fdset); @@ -97,8 +97,8 @@ int arpping(uint32_t yiaddr, uint32_t ip, uint8_t *mac, char *interface) break; } } - timeout -= time(NULL) - prevTime; - prevTime = time(NULL); + timeout -= uptime() - prevTime; + prevTime = uptime(); } close(s); DEBUG(LOG_INFO, "%salid arp replies for this address", rv ? "No v" : "V"); diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c index 6ca7371d5..bf2ac4417 100644 --- a/networking/udhcp/common.c +++ b/networking/udhcp/common.c @@ -37,6 +37,14 @@ static int daemonized; +long uptime(void) +{ + struct sysinfo info; + sysinfo(&info); + return info.uptime; +} + + /* * This function makes sure our first socket calls * aren't going to fd 1 (printf badness...) and are diff --git a/networking/udhcp/common.h b/networking/udhcp/common.h index cdc51cf8a..ca19a2497 100644 --- a/networking/udhcp/common.h +++ b/networking/udhcp/common.h @@ -39,6 +39,7 @@ enum syslog_levels { #include <syslog.h> #endif +long uptime(void); void background(const char *pidfile); void start_log_and_pid(const char *client_server, const char *pidfile); void background(const char *pidfile); diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c index 028338ff3..8009bec04 100644 --- a/networking/udhcp/dhcpc.c +++ b/networking/udhcp/dhcpc.c @@ -310,7 +310,7 @@ int main(int argc, char *argv[]) for (;;) { - tv.tv_sec = timeout - time(NULL); + tv.tv_sec = timeout - uptime(); tv.tv_usec = 0; if (listen_mode != LISTEN_NONE && fd < 0) { @@ -330,7 +330,7 @@ int main(int argc, char *argv[]) retval = select(max_fd + 1, &rfds, NULL, NULL, &tv); } else retval = 0; /* If we already timed out, fall through */ - now = time(NULL); + now = uptime(); if (retval == 0) { /* timeout dropped to zero */ switch (state) { |