This simplifies the following changes.
base_url.host.name = my_hostname;
base_url.have_ssl = conn->ssl;
+ const struct http_request_limits limits = {
+ .max_target_length = set->request_max_target_length,
+ .max_payload_size = set->request_max_payload_size,
+ .header.max_size = set->request_hdr_max_size,
+ .header.max_field_size = set->request_hdr_max_field_size,
+ .header.max_fields = set->request_hdr_max_fields,
+ };
conn->http_parser = http_request_parser_init(
- conn->conn.input, &base_url, &conn->server->set.request_limits,
+ conn->conn.input, &base_url, &limits,
HTTP_REQUEST_PARSE_FLAG_STRICT);
o_stream_set_finish_via_child(conn->conn.output, FALSE);
o_stream_set_flush_callback(conn->conn.output,
server->set.max_client_idle_time_msecs = set->max_client_idle_time_msecs;
server->set.max_pipelined_requests =
(set->max_pipelined_requests > 0 ? set->max_pipelined_requests : 1);
- server->set.request_limits = set->request_limits;
+ server->set.request_max_target_length = set->request_max_target_length;
+ server->set.request_max_payload_size = set->request_max_payload_size;
+ server->set.request_hdr_max_size = set->request_hdr_max_size;
+ server->set.request_hdr_max_field_size = set->request_hdr_max_field_size;
+ server->set.request_hdr_max_fields = set->request_hdr_max_fields;
server->set.socket_send_buffer_size = set->socket_send_buffer_size;
server->set.socket_recv_buffer_size = set->socket_recv_buffer_size;
server->set.debug = set->debug;
unsigned int max_pipelined_requests;
/* Request limits */
- struct http_request_limits request_limits;
+ uoff_t request_max_target_length;
+ uoff_t request_max_payload_size;
+ /* Request header limits */
+ uoff_t request_hdr_max_size;
+ uoff_t request_hdr_max_field_size;
+ unsigned int request_hdr_max_fields;
/* The kernel send/receive buffer sizes used for the connection sockets.
Configuring this is mainly useful for the test suite. The kernel
test_init_server_settings(struct http_server_settings *server_set_r)
{
i_zero(server_set_r);
- server_set_r->request_limits.max_payload_size = UOFF_T_MAX;
+ server_set_r->request_max_payload_size = UOFF_T_MAX;
server_set_r->debug = debug;
if (small_socket_buffers) {