wpa_ctrl: Use monotonic time for request retry loop

The request retry loop only retries for 5 seconds, so any time
jumps would probably not affect it much, but it should be using
monotonic time nonetheless since it only cares about duration.

Signed-hostap: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2013-12-16 21:08:25 +01:00 committed by Jouni Malinen
parent 7ffe7d222a
commit 636e19a53d

View File

@ -391,7 +391,7 @@ int wpa_ctrl_request(struct wpa_ctrl *ctrl, const char *cmd, size_t cmd_len,
void (*msg_cb)(char *msg, size_t len)) void (*msg_cb)(char *msg, size_t len))
{ {
struct timeval tv; struct timeval tv;
struct os_time started_at; struct os_reltime started_at;
int res; int res;
fd_set rfds; fd_set rfds;
const char *_cmd; const char *_cmd;
@ -430,12 +430,12 @@ retry_send:
* longer before giving up. * longer before giving up.
*/ */
if (started_at.sec == 0) if (started_at.sec == 0)
os_get_time(&started_at); os_get_reltime(&started_at);
else { else {
struct os_time n; struct os_reltime n;
os_get_time(&n); os_get_reltime(&n);
/* Try for a few seconds. */ /* Try for a few seconds. */
if (n.sec > started_at.sec + 5) if (os_reltime_expired(&n, &started_at, 5))
goto send_err; goto send_err;
} }
os_sleep(1, 0); os_sleep(1, 0);