]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Remove unnecessary extra tracking of eloop registration
authorJouni Malinen <j@w1.fi>
Sat, 28 Dec 2013 15:00:08 +0000 (17:00 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 29 Dec 2013 08:00:32 +0000 (10:00 +0200)
It is fine to try to cancel a registration that does not exist, so there
is no need to have the duplicated checks for eloop timeout and socket
registration.

Signed-hostap: Jouni Malinen <j@w1.fi>

src/wps/httpread.c

index e2f7c7c639cb6d538f1415c9dbddf2860a1d87d7..b51d975712538b59e47b27f79caab71c244f5800 100644 (file)
@@ -67,8 +67,6 @@ struct httpread {
        int timeout_seconds;            /* 0 or total duration timeout period */
 
        /* dynamically used information follows */
-       int sd_registered;      /* nonzero if we need to unregister socket */
-       int to_registered;      /* nonzero if we need to unregister timeout */
 
        int got_hdr;            /* nonzero when header is finalized */
        char hdr[HTTPREAD_HEADER_MAX_SIZE+1];   /* headers stored here */
@@ -143,12 +141,8 @@ void httpread_destroy(struct httpread *h)
        if (!h)
                return;
 
-       if (h->to_registered)
-               eloop_cancel_timeout(httpread_timeout_handler, NULL, h);
-       h->to_registered = 0;
-       if (h->sd_registered)
-               eloop_unregister_sock(h->sd, EVENT_TYPE_READ);
-       h->sd_registered = 0;
+       eloop_cancel_timeout(httpread_timeout_handler, NULL, h);
+       eloop_unregister_sock(h->sd, EVENT_TYPE_READ);
        os_free(h->body);
        os_free(h->uri);
        os_memset(h, 0, sizeof(*h));  /* aid debugging */
@@ -163,7 +157,6 @@ static void httpread_timeout_handler(void *eloop_data, void *user_ctx)
 {
        struct httpread *h = user_ctx;
        wpa_printf(MSG_DEBUG, "httpread timeout (%p)", h);
-       h->to_registered = 0;   /* is self-cancelling */
        (*h->cb)(h, h->cookie, HTTPREAD_EVENT_TIMEOUT);
 }
 
@@ -689,15 +682,11 @@ got_file:
         * and just in case somehow we don't get destroyed right away,
         * unregister now.
         */
-       if (h->sd_registered)
-               eloop_unregister_sock(h->sd, EVENT_TYPE_READ);
-       h->sd_registered = 0;
+       eloop_unregister_sock(h->sd, EVENT_TYPE_READ);
        /* The application can destroy us whenever they feel like...
         * cancel timeout.
         */
-       if (h->to_registered)
-               eloop_cancel_timeout(httpread_timeout_handler, NULL, h);
-       h->to_registered = 0;
+       eloop_cancel_timeout(httpread_timeout_handler, NULL, h);
        (*h->cb)(h, h->cookie, HTTPREAD_EVENT_FILE_READY);
 }
 
@@ -735,21 +724,17 @@ struct httpread * httpread_create(
        h->max_bytes = max_bytes;
        h->timeout_seconds = timeout_seconds;
 
-       if (timeout_seconds > 0) {
-               if (eloop_register_timeout(timeout_seconds, 0,
-                                          httpread_timeout_handler,
-                                          NULL, h)) {
-                       /* No way to recover (from malloc failure) */
-                       goto fail;
-               }
-               h->to_registered = 1;
+       if (timeout_seconds > 0 &&
+           eloop_register_timeout(timeout_seconds, 0,
+                                  httpread_timeout_handler, NULL, h)) {
+               /* No way to recover (from malloc failure) */
+               goto fail;
        }
        if (eloop_register_sock(sd, EVENT_TYPE_READ, httpread_read_handler,
                                NULL, h)) {
                /* No way to recover (from malloc failure) */
                goto fail;
        }
-       h->sd_registered = 1;
        return h;
 
 fail: