Просмотр исходного кода

Speed-up closure of upgraded connection with daemon shutdown

Evgeny Grin (Karlson2k) 5 лет назад
Родитель
Сommit
9a224cc6ed
1 измененных файлов с 6 добавлено и 4 удалено
  1. 6 4
      src/microhttpd/daemon.c

+ 6 - 4
src/microhttpd/daemon.c

@@ -1734,8 +1734,9 @@ thread_main_connection_upgrade (struct MHD_Connection *con)
       {
         struct timeval*tvp;
         struct timeval tv;
-        if ( (con->tls_read_ready) &&
-             (urh->in_buffer_used < urh->in_buffer_size))
+        if (((con->tls_read_ready) &&
+             (urh->in_buffer_used < urh->in_buffer_size)) ||
+            (daemon->shutdown))
         {         /* No need to wait if incoming data is already pending in TLS buffers. */
           tv.tv_sec = 0;
           tv.tv_usec = 0;
@@ -1792,8 +1793,9 @@ thread_main_connection_upgrade (struct MHD_Connection *con)
 
       urh_update_pollfd (urh, p);
 
-      if ( (con->tls_read_ready) &&
-           (urh->in_buffer_used < urh->in_buffer_size))
+      if (((con->tls_read_ready) &&
+           (urh->in_buffer_used < urh->in_buffer_size)) ||
+          (daemon->shutdown))
         timeout = 0;     /* No need to wait if incoming data is already pending in TLS buffers. */
       else
         timeout = -1;