]> arthur.barton.de Git - netatalk.git/blobdiff - libevent/test/test-eof.c
Re-add libevent from git, remove all build files
[netatalk.git] / libevent / test / test-eof.c
index 90b40938a62afbc875c695a37f168b6d6854fb37..3f470ce203a8032d58f46019b7f0c4c69e558e19 100644 (file)
@@ -1,6 +1,28 @@
 /*
- * Compile with:
- * cc -I/usr/local/include -o time-test time-test.c -L/usr/local/lib -levent
+ * Copyright (c) 2002-2007 Niels Provos <provos@citi.umich.edu>
+ * Copyright (c) 2007-2012 Niels Provos and Nick Mathewson
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 #include "event2/event-config.h"
 
@@ -32,6 +54,7 @@
 
 int test_okay = 1;
 int called = 0;
+struct timeval timeout = {60, 0};
 
 static void
 read_cb(evutil_socket_t fd, short event, void *arg)
@@ -39,6 +62,11 @@ read_cb(evutil_socket_t fd, short event, void *arg)
        char buf[256];
        int len;
 
+       if (EV_TIMEOUT & event) {
+               printf("%s: Timeout!\n", __func__);
+               exit(1);
+       }
+
        len = recv(fd, buf, sizeof(buf), 0);
 
        printf("%s: read %d%s\n", __func__,
@@ -46,7 +74,7 @@ read_cb(evutil_socket_t fd, short event, void *arg)
 
        if (len) {
                if (!called)
-                       event_add(arg, NULL);
+                       event_add(arg, &timeout);
        } else if (called == 1)
                test_okay = 0;
 
@@ -85,9 +113,9 @@ main(int argc, char **argv)
        event_init();
 
        /* Initalize one event */
-       event_set(&ev, pair[1], EV_READ, read_cb, &ev);
+       event_set(&ev, pair[1], EV_READ | EV_TIMEOUT, read_cb, &ev);
 
-       event_add(&ev, NULL);
+       event_add(&ev, &timeout);
 
        event_dispatch();