Fawkes API
Fawkes Development Version
|
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
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_;
WebRequestDispatcher(WebUrlManager *url_manager, WebPageHeaderGenerator *headergen=0, WebPageFooterGenerator *footergen=0)
Constructor.
~WebRequestDispatcher()
Destructor.
static int process_request_cb(void *callback_data, struct MHD_Connection *connection, const char *url, const char *method, const char *version, const char *upload_data, size_t *upload_data_size, void **session_data)
Process request callback for libmicrohttpd.
void setup_cors(bool allow_all, std::vector< std::string > &&origins, unsigned int max_age)
Setup cross-origin resource sharing.
unsigned int active_requests() const
Get number of active requests.
static void request_completed_cb(void *cls, struct MHD_Connection *connection, void **con_cls, enum MHD_RequestTerminationCode toe)
Process request completion.
static void * uri_log_cb(void *cls, const char *uri)
Callback for new requests.
Time last_request_completion_time() const
Get time when last request was completed.
void setup_basic_auth(const char *realm, WebUserVerifier *verifier)
Setup basic authentication.
void setup_access_log(const char *filename)
Setup access log.