|
| template<class T, class... Args> |
| std::enable_if<!std::is_array< T >::value, std::unique_ptr< T > >::type | make_unique (Args &&...args) |
| |
| template<class T> |
| std::enable_if< std::is_array< T >::value, std::unique_ptr< T > >::type | make_unique (std::size_t n) |
| |
| template<typename T> |
| from_chars_result< T > | from_chars (const char *first, const char *last, T &value, int base=10) |
| |
| from_chars_result< double > | from_chars (const char *first, const char *last, double &value) |
| |
| bool | parse_port (const char *s, size_t len, int &port) |
| |
| bool | parse_port (const std::string &s, int &port) |
| |
| template<typename T> |
| any_type_id | any_typeid () noexcept |
| |
| int | close_socket (socket_t sock) |
| |
| ssize_t | write_headers (Stream &strm, const Headers &headers) |
| |
| bool | set_socket_opt_time (socket_t sock, int level, int optname, time_t sec, time_t usec) |
| |
| ssize_t | read_body_content (Stream *stream, BodyReader &br, char *buf, size_t len) |
| |
| template<typename T, typename U> |
| void | duration_to_sec_and_usec (const T &duration, U callback) |
| |
| template<size_t N> |
| constexpr size_t | str_len (const char(&)[N]) |
| |
| bool | is_numeric (const std::string &str) |
| |
| size_t | get_header_value_u64 (const Headers &headers, const std::string &key, size_t def, size_t id, bool &is_invalid_value) |
| |
| size_t | get_header_value_u64 (const Headers &headers, const std::string &key, size_t def, size_t id) |
| |
| std::string | make_host_and_port_string (const std::string &host, int port, bool is_ssl) |
| |
| std::string | trim_copy (const std::string &s) |
| |
| void | divide (const char *data, std::size_t size, char d, std::function< void(const char *, std::size_t, const char *, std::size_t)> fn) |
| |
| void | divide (const std::string &str, char d, std::function< void(const char *, std::size_t, const char *, std::size_t)> fn) |
| |
| void | split (const char *b, const char *e, char d, std::function< void(const char *, const char *)> fn) |
| |
| void | split (const char *b, const char *e, char d, size_t m, std::function< void(const char *, const char *)> fn) |
| |
| bool | process_client_socket (socket_t sock, time_t read_timeout_sec, time_t read_timeout_usec, time_t write_timeout_sec, time_t write_timeout_usec, time_t max_timeout_msec, std::chrono::time_point< std::chrono::steady_clock > start_time, std::function< bool(Stream &)> callback) |
| |
| socket_t | create_client_socket (const std::string &host, const std::string &ip, int port, int address_family, bool tcp_nodelay, bool ipv6_v6only, SocketOptions socket_options, time_t connection_timeout_sec, time_t connection_timeout_usec, time_t read_timeout_sec, time_t read_timeout_usec, time_t write_timeout_sec, time_t write_timeout_usec, const std::string &intf, Error &error) |
| |
| const char * | get_header_value (const Headers &headers, const std::string &key, const char *def, size_t id) |
| |
| std::string | params_to_query_str (const Params ¶ms) |
| |
| void | parse_query_text (const char *data, std::size_t size, Params ¶ms) |
| |
| void | parse_query_text (const std::string &s, Params ¶ms) |
| |
| bool | parse_multipart_boundary (const std::string &content_type, std::string &boundary) |
| |
| bool | parse_range_header (const std::string &s, Ranges &ranges) |
| |
| bool | parse_accept_header (const std::string &s, std::vector< std::string > &content_types) |
| |
| ssize_t | send_socket (socket_t sock, const void *ptr, size_t size, int flags) |
| |
| ssize_t | read_socket (socket_t sock, void *ptr, size_t size, int flags) |
| |
| EncodingType | encoding_type (const Request &req, const Response &res) |
| |
| bool | parse_trailers (stream_line_reader &line_reader, Headers &dest, const Headers &src_headers) |
| |
| bool | set_socket_opt_impl (socket_t sock, int level, int optname, const void *optval, socklen_t optlen) |
| |
| bool | set_socket_opt (socket_t sock, int level, int optname, int optval) |
| |
| bool | is_hex (char c, int &v) |
| |
| bool | from_hex_to_i (const std::string &s, size_t i, size_t cnt, int &val) |
| |
| std::string | from_i_to_hex (size_t n) |
| |
| std::string | compute_etag (const FileStat &fs) |
| |
| std::string | file_mtime_to_http_date (time_t mtime) |
| |
| time_t | parse_http_date (const std::string &date_str) |
| |
| bool | is_weak_etag (const std::string &s) |
| |
| bool | is_strong_etag (const std::string &s) |
| |
| size_t | to_utf8 (int code, char *buff) |
| |
| std::string | base64_encode (const std::string &in) |
| |
| std::string | sha1 (const std::string &input) |
| |
| std::string | websocket_accept_key (const std::string &client_key) |
| |
| bool | is_websocket_upgrade (const Request &req) |
| |
| bool | write_websocket_frame (Stream &strm, ws::Opcode opcode, const char *data, size_t len, bool fin, bool mask) |
| |
| bool | is_valid_path (const std::string &path) |
| |
| bool | canonicalize_path (const char *path, std::string &resolved) |
| |
| bool | is_path_within_base (const std::string &resolved_path, const std::string &resolved_base) |
| |
| std::string | encode_path (const std::string &s) |
| |
| std::string | file_extension (const std::string &path) |
| |
| bool | is_space_or_tab (char c) |
| |
| template<typename T> |
| bool | parse_header (const char *beg, const char *end, T fn) |
| |
| std::pair< size_t, size_t > | trim (const char *b, const char *e, size_t left, size_t right) |
| |
| std::string | trim_double_quotes_copy (const std::string &s) |
| |
| bool | split_find (const char *b, const char *e, char d, size_t m, std::function< bool(const char *, const char *)> fn) |
| |
| bool | split_find (const char *b, const char *e, char d, std::function< bool(const char *, const char *)> fn) |
| |
| template<typename T> |
| ssize_t | handle_EINTR (T fn) |
| |
| int | poll_wrapper (struct pollfd *fds, nfds_t nfds, int timeout) |
| |
| ssize_t | select_impl (socket_t sock, short events, time_t sec, time_t usec) |
| |
| ssize_t | select_read (socket_t sock, time_t sec, time_t usec) |
| |
| ssize_t | select_write (socket_t sock, time_t sec, time_t usec) |
| |
| Error | wait_until_socket_is_ready (socket_t sock, time_t sec, time_t usec) |
| |
| bool | is_socket_alive (socket_t sock) |
| |
| bool | keep_alive (const std::atomic< socket_t > &svr_sock, socket_t sock, time_t keep_alive_timeout_sec) |
| |
| template<typename T> |
| bool | process_server_socket_core (const std::atomic< socket_t > &svr_sock, socket_t sock, size_t keep_alive_max_count, time_t keep_alive_timeout_sec, T callback) |
| |
| template<typename T> |
| bool | process_server_socket (const std::atomic< socket_t > &svr_sock, socket_t sock, size_t keep_alive_max_count, time_t keep_alive_timeout_sec, time_t read_timeout_sec, time_t read_timeout_usec, time_t write_timeout_sec, time_t write_timeout_usec, T callback) |
| |
| int | shutdown_socket (socket_t sock) |
| |
| std::string | escape_abstract_namespace_unix_domain (const std::string &s) |
| |
| std::string | unescape_abstract_namespace_unix_domain (const std::string &s) |
| |
| int | getaddrinfo_with_timeout (const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res, time_t timeout_sec) |
| |
| template<typename BindOrConnect> |
| socket_t | create_socket (const std::string &host, const std::string &ip, int port, int address_family, int socket_flags, bool tcp_nodelay, bool ipv6_v6only, SocketOptions socket_options, BindOrConnect bind_or_connect, time_t timeout_sec=0) |
| |
| void | set_nonblocking (socket_t sock, bool nonblocking) |
| |
| bool | is_connection_error () |
| |
| bool | bind_ip_address (socket_t sock, const std::string &host) |
| |
| std::string | if2ip (int address_family, const std::string &ifn) |
| |
| bool | get_ip_and_port (const struct sockaddr_storage &addr, socklen_t addr_len, std::string &ip, int &port) |
| |
| void | get_local_ip_and_port (socket_t sock, std::string &ip, int &port) |
| |
| void | get_remote_ip_and_port (socket_t sock, std::string &ip, int &port) |
| |
| constexpr unsigned int | str2tag_core (const char *s, size_t l, unsigned int h) |
| |
| unsigned int | str2tag (const std::string &s) |
| |
| std::string | find_content_type (const std::string &path, const std::map< std::string, std::string > &user_data, const std::string &default_content_type) |
| |
| std::string | extract_media_type (const std::string &content_type, std::map< std::string, std::string > *params=nullptr) |
| |
| bool | can_compress_content_type (const std::string &content_type) |
| |
| bool | parse_quality (const char *b, const char *e, std::string &token, double &quality) |
| |
| std::unique_ptr< decompressor > | create_decompressor (const std::string &encoding) |
| |
| std::pair< std::unique_ptr< compressor >, const char * > | create_compressor () |
| |
| bool | is_prohibited_header_name (const std::string &name) |
| |
| bool | has_header (const Headers &headers, const std::string &key) |
| |
| bool | read_headers (Stream &strm, Headers &headers) |
| |
| bool | read_websocket_upgrade_response (Stream &strm, const std::string &expected_accept, std::string &selected_subprotocol) |
| |
| ReadContentResult | read_content_with_length (Stream &strm, size_t len, DownloadProgress progress, ContentReceiverWithProgress out, size_t payload_max_length=(std::numeric_limits< size_t >::max)()) |
| |
| ReadContentResult | read_content_without_length (Stream &strm, size_t payload_max_length, ContentReceiverWithProgress out) |
| |
| template<typename T> |
| ReadContentResult | read_content_chunked (Stream &strm, T &x, size_t payload_max_length, ContentReceiverWithProgress out) |
| |
| bool | is_chunked_transfer_encoding (const Headers &headers) |
| |
| template<typename T, typename U> |
| bool | prepare_content_receiver (T &x, int &status, ContentReceiverWithProgress receiver, bool decompress, size_t payload_max_length, bool &exceed_payload_max_length, U callback) |
| |
| template<typename T> |
| bool | read_content (Stream &strm, T &x, size_t payload_max_length, int &status, DownloadProgress progress, ContentReceiverWithProgress receiver, bool decompress) |
| |
| ssize_t | write_request_line (Stream &strm, const std::string &method, const std::string &path) |
| |
| ssize_t | write_response_line (Stream &strm, int status) |
| |
| bool | write_data (Stream &strm, const char *d, size_t l) |
| |
| template<typename T> |
| bool | write_content_with_progress (Stream &strm, const ContentProvider &content_provider, size_t offset, size_t length, T is_shutting_down, const UploadProgress &upload_progress, Error &error) |
| |
| template<typename T> |
| bool | write_content (Stream &strm, const ContentProvider &content_provider, size_t offset, size_t length, T is_shutting_down, Error &error) |
| |
| template<typename T> |
| bool | write_content (Stream &strm, const ContentProvider &content_provider, size_t offset, size_t length, const T &is_shutting_down) |
| |
| template<typename T> |
| bool | write_content_without_length (Stream &strm, const ContentProvider &content_provider, const T &is_shutting_down) |
| |
| template<typename T, typename U> |
| bool | write_content_chunked (Stream &strm, const ContentProvider &content_provider, const T &is_shutting_down, U &compressor, Error &error) |
| |
| template<typename T, typename U> |
| bool | write_content_chunked (Stream &strm, const ContentProvider &content_provider, const T &is_shutting_down, U &compressor) |
| |
| template<typename T> |
| bool | redirect (T &cli, Request &req, Response &res, const std::string &path, const std::string &location, Error &error) |
| |
| std::string | normalize_query_string (const std::string &query) |
| |
| void | parse_disposition_params (const std::string &s, Params ¶ms) |
| |
| std::string | random_string (size_t length) |
| |
| std::string | make_multipart_data_boundary () |
| |
| bool | is_multipart_boundary_chars_valid (const std::string &boundary) |
| |
| template<typename T> |
| std::string | serialize_multipart_formdata_item_begin (const T &item, const std::string &boundary) |
| |
| std::string | serialize_multipart_formdata_item_end () |
| |
| std::string | serialize_multipart_formdata_finish (const std::string &boundary) |
| |
| std::string | serialize_multipart_formdata_get_content_type (const std::string &boundary) |
| |
| std::string | serialize_multipart_formdata (const UploadFormDataItems &items, const std::string &boundary, bool finish=true) |
| |
| size_t | get_multipart_content_length (const UploadFormDataItems &items, const std::string &boundary) |
| |
| ContentProvider | make_multipart_content_provider (const UploadFormDataItems &items, const std::string &boundary) |
| |
| void | coalesce_ranges (Ranges &ranges, size_t content_length) |
| |
| bool | range_error (Request &req, Response &res) |
| |
| std::pair< size_t, size_t > | get_range_offset_and_length (Range r, size_t content_length) |
| |
| std::string | make_content_range_header_field (const std::pair< size_t, size_t > &offset_and_length, size_t content_length) |
| |
| template<typename SToken, typename CToken, typename Content> |
| bool | process_multipart_ranges_data (const Request &req, const std::string &boundary, const std::string &content_type, size_t content_length, SToken stoken, CToken ctoken, Content content) |
| |
| void | make_multipart_ranges_data (const Request &req, Response &res, const std::string &boundary, const std::string &content_type, size_t content_length, std::string &data) |
| |
| size_t | get_multipart_ranges_data_length (const Request &req, const std::string &boundary, const std::string &content_type, size_t content_length) |
| |
| template<typename T> |
| bool | write_multipart_ranges_data (Stream &strm, const Request &req, Response &res, const std::string &boundary, const std::string &content_type, size_t content_length, const T &is_shutting_down) |
| |
| bool | expect_content (const Request &req) |
| |
| bool | parse_www_authenticate (const Response &res, std::map< std::string, std::string > &auth, bool is_proxy) |
| |
| bool | perform_websocket_handshake (Stream &strm, const std::string &host, int port, const std::string &path, const Headers &headers, std::string &selected_subprotocol) |
| |
| void | calc_actual_timeout (time_t max_timeout_msec, time_t duration_msec, time_t timeout_sec, time_t timeout_usec, time_t &actual_timeout_sec, time_t &actual_timeout_usec) |
| |
| std::string | prepare_host_string (const std::string &host) |
| |
| std::string | make_host_and_port_string_always_port (const std::string &host, int port) |
| |
| template<typename T> |
| bool | check_and_write_headers (Stream &strm, Headers &headers, T header_writer, Error &error) |
| |