summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/webserver_main.cpp151
-rw-r--r--src/webserver_run.cpp153
2 files changed, 155 insertions, 149 deletions
diff --git a/src/webserver_main.cpp b/src/webserver_main.cpp
index cc8e1bcfcf..ee752b0239 100644
--- a/src/webserver_main.cpp
+++ b/src/webserver_main.cpp
@@ -1,159 +1,12 @@
-#include "bmcweb_config.h"
-#include "app.hpp"
-#include "cors_preflight.hpp"
-#include "dbus_monitor.hpp"
-#include "dbus_singleton.hpp"
-#include "event_service_manager.hpp"
-#include "google/google_service_root.hpp"
-#include "hostname_monitor.hpp"
-#include "ibm/management_console_rest.hpp"
-#include "image_upload.hpp"
-#include "kvm_websocket.hpp"
-#include "login_routes.hpp"
-#include "nbd_proxy.hpp"
-#include "obmc_console.hpp"
-#include "openbmc_dbus_rest.hpp"
-#include "redfish.hpp"
-#include "redfish_aggregator.hpp"
-#include "security_headers.hpp"
-#include "ssl_key_handler.hpp"
-#include "user_monitor.hpp"
-#include "vm_websocket.hpp"
-#include "webassets.hpp"
-#include <systemd/sd-daemon.h>
-
-#include <boost/asio/io_context.hpp>
-#include <sdbusplus/asio/connection.hpp>
-#include <sdbusplus/bus.hpp>
-#include <sdbusplus/server.hpp>
+#include "logging.hpp"
+#include "webserver_run.hpp"
#include <exception>
#include <memory>
#include <string>
-constexpr int defaultPort = 18080;
-
-inline void setupSocket(crow::App& app)
-{
- int listenFd = sd_listen_fds(0);
- if (1 == listenFd)
- {
- BMCWEB_LOG_INFO("attempting systemd socket activation");
- if (sd_is_socket_inet(SD_LISTEN_FDS_START, AF_UNSPEC, SOCK_STREAM, 1,
- 0) != 0)
- {
- BMCWEB_LOG_INFO("Starting webserver on socket handle {}",
- SD_LISTEN_FDS_START);
- app.socket(SD_LISTEN_FDS_START);
- }
- else
- {
- BMCWEB_LOG_INFO(
- "bad incoming socket, starting webserver on port {}",
- defaultPort);
- app.port(defaultPort);
- }
- }
- else
- {
- BMCWEB_LOG_INFO("Starting webserver on port {}", defaultPort);
- app.port(defaultPort);
- }
-}
-
-static int run()
-{
- auto io = std::make_shared<boost::asio::io_context>();
- App app(io);
-
- sdbusplus::asio::connection systemBus(*io);
- crow::connections::systemBus = &systemBus;
-
- // Static assets need to be initialized before Authorization, because auth
- // needs to build the whitelist from the static routes
-
-#ifdef BMCWEB_ENABLE_STATIC_HOSTING
- crow::webassets::requestRoutes(app);
-#endif
-
-#ifdef BMCWEB_ENABLE_KVM
- crow::obmc_kvm::requestRoutes(app);
-#endif
-
-#ifdef BMCWEB_ENABLE_REDFISH
- redfish::RedfishService redfish(app);
-
- // Create EventServiceManager instance and initialize Config
- redfish::EventServiceManager::getInstance(&*io);
-
-#ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
- // Create RedfishAggregator instance and initialize Config
- redfish::RedfishAggregator::getInstance(&*io);
-#endif
-#endif
-
-#ifdef BMCWEB_ENABLE_DBUS_REST
- crow::dbus_monitor::requestRoutes(app);
- crow::image_upload::requestRoutes(app);
- crow::openbmc_mapper::requestRoutes(app);
-#endif
-
-#ifdef BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET
- crow::obmc_console::requestRoutes(app);
-#endif
-
-#ifdef BMCWEB_ENABLE_VM_WEBSOCKET
- crow::obmc_vm::requestRoutes(app);
-#endif
-
-#ifdef BMCWEB_ENABLE_IBM_MANAGEMENT_CONSOLE
- crow::ibm_mc::requestRoutes(app);
- crow::ibm_mc_lock::Lock::getInstance();
-#endif
-
-#ifdef BMCWEB_ENABLE_GOOGLE_API
- crow::google_api::requestRoutes(app);
-#endif
-
- if (bmcwebInsecureDisableXssPrevention != 0)
- {
- cors_preflight::requestRoutes(app);
- }
-
- crow::login_routes::requestRoutes(app);
-
- setupSocket(app);
-
-#ifdef BMCWEB_ENABLE_VM_NBDPROXY
- crow::nbd_proxy::requestRoutes(app);
-#endif
-
-#ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
- int rc = redfish::EventServiceManager::startEventLogMonitor(*io);
- if (rc != 0)
- {
- BMCWEB_LOG_ERROR("Redfish event handler setup failed...");
- return rc;
- }
-#endif
-
-#ifdef BMCWEB_ENABLE_SSL
- BMCWEB_LOG_INFO("Start Hostname Monitor Service...");
- crow::hostname_monitor::registerHostnameSignal();
-#endif
-
- bmcweb::registerUserRemovedSignal();
-
- app.run();
- io->run();
-
- crow::connections::systemBus = nullptr;
-
- return 0;
-}
-
int main(int /*argc*/, char** /*argv*/)
{
try
diff --git a/src/webserver_run.cpp b/src/webserver_run.cpp
new file mode 100644
index 0000000000..e5d272ead8
--- /dev/null
+++ b/src/webserver_run.cpp
@@ -0,0 +1,153 @@
+#include "webserver_run.hpp"
+
+#include "bmcweb_config.h"
+
+#include "app.hpp"
+#include "cors_preflight.hpp"
+#include "dbus_monitor.hpp"
+#include "dbus_singleton.hpp"
+#include "event_service_manager.hpp"
+#include "google/google_service_root.hpp"
+#include "hostname_monitor.hpp"
+#include "ibm/management_console_rest.hpp"
+#include "image_upload.hpp"
+#include "kvm_websocket.hpp"
+#include "login_routes.hpp"
+#include "nbd_proxy.hpp"
+#include "obmc_console.hpp"
+#include "openbmc_dbus_rest.hpp"
+#include "redfish.hpp"
+#include "redfish_aggregator.hpp"
+#include "security_headers.hpp"
+#include "ssl_key_handler.hpp"
+#include "user_monitor.hpp"
+#include "vm_websocket.hpp"
+#include "webassets.hpp"
+
+#include <systemd/sd-daemon.h>
+
+#include <boost/asio/io_context.hpp>
+#include <sdbusplus/asio/connection.hpp>
+#include <sdbusplus/bus.hpp>
+#include <sdbusplus/server.hpp>
+
+constexpr int defaultPort = 18080;
+
+static void setupSocket(crow::App& app)
+{
+ int listenFd = sd_listen_fds(0);
+ if (1 == listenFd)
+ {
+ BMCWEB_LOG_INFO("attempting systemd socket activation");
+ if (sd_is_socket_inet(SD_LISTEN_FDS_START, AF_UNSPEC, SOCK_STREAM, 1,
+ 0) != 0)
+ {
+ BMCWEB_LOG_INFO("Starting webserver on socket handle {}",
+ SD_LISTEN_FDS_START);
+ app.socket(SD_LISTEN_FDS_START);
+ }
+ else
+ {
+ BMCWEB_LOG_INFO(
+ "bad incoming socket, starting webserver on port {}",
+ defaultPort);
+ app.port(defaultPort);
+ }
+ }
+ else
+ {
+ BMCWEB_LOG_INFO("Starting webserver on port {}", defaultPort);
+ app.port(defaultPort);
+ }
+}
+
+int run()
+{
+ auto io = std::make_shared<boost::asio::io_context>();
+ App app(io);
+
+ sdbusplus::asio::connection systemBus(*io);
+ crow::connections::systemBus = &systemBus;
+
+ // Static assets need to be initialized before Authorization, because auth
+ // needs to build the whitelist from the static routes
+
+#ifdef BMCWEB_ENABLE_STATIC_HOSTING
+ crow::webassets::requestRoutes(app);
+#endif
+
+#ifdef BMCWEB_ENABLE_KVM
+ crow::obmc_kvm::requestRoutes(app);
+#endif
+
+#ifdef BMCWEB_ENABLE_REDFISH
+ redfish::RedfishService redfish(app);
+
+ // Create EventServiceManager instance and initialize Config
+ redfish::EventServiceManager::getInstance(&*io);
+
+#ifdef BMCWEB_ENABLE_REDFISH_AGGREGATION
+ // Create RedfishAggregator instance and initialize Config
+ redfish::RedfishAggregator::getInstance(&*io);
+#endif
+#endif
+
+#ifdef BMCWEB_ENABLE_DBUS_REST
+ crow::dbus_monitor::requestRoutes(app);
+ crow::image_upload::requestRoutes(app);
+ crow::openbmc_mapper::requestRoutes(app);
+#endif
+
+#ifdef BMCWEB_ENABLE_HOST_SERIAL_WEBSOCKET
+ crow::obmc_console::requestRoutes(app);
+#endif
+
+#ifdef BMCWEB_ENABLE_VM_WEBSOCKET
+ crow::obmc_vm::requestRoutes(app);
+#endif
+
+#ifdef BMCWEB_ENABLE_IBM_MANAGEMENT_CONSOLE
+ crow::ibm_mc::requestRoutes(app);
+ crow::ibm_mc_lock::Lock::getInstance();
+#endif
+
+#ifdef BMCWEB_ENABLE_GOOGLE_API
+ crow::google_api::requestRoutes(app);
+#endif
+
+ if (bmcwebInsecureDisableXssPrevention != 0)
+ {
+ cors_preflight::requestRoutes(app);
+ }
+
+ crow::login_routes::requestRoutes(app);
+
+ setupSocket(app);
+
+#ifdef BMCWEB_ENABLE_VM_NBDPROXY
+ crow::nbd_proxy::requestRoutes(app);
+#endif
+
+#ifndef BMCWEB_ENABLE_REDFISH_DBUS_LOG_ENTRIES
+ int rc = redfish::EventServiceManager::startEventLogMonitor(*io);
+ if (rc != 0)
+ {
+ BMCWEB_LOG_ERROR("Redfish event handler setup failed...");
+ return rc;
+ }
+#endif
+
+#ifdef BMCWEB_ENABLE_SSL
+ BMCWEB_LOG_INFO("Start Hostname Monitor Service...");
+ crow::hostname_monitor::registerHostnameSignal();
+#endif
+
+ bmcweb::registerUserRemovedSignal();
+
+ app.run();
+ io->run();
+
+ crow::connections::systemBus = nullptr;
+
+ return 0;
+}