22 #ifndef _LIBS_WEBVIEW_REQUEST_DISPATCHER_H_
23 #define _LIBS_WEBVIEW_REQUEST_DISPATCHER_H_
25 #include <utils/time/time.h>
29 #include <microhttpd.h>
35 class WebRequestProcessor;
37 class WebPageHeaderGenerator;
38 class WebPageFooterGenerator;
40 class DynamicWebReply;
41 class WebUserVerifier;
43 class WebviewAccessLog;
46 class WebRequestDispatcher
50 WebPageHeaderGenerator *headergen = 0,
55 struct MHD_Connection *connection,
59 const char * upload_data,
60 size_t * upload_data_size,
61 void ** session_data);
64 struct MHD_Connection * connection,
66 enum MHD_RequestTerminationCode toe);
68 static void *
uri_log_cb(
void *cls,
const char *uri);
72 void setup_cors(
bool allow_all, std::vector<std::string> &&origins,
unsigned int max_age);
78 struct MHD_Response *prepare_static_response(
StaticWebReply *sreply);
79 int queue_static_reply(
struct MHD_Connection *connection,
82 int queue_dynamic_reply(
struct MHD_Connection *connection,
85 int queue_basic_auth_fail(
struct MHD_Connection *connection,
WebRequest *request);
86 int process_request(
struct MHD_Connection *connection,
90 const char * upload_data,
91 size_t * upload_data_size,
92 void ** session_data);
93 void *log_uri(
const char *uri);
95 void request_completed(
WebRequest *request, MHD_RequestTerminationCode term_code);
101 std::string active_baseurl_;
108 unsigned int active_requests_;
112 bool cors_allow_all_;
113 std::vector<std::string> cors_origins_;
114 unsigned int cors_max_age_;