![]() |
Sunshine v2026.319.132152
Self-hosted game stream host for Moonlight.
|
Declarations for the Web UI Config HTTP server. More...
#include <filesystem>#include <memory>#include <string>#include <nlohmann/json.hpp>#include <Simple-Web-Server/server_https.hpp>#include "thread_safe.h"Go to the source code of this file.
Macros | |
| #define | WEB_DIR SUNSHINE_ASSETS_DIR "/web/" |
Functions | |
| bool | confighttp::authenticate (const resp_https_t &response, const req_https_t &request) |
| Authenticate the user. | |
| void | confighttp::bad_request (const resp_https_t &response, const req_https_t &request, const std::string &error_message) |
| Send a 400 Bad Request response. | |
| void | confighttp::browseDirectory (const resp_https_t &response, const req_https_t &request) |
| Browse the server filesystem. | |
| nlohmann::json | confighttp::build_browse_entries (const std::filesystem::path &dir_path, const std::string &type_str) |
| Lists, filters, and sorts the entries of a directory for the browse API. | |
| bool | confighttp::check_app_index (const resp_https_t &response, const req_https_t &request, int index) |
| Validates the application index and sends an error response if invalid. | |
| bool | confighttp::check_content_type (const resp_https_t &response, const req_https_t &request, const std::string_view &contentType) |
| Validate the request content type and send a bad request when mismatched. | |
| std::string | confighttp::generate_csrf_token (const std::string &client_id) |
| Generate a new CSRF token for a client. | |
| std::string | confighttp::get_client_id (const req_https_t &request) |
| Get a unique client identifier for CSRF token management. | |
| nlohmann::json | confighttp::get_windows_drives () |
| Builds a JSON array of available Windows drive letters. | |
| void | confighttp::getAsset (const resp_https_t &response, const req_https_t &request) |
| Get an asset. | |
| void | confighttp::getCSRFToken (const resp_https_t &response, const req_https_t &request) |
| Get a CSRF token for the authenticated user. | |
| void | confighttp::getLocale (const resp_https_t &response, const req_https_t &request) |
| Get the locale setting. This endpoint does not require authentication. | |
| void | confighttp::getPage (const resp_https_t &response, const req_https_t &request, const char *html_file, const bool require_auth, const bool redirect_if_username) |
| Get an HTML page. | |
| bool | confighttp::is_browsable_executable (const std::filesystem::directory_entry &entry, const std::filesystem::file_status &status) |
| Checks whether a directory entry qualifies as an executable file. | |
| void | confighttp::not_found (const resp_https_t &response, const req_https_t &request, const std::string &error_message) |
| Send a 404 Not Found response. | |
| void | confighttp::print_req (const req_https_t &request) |
| Log the request details. | |
| void | confighttp::send_redirect (const resp_https_t &response, const req_https_t &request, const char *path) |
| Send a redirect response. | |
| void | confighttp::send_response (const resp_https_t &response, const nlohmann::json &output_tree) |
| Send a response. | |
| void | confighttp::send_unauthorized (const resp_https_t &response, const req_https_t &request) |
| Send a 401 Unauthorized response. | |
| void | confighttp::start () |
| bool | confighttp::validate_csrf_token (const resp_https_t &response, const req_https_t &request, const std::string &client_id) |
Variables | |
| const std::map< std::string, std::string > | mime_types |
| constexpr auto | confighttp::PORT_HTTPS = 1 |
Declarations for the Web UI Config HTTP server.
| bool confighttp::authenticate | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Authenticate the user.
| response | The HTTP response object. |
| request | The HTTP request object. |
| void confighttp::bad_request | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| const std::string & | error_message ) |
Send a 400 Bad Request response.
| response | The HTTP response object. |
| request | The HTTP request object. |
| error_message | The error message to include in the response. |
| void confighttp::browseDirectory | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Browse the server filesystem.
| response | The HTTP response object. |
| request | The HTTP request object. |
| nlohmann::json confighttp::build_browse_entries | ( | const std::filesystem::path & | dir_path, |
| const std::string & | type_str ) |
Lists, filters, and sorts the entries of a directory for the browse API.
| dir_path | The directory to list. |
| type_str | Filter type: "directory", "executable", "file", or "any". |
| bool confighttp::check_app_index | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| int | index ) |
Validates the application index and sends an error response if invalid.
| response | The HTTP response object. |
| request | The HTTP request object. |
| index | The application index/id. |
| bool confighttp::check_content_type | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| const std::string_view & | contentType ) |
Validate the request content type and send a bad request when mismatched.
| response | The HTTP response object. |
| request | The HTTP request object. |
| contentType | The expected content type |
| std::string confighttp::generate_csrf_token | ( | const std::string & | client_id | ) |
Generate a new CSRF token for a client.
| client_id | A unique identifier for the client (e.g., session ID or username). |
| std::string confighttp::get_client_id | ( | const req_https_t & | request | ) |
Get a unique client identifier for CSRF token management.
| request | The HTTP request object. |
| nlohmann::json confighttp::get_windows_drives | ( | ) |
Builds a JSON array of available Windows drive letters.
| void confighttp::getAsset | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Get an asset.
| response | The HTTP response object. |
| request | The HTTP request object. |
| void confighttp::getCSRFToken | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Get a CSRF token for the authenticated user.
| response | The HTTP response object. |
| request | The HTTP request object. |
| void confighttp::getLocale | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Get the locale setting. This endpoint does not require authentication.
| response | The HTTP response object. |
| request | The HTTP request object. |
| void confighttp::getPage | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| const char * | html_file, | ||
| const bool | require_auth, | ||
| const bool | redirect_if_username ) |
Get an HTML page.
| response | The HTTP response object. |
| request | The HTTP request object. |
| html_file | The HTML file to serve (relative to WEB_DIR). |
| require_auth | Whether to require authentication (default: true). |
| redirect_if_username | If true, redirect to "/" when the username is set (for welcome page). |
| bool confighttp::is_browsable_executable | ( | const std::filesystem::directory_entry & | entry, |
| const std::filesystem::file_status & | status ) |
Checks whether a directory entry qualifies as an executable file.
| entry | The directory entry to check. |
| status | The cached file status for the entry. |
| void confighttp::not_found | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| const std::string & | error_message ) |
Send a 404 Not Found response.
| response | The HTTP response object. |
| request | The HTTP request object. |
| error_message | The error message to include in the response. |
| void confighttp::print_req | ( | const req_https_t & | request | ) |
Log the request details.
| request | The HTTP request object. |
| void confighttp::send_redirect | ( | const resp_https_t & | response, |
| const req_https_t & | request, | ||
| const char * | path ) |
Send a redirect response.
| response | The HTTP response object. |
| request | The HTTP request object. |
| path | The path to redirect to. |
| void confighttp::send_response | ( | const resp_https_t & | response, |
| const nlohmann::json & | output_tree ) |
Send a response.
| response | The HTTP response object. |
| output_tree | The JSON tree to send. |
| void confighttp::send_unauthorized | ( | const resp_https_t & | response, |
| const req_https_t & | request ) |
Send a 401 Unauthorized response.
| response | The HTTP response object. |
| request | The HTTP request object. |
| const std::map<std::string, std::string> mime_types |