Revert "Connection and websockets fixes"

This reverts commit c00500bcb9c5145f5cacb78bbe3dd694fb85ba0a.

Reason: Makes image upload fail

Tested: Image upload works again

requests.post(
         'https://{}/redfish/v1/UpdateService'.format(args.address),
         data=file.read(), verify=False,
         auth=(args.username, args.password))

Change-Id: Iaf780d052d98accdead32e87f468002f5141b19a
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/http/http_server.h b/http/http_server.h
index 6e63cbd..df42214 100644
--- a/http/http_server.h
+++ b/http/http_server.h
@@ -44,8 +44,7 @@
         ioService(std::move(io)),
         acceptor(std::move(acceptor)),
         signals(*ioService, SIGINT, SIGTERM, SIGHUP), tickTimer(*ioService),
-        timer(*ioService), handler(handler), middlewares(middlewares),
-        adaptorCtx(adaptor_ctx)
+        handler(handler), middlewares(middlewares), adaptorCtx(adaptor_ctx)
     {
     }
 
@@ -124,9 +123,11 @@
             return this->dateStr;
         };
 
+        boost::asio::steady_timer timer(*ioService);
         timer.expires_after(std::chrono::seconds(1));
 
-        timerHandler = [this](const boost::system::error_code& ec) {
+        std::function<void(const boost::system::error_code& ec)> timerHandler;
+        timerHandler = [&](const boost::system::error_code& ec) {
             if (ec)
             {
                 return;
@@ -230,8 +231,8 @@
                                        boost::asio::ip::tcp::socket>>::value)
         {
             adaptorTemp = Adaptor(*ioService, *adaptorCtx);
-            auto p =
-                std::make_shared<Connection<Adaptor, Handler, Middlewares...>>(
+            Connection<Adaptor, Handler, Middlewares...>* p =
+                new Connection<Adaptor, Handler, Middlewares...>(
                     *ioService, handler, serverName, middlewares,
                     getCachedDateStr, timerQueue,
                     std::move(adaptorTemp.value()));
@@ -244,14 +245,18 @@
                                                *this->ioService,
                                                [p] { p->start(); });
                                        }
+                                       else
+                                       {
+                                           delete p;
+                                       }
                                        doAccept();
                                    });
         }
         else
         {
             adaptorTemp = Adaptor(*ioService);
-            auto p =
-                std::make_shared<Connection<Adaptor, Handler, Middlewares...>>(
+            Connection<Adaptor, Handler, Middlewares...>* p =
+                new Connection<Adaptor, Handler, Middlewares...>(
                     *ioService, handler, serverName, middlewares,
                     getCachedDateStr, timerQueue,
                     std::move(adaptorTemp.value()));
@@ -263,6 +268,10 @@
                         boost::asio::post(*this->ioService,
                                           [p] { p->start(); });
                     }
+                    else
+                    {
+                        delete p;
+                    }
                     doAccept();
                 });
         }
@@ -275,7 +284,6 @@
     std::unique_ptr<tcp::acceptor> acceptor;
     boost::asio::signal_set signals;
     boost::asio::steady_timer tickTimer;
-    boost::asio::steady_timer timer;
 
     std::string dateStr;
 
@@ -284,7 +292,6 @@
 
     std::chrono::milliseconds tickInterval{};
     std::function<void()> tickFunction;
-    std::function<void(const boost::system::error_code& ec)> timerHandler;
 
     std::tuple<Middlewares...>* middlewares;