automake build system
[mech_eap.orig] / src / utils / eloop_win.c
index 73f0eaf..94cc72d 100644 (file)
@@ -50,8 +50,6 @@ struct eloop_signal {
 };
 
 struct eloop_data {
-       void *user_data;
-
        int max_sock;
        size_t reader_count;
        struct eloop_sock *readers;
@@ -79,10 +77,9 @@ struct eloop_data {
 static struct eloop_data eloop;
 
 
-int eloop_init(void *user_data)
+int eloop_init(void)
 {
        os_memset(&eloop, 0, sizeof(eloop));
-       eloop.user_data = user_data;
        eloop.num_handles = 1;
        eloop.handles = os_malloc(eloop.num_handles *
                                  sizeof(eloop.handles[0]));
@@ -320,6 +317,25 @@ int eloop_cancel_timeout(eloop_timeout_handler handler,
 }
 
 
+int eloop_is_timeout_registered(eloop_timeout_handler handler,
+                               void *eloop_data, void *user_data)
+{
+       struct eloop_timeout *tmp;
+
+       tmp = eloop.timeout;
+       while (tmp != NULL) {
+               if (tmp->handler == handler &&
+                   tmp->eloop_data == eloop_data &&
+                   tmp->user_data == user_data)
+                       return 1;
+
+               tmp = tmp->next;
+       }
+
+       return 0;
+}
+
+
 /* TODO: replace with suitable signal handler */
 #if 0
 static void eloop_handle_signal(int sig)
@@ -353,7 +369,6 @@ static void eloop_process_pending_signals(void)
                if (eloop.signals[i].signaled) {
                        eloop.signals[i].signaled = 0;
                        eloop.signals[i].handler(eloop.signals[i].sig,
-                                                eloop.user_data,
                                                 eloop.signals[i].user_data);
                }
        }
@@ -361,7 +376,6 @@ static void eloop_process_pending_signals(void)
        if (eloop.term_signal.signaled) {
                eloop.term_signal.signaled = 0;
                eloop.term_signal.handler(eloop.term_signal.sig,
-                                         eloop.user_data,
                                          eloop.term_signal.user_data);
        }
 }
@@ -444,12 +458,11 @@ void eloop_run(void)
        while (!eloop.terminate &&
               (eloop.timeout || eloop.reader_count > 0 ||
                eloop.event_count > 0)) {
+               tv.sec = tv.usec = 0;
                if (eloop.timeout) {
                        os_get_time(&now);
                        if (os_time_before(&now, &eloop.timeout->time))
                                os_time_sub(&eloop.timeout->time, &now, &tv);
-                       else
-                               tv.sec = tv.usec = 0;
                }
 
                count = 0;
@@ -596,9 +609,3 @@ void eloop_wait_for_read_sock(int sock)
        WSAEventSelect(sock, event, 0);
        WSACloseEvent(event);
 }
-
-
-void * eloop_get_user_data(void)
-{
-       return eloop.user_data;
-}