* @brief Start the HTTPS server. */
| 1505 | * @brief Start the HTTPS server. |
| 1506 | */ |
| 1507 | void start() { |
| 1508 | auto shutdown_event = mail::man->event<bool>(mail::shutdown); |
| 1509 | auto port_https = net::map_port(PORT_HTTPS); |
| 1510 | auto address_family = net::af_from_enum_string(config::sunshine.address_family); |
| 1511 | https_server_t server { config::nvhttp.cert, config::nvhttp.pkey }; |
| 1512 | server.default_resource["DELETE"] = [](resp_https_t response, req_https_t request) { |
| 1513 | bad_request(response, request); |
| 1514 | }; |
| 1515 | server.default_resource["PATCH"] = [](resp_https_t response, req_https_t request) { |
| 1516 | bad_request(response, request); |
| 1517 | }; |
| 1518 | server.default_resource["POST"] = [](resp_https_t response, req_https_t request) { |
| 1519 | bad_request(response, request); |
| 1520 | }; |
| 1521 | server.default_resource["PUT"] = [](resp_https_t response, req_https_t request) { |
| 1522 | bad_request(response, request); |
| 1523 | }; |
| 1524 | server.default_resource["GET"] = not_found; |
| 1525 | server.resource["^/$"]["GET"] = getIndexPage; |
| 1526 | server.resource["^/pin/?$"]["GET"] = getPinPage; |
| 1527 | server.resource["^/apps/?$"]["GET"] = getAppsPage; |
| 1528 | server.resource["^/config/?$"]["GET"] = getConfigPage; |
| 1529 | server.resource["^/password/?$"]["GET"] = getPasswordPage; |
| 1530 | server.resource["^/welcome/?$"]["GET"] = getWelcomePage; |
| 1531 | server.resource["^/login/?$"]["GET"] = getLoginPage; |
| 1532 | server.resource["^/troubleshooting/?$"]["GET"] = getTroubleshootingPage; |
| 1533 | server.resource["^/api/login"]["POST"] = login; |
| 1534 | server.resource["^/api/pin$"]["POST"] = savePin; |
| 1535 | server.resource["^/api/otp$"]["POST"] = getOTP; |
| 1536 | server.resource["^/api/apps$"]["GET"] = getApps; |
| 1537 | server.resource["^/api/apps$"]["POST"] = saveApp; |
| 1538 | server.resource["^/api/apps/reorder$"]["POST"] = reorderApps; |
| 1539 | server.resource["^/api/apps/delete$"]["POST"] = deleteApp; |
| 1540 | server.resource["^/api/apps/launch$"]["POST"] = launchApp; |
| 1541 | server.resource["^/api/apps/close$"]["POST"] = closeApp; |
| 1542 | server.resource["^/api/logs$"]["GET"] = getLogs; |
| 1543 | server.resource["^/api/config$"]["GET"] = getConfig; |
| 1544 | server.resource["^/api/config$"]["POST"] = saveConfig; |
| 1545 | server.resource["^/api/configLocale$"]["GET"] = getLocale; |
| 1546 | server.resource["^/api/restart$"]["POST"] = restart; |
| 1547 | server.resource["^/api/quit$"]["POST"] = quit; |
| 1548 | server.resource["^/api/reset-display-device-persistence$"]["POST"] = resetDisplayDevicePersistence; |
| 1549 | server.resource["^/api/password$"]["POST"] = savePassword; |
| 1550 | server.resource["^/api/clients/unpair-all$"]["POST"] = unpairAll; |
| 1551 | server.resource["^/api/clients/list$"]["GET"] = getClients; |
| 1552 | server.resource["^/api/clients/update$"]["POST"] = updateClient; |
| 1553 | server.resource["^/api/clients/unpair$"]["POST"] = unpair; |
| 1554 | server.resource["^/api/clients/disconnect$"]["POST"] = disconnect; |
| 1555 | server.resource["^/api/covers/upload$"]["POST"] = uploadCover; |
| 1556 | server.resource["^/images/apollo.ico$"]["GET"] = getFaviconImage; |
| 1557 | server.resource["^/images/logo-apollo-45.png$"]["GET"] = getApolloLogoImage; |
| 1558 | server.resource["^/assets\\/.+$"]["GET"] = getNodeModules; |
| 1559 | server.config.reuse_address = true; |
| 1560 | server.config.address = net::af_to_any_address_string(address_family); |
| 1561 | server.config.port = port_https; |
| 1562 | |
| 1563 | auto accept_and_run = [&](auto *server) { |
| 1564 | try { |
nothing calls this directly
no test coverage detected