diff --git a/http/http_server.hpp b/http/http_server.hpp
index b22fae2..9fa927a 100644
--- a/http/http_server.hpp
+++ b/http/http_server.hpp
@@ -34,8 +34,7 @@
     Server(Handler* handlerIn, boost::asio::ip::tcp::acceptor&& acceptorIn,
            std::shared_ptr<boost::asio::ssl::context> adaptorCtxIn,
            std::shared_ptr<boost::asio::io_context> io) :
-        ioService(std::move(io)),
-        acceptor(std::move(acceptorIn)),
+        ioService(std::move(io)), acceptor(std::move(acceptorIn)),
         signals(*ioService, SIGINT, SIGTERM, SIGHUP), handler(handlerIn),
         adaptorCtx(std::move(adaptorCtxIn))
     {}
@@ -93,24 +92,24 @@
     {
         signals.async_wait(
             [this](const boost::system::error_code& ec, int signalNo) {
-            if (ec)
-            {
-                BMCWEB_LOG_INFO("Error in signal handler{}", ec.message());
-            }
-            else
-            {
-                if (signalNo == SIGHUP)
+                if (ec)
                 {
-                    BMCWEB_LOG_INFO("Receivied reload signal");
-                    loadCertificate();
-                    startAsyncWaitForSignal();
+                    BMCWEB_LOG_INFO("Error in signal handler{}", ec.message());
                 }
                 else
                 {
-                    stop();
+                    if (signalNo == SIGHUP)
+                    {
+                        BMCWEB_LOG_INFO("Receivied reload signal");
+                        loadCertificate();
+                        startAsyncWaitForSignal();
+                    }
+                    else
+                    {
+                        stop();
+                    }
                 }
-            }
-        });
+            });
     }
 
     void stop()
