class
Analyzer::Cpp::Httplib
- Analyzer::Cpp::Httplib
- Analyzer
- Reference
- Object
Overview
cpp-httplib (yhirose/cpp-httplib) — a header-only HTTP/HTTPS server & client
library. Routes are registered on a httplib::Server (or SSLServer)
instance: svr.Get("/path", handler), svr.Post, Put, Delete,
Patch, Options. The handler is either an inline lambda or a named
function. The library's Client type shares the same verb method names, so
we only treat calls on a server variable as routes.
Defined in:
analyzer/analyzers/cpp/httplib.crConstant Summary
-
BODY_ACCESS =
/\b(?:req|request)\s*\.\s*body\b/ -
CLIENT_DECL_BARE =
/\b(?:SSL)?Client\s*&?\s*([A-Za-z_][A-Za-z0-9_]*)/ -
CLIENT_DECL_QUALIFIED =
/\bhttplib::(?:SSL)?Client\s*&?\s*([A-Za-z_][A-Za-z0-9_]*)/ -
CPP_EXTENSIONS =
[".cpp", ".cc", ".cxx", ".h", ".hpp", ".hxx"] -
HEADER_ACCESSORS =
/\b(?:get_header_value|has_header)\s*\(\s*"([^"]+)"/ -
NAMED_PARAM_REGEX =
/:([A-Za-z_][A-Za-z0-9_]*)/ -
:namepath placeholder (cpp-httplib named params). -
PATH_PARAM_ACCESS =
/\bpath_params\s*(?:\.\s*at\s*\(\s*|\[\s*)"([^"]+)"/ -
QUERY_ACCESSORS =
/\b(?:get_param_value|has_param|get_file_value)\s*\(\s*"([^"]+)"/ -
Request accessors mined from a handler body.
-
REGEX_META =
/[()\[\]\\+*?^$|]/ -
Regex metacharacters that mark a route pattern as a regex (kept verbatim).
-
ROUTE_CALL_REGEX =
/\b([A-Za-z_][A-Za-z0-9_]*)\s*\.\s*(Get|Post|Put|Delete|Patch|Options)\s*\(/ -
receiver.Verb( — group 1 = receiver variable, group 2 = HTTP verb.
-
SERVER_DECL_BARE =
/\b(?:SSL)?Server\s*&?\s*([A-Za-z_][A-Za-z0-9_]*)/ -
SERVER_DECL_QUALIFIED =
/\bhttplib::(?:SSL)?Server\s*&?\s*([A-Za-z_][A-Za-z0-9_]*)/ -
httplib::Server / Server / SSLServer declarations and reference params.
-
VERBS =
{"Get" => "GET", "Post" => "POST", "Put" => "PUT", "Delete" => "DELETE", "Patch" => "PATCH", "Options" => "OPTIONS"}