gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r37873 - in libmicrohttpd/src: include microhttpd


From: gnunet
Subject: [GNUnet-SVN] r37873 - in libmicrohttpd/src: include microhttpd
Date: Sun, 4 Sep 2016 17:16:58 +0200

Author: grothoff
Date: 2016-09-04 17:16:58 +0200 (Sun, 04 Sep 2016)
New Revision: 37873

Modified:
   libmicrohttpd/src/include/microhttpd.h
   libmicrohttpd/src/microhttpd/test_upgrade.c
   libmicrohttpd/src/microhttpd/test_upgrade_common.c
   libmicrohttpd/src/microhttpd/test_upgrade_ssl.c
Log:
also add tests for external select/epoll for connection upgrades

Modified: libmicrohttpd/src/include/microhttpd.h
===================================================================
--- libmicrohttpd/src/include/microhttpd.h      2016-09-04 15:15:06 UTC (rev 
37872)
+++ libmicrohttpd/src/include/microhttpd.h      2016-09-04 15:16:58 UTC (rev 
37873)
@@ -1323,6 +1323,7 @@
    * No extra arguments should be passed.
    */
   MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY,
+  MHD_DAEMON_INFO_EPOLL_FD = MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY,
 
   /**
    * Request the number of current connections handled by the daemon.
@@ -2695,7 +2696,7 @@
   size_t mac_key_size;
 
   /**
-   * Listen socket file descriptor, for #MHD_DAEMON_INFO_EPOLL_FD_LINUX_ONLY
+   * Socket, returned for #MHD_DAEMON_INFO_EPOLL_FD
    * and #MHD_DAEMON_INFO_LISTEN_FD.
    */
   MHD_socket listen_fd;

Modified: libmicrohttpd/src/microhttpd/test_upgrade.c
===================================================================
--- libmicrohttpd/src/microhttpd/test_upgrade.c 2016-09-04 15:15:06 UTC (rev 
37872)
+++ libmicrohttpd/src/microhttpd/test_upgrade.c 2016-09-04 15:16:58 UTC (rev 
37873)
@@ -56,6 +56,7 @@
   MHD_socket sock;
   struct sockaddr_in sa;
 
+  done = 0;
   if (0 == (flags & MHD_USE_THREAD_PER_CONNECTION))
     flags |= MHD_USE_SUSPEND_RESUME;
   d = MHD_start_daemon (flags | MHD_USE_DEBUG,
@@ -101,6 +102,10 @@
   /* try external select */
   error_count += test_upgrade (0,
                                0);
+#ifdef EPOLL_SUPPORT
+  error_count += test_upgrade (MHD_USE_EPOLL,
+                               0);
+#endif
 
   /* Test thread-per-connection */
   error_count += test_upgrade (MHD_USE_THREAD_PER_CONNECTION,
@@ -125,7 +130,6 @@
   error_count += test_upgrade (MHD_USE_EPOLL_INTERNALLY,
                                2);
 #endif
-
   /* report result */
   if (0 != error_count)
     fprintf (stderr,

Modified: libmicrohttpd/src/microhttpd/test_upgrade_common.c
===================================================================
--- libmicrohttpd/src/microhttpd/test_upgrade_common.c  2016-09-04 15:15:06 UTC 
(rev 37872)
+++ libmicrohttpd/src/microhttpd/test_upgrade_common.c  2016-09-04 15:16:58 UTC 
(rev 37873)
@@ -413,7 +413,7 @@
 static void
 run_mhd_poll_loop (struct MHD_Daemon *daemon)
 {
-  abort (); // not implemented
+  abort (); /* currently not implementable with existing MHD API */
 }
 
 
@@ -426,7 +426,32 @@
 static void
 run_mhd_epoll_loop (struct MHD_Daemon *daemon)
 {
-  abort (); // not implemented
+  const union MHD_DaemonInfo *di;
+  MHD_socket ep;
+  fd_set rs;
+  MHD_UNSIGNED_LONG_LONG to;
+  struct timeval tv;
+
+  di = MHD_get_daemon_info (daemon,
+                            MHD_DAEMON_INFO_EPOLL_FD);
+  ep = di->listen_fd;
+  while (! done)
+    {
+      FD_ZERO (&rs);
+      to = 1000;
+
+      FD_SET (ep, &rs);
+      MHD_get_timeout (daemon,
+                       &to);
+      tv.tv_sec = to / 1000;
+      tv.tv_usec = 1000 * (to % 1000);
+      select (ep + 1,
+              &rs,
+              NULL,
+              NULL,
+              &tv);
+      MHD_run (daemon);
+    }
 }
 
 

Modified: libmicrohttpd/src/microhttpd/test_upgrade_ssl.c
===================================================================
--- libmicrohttpd/src/microhttpd/test_upgrade_ssl.c     2016-09-04 15:15:06 UTC 
(rev 37872)
+++ libmicrohttpd/src/microhttpd/test_upgrade_ssl.c     2016-09-04 15:16:58 UTC 
(rev 37873)
@@ -108,6 +108,7 @@
   MHD_socket sock;
   pid_t pid;
 
+  done = 0;
   if (0 == (flags & MHD_USE_THREAD_PER_CONNECTION))
     flags |= MHD_USE_SUSPEND_RESUME;
   d = MHD_start_daemon (flags | MHD_USE_DEBUG | MHD_USE_TLS,
@@ -160,6 +161,10 @@
   /* try external select */
   error_count += test_upgrade (0,
                                0);
+#ifdef EPOLL_SUPPORT
+  error_count += test_upgrade (MHD_USE_TLS_EPOLL_UPGRADE,
+                               0);
+#endif
 
   /* Test thread-per-connection */
   error_count += test_upgrade (MHD_USE_THREAD_PER_CONNECTION,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]