gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] [libmicrohttpd] branch master updated (15dfade0 -> a21ff8a9


From: gnunet
Subject: [GNUnet-SVN] [libmicrohttpd] branch master updated (15dfade0 -> a21ff8a9)
Date: Mon, 29 May 2017 20:41:23 +0200

This is an automated email from the git hooks/post-receive script.

karlson2k pushed a change to branch master
in repository libmicrohttpd.

    from 15dfade0 examples/timeout.c: Converted newline chars to Unix format
     new 82b66cc5 MHD_connection_handle_idle(): added reset of 'in_idle'. Just 
for clarity and readability.
     new a21ff8a9 Removed MHD_tls_connection_handle_idle() and 
MHD_Connection::idle_handler. Ensure that 
MHD_connection_update_event_loop_info() is called for MHD_TLS_CONNECTION_INIT 
state to properly update read/write event loop info when doing TLS handshake

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 src/microhttpd/connection.c       |  6 ++++-
 src/microhttpd/connection_https.c | 48 ---------------------------------------
 src/microhttpd/daemon.c           | 26 ++++++++++-----------
 src/microhttpd/internal.h         |  6 -----
 4 files changed, 18 insertions(+), 68 deletions(-)

diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 2db85685..915d3e1d 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -2910,6 +2910,10 @@ MHD_connection_handle_idle (struct MHD_Connection 
*connection)
 #endif
       switch (connection->state)
         {
+#ifdef HTTPS_SUPPORT
+        case MHD_TLS_CONNECTION_INIT:
+          break;
+#endif /* HTTPS_SUPPORT */
         case MHD_CONNECTION_INIT:
           line = get_next_header_line (connection,
                                        &line_len);
@@ -3342,6 +3346,7 @@ MHD_connection_handle_idle (struct MHD_Connection 
*connection)
           continue;
         case MHD_CONNECTION_CLOSED:
          cleanup_connection (connection);
+          connection->in_idle = false;
          return MHD_NO;
 #ifdef UPGRADE_SUPPORT
        case MHD_CONNECTION_UPGRADE:
@@ -3440,7 +3445,6 @@ MHD_set_http_callbacks_ (struct MHD_Connection 
*connection)
 {
   connection->read_handler = &MHD_connection_handle_read;
   connection->write_handler = &MHD_connection_handle_write;
-  connection->idle_handler = &MHD_connection_handle_idle;
 }
 
 
diff --git a/src/microhttpd/connection_https.c 
b/src/microhttpd/connection_https.c
index 9b441a9a..28f019a5 100644
--- a/src/microhttpd/connection_https.c
+++ b/src/microhttpd/connection_https.c
@@ -120,53 +120,6 @@ MHD_tls_connection_handle_write (struct MHD_Connection 
*connection)
 
 
 /**
- * This function was created to handle per-connection processing that
- * has to happen even if the socket cannot be read or written to.  All
- * implementations (multithreaded, external select, internal select)
- * call this function.
- *
- * @param connection being handled
- * @return #MHD_YES if we should continue to process the
- *         connection (not dead yet), #MHD_NO if it died
- */
-static int
-MHD_tls_connection_handle_idle (struct MHD_Connection *connection)
-{
-  time_t timeout;
-
-#if DEBUG_STATES
-  MHD_DLOG (connection->daemon,
-            _("In function %s handling connection at state: %s\n"),
-            __FUNCTION__,
-            MHD_state_to_string (connection->state));
-#endif
-  if (connection->suspended)
-    return MHD_connection_handle_idle (connection);
-  switch (connection->state)
-    {
-      /* on newly created connections we might reach here before any reply has 
been received */
-    case MHD_TLS_CONNECTION_INIT:
-      break;
-      /* close connection if necessary */
-    case MHD_CONNECTION_CLOSED:
-      return MHD_connection_handle_idle (connection);
-    default:
-      return MHD_connection_handle_idle (connection);
-    }
-  timeout = connection->connection_timeout;
-  if ( (timeout != 0) &&
-       (timeout < (MHD_monotonic_sec_counter() - connection->last_activity)))
-    MHD_connection_close_ (connection,
-                           MHD_REQUEST_TERMINATED_TIMEOUT_REACHED);
-#ifdef EPOLL_SUPPORT
-  return MHD_connection_epoll_update_ (connection);
-#else
-  return MHD_YES;
-#endif
-}
-
-
-/**
  * Set connection callback function to be used through out
  * the processing of this secure connection.
  *
@@ -177,7 +130,6 @@ MHD_set_https_callbacks (struct MHD_Connection *connection)
 {
   connection->read_handler = &MHD_tls_connection_handle_read;
   connection->write_handler = &MHD_tls_connection_handle_write;
-  connection->idle_handler = &MHD_tls_connection_handle_idle;
 }
 
 
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 71a0ce0b..01af990c 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -1151,7 +1151,7 @@ call_handlers (struct MHD_Connection *con,
           read_ready)
         {
           con->read_handler (con);
-          ret = con->idle_handler (con);
+          ret = MHD_connection_handle_idle (con);
           states_info_processed = true;
         }
       /* No need to check value of 'ret' here as closed connection
@@ -1160,7 +1160,7 @@ call_handlers (struct MHD_Connection *con,
           write_ready)
         {
           con->write_handler (con);
-          ret = con->idle_handler (con);
+          ret = MHD_connection_handle_idle (con);
           states_info_processed = true;
         }
     }
@@ -1168,17 +1168,17 @@ call_handlers (struct MHD_Connection *con,
     {
       MHD_connection_close_ (con,
                              MHD_REQUEST_TERMINATED_WITH_ERROR);
-      return con->idle_handler (con);
+      return MHD_connection_handle_idle (con);
     }
 
   if (!states_info_processed)
     { /* Connection is not read or write ready, but external conditions
        * may be changed and need to be processed. */
-      ret = con->idle_handler (con);
+      ret = MHD_connection_handle_idle (con);
     }
   /* Fast track for fast connections. */
   /* If full request was read by single read_handler() invocation
-     and headers were completely prepared by single idle_handler()
+     and headers were completely prepared by single 
MHD_connection_handle_idle()
      then try not to wait for next sockets polling and send response
      immediately.
      As writeability of socket was not checked and it may have
@@ -1191,17 +1191,17 @@ call_handlers (struct MHD_Connection *con,
       if (MHD_CONNECTION_HEADERS_SENDING == con->state)
         {
           con->write_handler (con);
-          /* Always call 'idle_handler()' after each read/write. */
-          ret = con->idle_handler (con);
+          /* Always call 'MHD_connection_handle_idle()' after each read/write. 
*/
+          ret = MHD_connection_handle_idle (con);
         }
       /* If all headers were sent by single write_handler() and
-       * response body is prepared by single idle_handler()
+       * response body is prepared by single MHD_connection_handle_idle()
        * call - continue. */
       if ((MHD_CONNECTION_NORMAL_BODY_READY == con->state) ||
           (MHD_CONNECTION_CHUNKED_BODY_READY == con->state))
         {
           con->write_handler (con);
-          ret = con->idle_handler (con);
+          ret = MHD_connection_handle_idle (con);
         }
     }
 
@@ -2118,7 +2118,7 @@ thread_main_handle_connection (void *data)
                                (daemon->shutdown) ?
                                MHD_REQUEST_TERMINATED_DAEMON_SHUTDOWN:
                                MHD_REQUEST_TERMINATED_WITH_ERROR);
-      con->idle_handler (con);
+      MHD_connection_handle_idle (con);
     }
 exit:
   if (NULL != con->response)
@@ -4428,7 +4428,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
     }
 
   /* Finally, handle timed-out connections; we need to do this here
-     as the epoll mechanism won't call the 'idle_handler' on everything,
+     as the epoll mechanism won't call the 'MHD_connection_handle_idle()' on 
everything,
      as the other event loops do.  As timeouts do not get an explicit
      event, we need to find those connections that might have timed out
      here.
@@ -4439,7 +4439,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
   while (NULL != (pos = prev))
     {
       prev = pos->prevX;
-      pos->idle_handler (pos);
+      MHD_connection_handle_idle (pos);
     }
   /* Connections with the default timeout are sorted by prepending
      them to the head of the list whenever we touch the connection;
@@ -4449,7 +4449,7 @@ MHD_epoll (struct MHD_Daemon *daemon,
   while (NULL != (pos = prev))
     {
       prev = pos->prevX;
-      pos->idle_handler (pos);
+      MHD_connection_handle_idle (pos);
       if (MHD_CONNECTION_CLOSED != pos->state)
        break; /* sorted by timeout, no need to visit the rest! */
     }
diff --git a/src/microhttpd/internal.h b/src/microhttpd/internal.h
index 731416d9..7cb70b42 100644
--- a/src/microhttpd/internal.h
+++ b/src/microhttpd/internal.h
@@ -936,12 +936,6 @@ struct MHD_Connection
   int (*write_handler) (struct MHD_Connection *connection);
 
   /**
-   * Handler used for processing idle connection operations
-   * @sa #MHD_connection_handle_idle, #MHD_tls_connection_handle_idle
-   */
-  int (*idle_handler) (struct MHD_Connection *connection);
-
-  /**
    * Function used for reading HTTP request stream.
    */
   ReceiveCallback recv_cls;

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

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