]> granicus.if.org Git - apache/commitdiff
core: Avoid a compiler warning when NO_LINGCLOSE is used (-Wunreachable-code).
authorYann Ylavic <ylavic@apache.org>
Tue, 15 Sep 2015 16:34:06 +0000 (16:34 +0000)
committerYann Ylavic <ylavic@apache.org>
Tue, 15 Sep 2015 16:34:06 +0000 (16:34 +0000)
Also, check c->aborted before apr_socket_shutdown() because it is set earlier,
and there is no point in calling shutdown() before close().

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1703248 13f79535-47bb-0310-9956-ffa450edef68

server/connection.c

index 4f862e4ece611b7ebb2263897b5f01a7756e3548..b1edaab52c6e6561a53383b26277c13bc1a32469 100644 (file)
@@ -116,12 +116,6 @@ AP_DECLARE(int) ap_start_lingering_close(conn_rec *c)
         ap_update_child_status(c->sbh, SERVER_CLOSING, NULL);
     }
 
-#ifdef NO_LINGCLOSE
-    ap_flush_conn(c); /* just close it */
-    apr_socket_close(csd);
-    return 1;
-#endif
-
     /* Close the connection, being careful to send out whatever is still
      * in our buffers.  If possible, try to avoid a hard close until the
      * client has ACKed our FIN and/or has stopped sending us data.
@@ -130,21 +124,20 @@ AP_DECLARE(int) ap_start_lingering_close(conn_rec *c)
     /* Send any leftover data to the client, but never try to again */
     ap_flush_conn(c);
 
-    if (c->aborted) {
-        apr_socket_close(csd);
-        return 1;
-    }
-
+#ifdef NO_LINGCLOSE
+    apr_socket_close(csd);
+    return 1;
+#else
     /* Shut down the socket for write, which will send a FIN
      * to the peer.
      */
-    if (apr_socket_shutdown(csd, APR_SHUTDOWN_WRITE) != APR_SUCCESS
-        || c->aborted) {
+    if (c->aborted
+            || apr_socket_shutdown(csd, APR_SHUTDOWN_WRITE) != APR_SUCCESS) {
         apr_socket_close(csd);
         return 1;
     }
-
     return 0;
+#endif
 }
 
 AP_DECLARE(void) ap_lingering_close(conn_rec *c)