Lines Matching defs:config
70 Config *config;
75 const Config *get_config() { return config; }
77 Config *mod_config() { return config; }
80 auto p = config;
81 config = another.release();
85 void create_config() { config = new Config(); }
450 altsvc.protocol_id = make_string_ref(config->balloc, tokens[0]);
453 altsvc.service = make_string_ref(config->balloc, tokens[1]);
457 altsvc.host = make_string_ref(config->balloc, tokens[2]);
462 altsvc.origin = make_string_ref(config->balloc, tokens[3]);
467 altsvc.params = make_string_ref(config->balloc, tokens[4]);
1172 // mappings in config. We will store each host-path pattern found in
1178 int parse_mapping(Config *config, DownstreamAddrConfig &addr,
1185 auto &downstreamconf = *config->conn.downstream;
1658 // directly stored into config->tls.psk_secrets. This function
1660 int parse_psk_secrets(Config *config, const StringRef &path) {
1661 auto &tlsconf = config->tls;
1703 make_string_ref(config->balloc, StringRef{std::begin(line), sep_it});
1706 util::decode_hex(config->balloc, StringRef{sep_it + 1, std::end(line)});
1724 // directly stored into config->tls.client.psk. This function returns
1726 int parse_client_psk_secrets(Config *config, const StringRef &path) {
1727 auto &tlsconf = config->tls;
1770 make_string_ref(config->balloc, StringRef{std::begin(line), sep_it});
1773 util::decode_hex(config->balloc, StringRef{sep_it + 1, std::end(line)});
2810 int parse_config(Config *config, const StringRef &opt, const StringRef &optarg,
2814 return parse_config(config, optid, opt, optarg, included_set,
2818 int parse_config(Config *config, int optid, const StringRef &opt,
2827 auto &downstreamconf = *config->conn.downstream;
2852 if (parse_mapping(config, addr, pattern_addr_indexer,
2861 auto &apiconf = config->api;
2903 auto &addrs = params.quic ? config->conn.quic_listener.addrs
2904 : config->conn.listener.addrs;
2906 auto &addrs = config->conn.listener.addrs;
2916 addr.host = make_string_ref(config->balloc, StringRef{path, addr_end});
2930 addr.host = make_string_ref(config->balloc, StringRef{host});
2962 return parse_uint(&config->num_worker, opt, optarg);
2972 auto &http2conf = config->http2;
2984 config->logging.severity = level;
2989 config->daemon = util::strieq_l("yes", optarg);
2993 config->http2_proxy = util::strieq_l("yes", optarg);
3007 config->http.xff.add = util::strieq_l("yes", optarg);
3011 config->http.xff.strip_incoming = util::strieq_l("yes", optarg);
3015 config->http.no_via = util::strieq_l("yes", optarg);
3019 return parse_duration(&config->conn.upstream.timeout.http2_read, opt,
3022 return parse_duration(&config->conn.upstream.timeout.read, opt, optarg);
3024 return parse_duration(&config->conn.upstream.timeout.write, opt, optarg);
3026 return parse_duration(&config->conn.downstream->timeout.read, opt, optarg);
3028 return parse_duration(&config->conn.downstream->timeout.write, opt, optarg);
3030 return parse_duration(&config->conn.downstream->timeout.connect, opt,
3033 return parse_duration(&config->http2.timeout.stream_read, opt, optarg);
3035 return parse_duration(&config->http2.timeout.stream_write, opt, optarg);
3037 config->logging.access.file = make_string_ref(config->balloc, optarg);
3041 config->logging.access.syslog = util::strieq_l("yes", optarg);
3045 config->logging.access.format = parse_log_format(config->balloc, optarg);
3049 config->logging.error.file = make_string_ref(config->balloc, optarg);
3053 config->logging.error.syslog = util::strieq_l("yes", optarg);
3057 return parse_uint(&config->conn.listener.fastopen, opt, optarg);
3059 return parse_duration(&config->conn.downstream->timeout.idle_read, opt,
3070 resp = &config->http2.upstream.window_size;
3072 resp = &config->http2.downstream.window_size;
3104 resp = &config->http2.upstream.connection_window_size;
3106 resp = &config->http2.downstream.connection_window_size;
3143 config->tls.backend_sni_name = make_string_ref(config->balloc, optarg);
3147 config->pid_file = make_string_ref(config->balloc, optarg);
3157 config->user = make_string_ref(config->balloc, StringRef{pwd->pw_name});
3158 config->uid = pwd->pw_uid;
3159 config->gid = pwd->pw_gid;
3164 config->tls.private_key_file = make_string_ref(config->balloc, optarg);
3173 config->tls.private_key_passwd =
3174 make_string_ref(config->balloc, StringRef{passwd});
3179 config->tls.cert_file = make_string_ref(config->balloc, optarg);
3183 config->tls.dh_param_file = make_string_ref(config->balloc, optarg);
3229 config->tls.subcerts.emplace_back(
3230 make_string_ref(config->balloc, private_key_file),
3231 make_string_ref(config->balloc, cert_file), std::move(sct_data));
3241 config->logging.syslog_facility = facility;
3246 return parse_uint(&config->conn.listener.backlog, opt, optarg);
3248 config->tls.ciphers = make_string_ref(config->balloc, optarg);
3252 config->tls.tls13_ciphers = make_string_ref(config->balloc, optarg);
3261 config->tls.insecure = util::strieq_l("yes", optarg);
3265 config->tls.cacert = make_string_ref(config->balloc, optarg);
3272 config->conn.downstream->family = AF_INET;
3279 config->conn.downstream->family = AF_INET6;
3283 auto &proxy = config->downstream_http_proxy;
3296 proxy.userinfo = util::percent_decode(config->balloc, uf);
3301 config->balloc, util::get_uri_field(optarg.c_str(), u, UF_HOST));
3320 return parse_uint_with_unit(&config->conn.upstream.ratelimit.read.rate, opt,
3323 return parse_uint_with_unit(&config->conn.upstream.ratelimit.read.burst,
3326 return parse_uint_with_unit(&config->conn.upstream.ratelimit.write.rate,
3329 return parse_uint_with_unit(&config->conn.upstream.ratelimit.write.burst,
3345 config->tls.npn_list.resize(list.size());
3347 config->tls.npn_list[i] = make_string_ref(config->balloc, list[i]);
3357 config->tls.tls_proto_list.resize(list.size());
3359 config->tls.tls_proto_list[i] = make_string_ref(config->balloc, list[i]);
3365 config->tls.client_verify.enabled = util::strieq_l("yes", optarg);
3369 config->tls.client_verify.cacert = make_string_ref(config->balloc, optarg);
3373 config->tls.client.private_key_file =
3374 make_string_ref(config->balloc, optarg);
3378 config->tls.client.cert_file = make_string_ref(config->balloc, optarg);
3382 config->http2.upstream.debug.dump.request_header_file =
3383 make_string_ref(config->balloc, optarg);
3387 config->http2.upstream.debug.dump.response_header_file =
3388 make_string_ref(config->balloc, optarg);
3392 config->http2.no_cookie_crumbling = util::strieq_l("yes", optarg);
3396 config->http2.upstream.debug.frame_debug = util::strieq_l("yes", optarg);
3400 return parse_uint(&config->padding, opt, optarg);
3408 config->http.altsvcs.push_back(std::move(altsvc));
3414 auto p = parse_header(config->balloc, optarg);
3420 config->http.add_request_headers.push_back(std::move(p));
3422 config->http.add_response_headers.push_back(std::move(p));
3427 return parse_uint(&config->conn.upstream.worker_connections, opt, optarg);
3429 config->http.no_location_rewrite = util::strieq_l("yes", optarg);
3456 config->conn.downstream->connections_per_host = n;
3465 return parse_uint(&config->conn.downstream->connections_per_frontend, opt,
3468 return parse_duration(&config->conn.listener.timeout.sleep, opt, optarg);
3470 config->tls.ticket.files.emplace_back(
3471 make_string_ref(config->balloc, optarg));
3486 config->rlimit_nofile = n;
3504 config->conn.downstream->request_buffer_size = n;
3506 config->conn.downstream->response_buffer_size = n;
3513 config->http2.no_server_push = util::strieq_l("yes", optarg);
3520 config->tls.ocsp.fetch_ocsp_response_file =
3521 make_string_ref(config->balloc, optarg);
3525 return parse_duration(&config->tls.ocsp.update_interval, opt, optarg);
3527 config->tls.ocsp.disabled = util::strieq_l("yes", optarg);
3535 return parse_uint_with_unit(&config->http.request_header_field_buffer, opt,
3541 return parse_uint(&config->http.max_request_header_fields, opt, optarg);
3543 return parse_uint_with_unit(&config->http.response_header_field_buffer, opt,
3546 return parse_uint(&config->http.max_response_header_fields, opt, optarg);
3555 load_config(config, optarg.c_str(), included_set, pattern_addr_indexer);
3566 config->tls.ticket.cipher = EVP_aes_128_cbc();
3568 config->tls.ticket.cipher = EVP_aes_256_cbc();
3574 config->tls.ticket.cipher_given = true;
3578 config->http.no_host_rewrite = !util::strieq_l("yes", optarg);
3599 auto &memcachedconf = config->tls.session_cache.memcached;
3600 memcachedconf.host = make_string_ref(config->balloc, StringRef{host});
3606 auto &memcachedconf = config->tls.ticket.memcached;
3607 memcachedconf.host = make_string_ref(config->balloc, StringRef{host});
3617 return parse_duration(&config->tls.ticket.memcached.interval, opt, optarg);
3629 config->tls.ticket.memcached.max_retry = n;
3633 return parse_uint(&config->tls.ticket.memcached.max_fail, opt, optarg);
3640 config->tls.dyn_rec.warmup_threshold = n;
3646 return parse_duration(&config->tls.dyn_rec.idle_timeout, opt, optarg);
3650 config->mruby_file = make_string_ref(config->balloc, optarg);
3659 config->conn.upstream.accept_proxy_protocol = util::strieq_l("yes", optarg);
3663 auto &fwdconf = config->http.forwarded;
3691 config->http.forwarded.strip_incoming = util::strieq_l("yes", optarg);
3705 auto &fwdconf = config->http.forwarded;
3711 fwdconf.by_obfuscated = make_string_ref(config->balloc, optarg);
3728 config->tls.no_http2_cipher_block_list = util::strieq_l("yes", optarg);
3740 config->tls.session_cache.memcached.cert_file =
3741 make_string_ref(config->balloc, optarg);
3745 config->tls.session_cache.memcached.private_key_file =
3746 make_string_ref(config->balloc, optarg);
3754 config->tls.ticket.memcached.cert_file =
3755 make_string_ref(config->balloc, optarg);
3759 config->tls.ticket.memcached.private_key_file =
3760 make_string_ref(config->balloc, optarg);
3764 return parse_address_family(&config->tls.ticket.memcached.family, opt,
3767 return parse_address_family(&config->tls.session_cache.memcached.family,
3770 return parse_address_family(&config->conn.downstream->family, opt, optarg);
3772 return parse_uint(&config->http2.upstream.max_concurrent_streams, opt,
3775 return parse_uint(&config->http2.downstream.max_concurrent_streams, opt,
3778 return parse_error_page(config->http.error_pages, opt, optarg);
3785 config->ev_loop_flags = ev_recommended_backends() & ~EVBACKEND_KQUEUE;
3789 return parse_duration(&config->http2.upstream.timeout.settings, opt,
3792 return parse_duration(&config->http2.downstream.timeout.settings, opt,
3795 return parse_uint_with_unit(&config->api.max_request_body, opt, optarg);
3797 return parse_duration(&config->conn.downstream->timeout.max_backoff, opt,
3800 config->http.server_name = make_string_ref(config->balloc, optarg);
3804 config->http.no_server_rewrite = util::strieq_l("yes", optarg);
3808 config->http2.upstream.optimize_write_buffer_size =
3813 config->http2.upstream.optimize_window_size = util::strieq_l("yes", optarg);
3817 if (parse_uint_with_unit(&config->http2.upstream.window_size, opt,
3824 if (parse_uint_with_unit(&config->http2.upstream.connection_window_size,
3831 if (parse_uint_with_unit(&config->http2.downstream.window_size, opt,
3838 if (parse_uint_with_unit(&config->http2.downstream.connection_window_size,
3845 if (parse_uint_with_unit(&config->http2.upstream.encoder_dynamic_table_size,
3851 config->http2.upstream.option,
3852 config->http2.upstream.encoder_dynamic_table_size);
3854 config->http2.upstream.alt_mode_option,
3855 config->http2.upstream.encoder_dynamic_table_size);
3860 &config->http2.upstream.decoder_dynamic_table_size, opt, optarg);
3863 &config->http2.downstream.encoder_dynamic_table_size, opt,
3869 config->http2.downstream.option,
3870 config->http2.downstream.encoder_dynamic_table_size);
3875 &config->http2.downstream.decoder_dynamic_table_size, opt, optarg);
3878 config->tls.ecdh_curves = make_string_ref(config->balloc, optarg);
3885 return read_tls_sct_from_dir(config->tls.sct_data, opt, optarg);
3891 return parse_duration(&config->dns.timeout.cache, opt, optarg);
3893 return parse_duration(&config->dns.timeout.lookup, opt, optarg);
3905 config->dns.max_try = n;
3909 return parse_duration(&config->conn.upstream.timeout.idle_read, opt,
3913 return parse_psk_secrets(config, optarg);
3922 return parse_client_psk_secrets(config, optarg);
3934 config->tls.client.no_http2_cipher_block_list =
3939 config->tls.client.ciphers = make_string_ref(config->balloc, optarg);
3943 config->tls.client.tls13_ciphers = make_string_ref(config->balloc, optarg);
3947 config->logging.access.write_early = util::strieq_l("yes", optarg);
3951 return parse_tls_proto_version(config->tls.min_proto_version, opt, optarg);
3953 return parse_tls_proto_version(config->tls.max_proto_version, opt, optarg);
3962 config->http.redirect_https_port = make_string_ref(config->balloc, optarg);
3966 return parse_uint(&config->http.max_requests, opt, optarg);
3968 config->single_thread = util::strieq_l("yes", optarg);
3972 config->single_process = util::strieq_l("yes", optarg);
3976 config->http.xfp.add = !util::strieq_l("yes", optarg);
3980 config->http.xfp.strip_incoming = !util::strieq_l("yes", optarg);
3984 config->tls.ocsp.startup = util::strieq_l("yes", optarg);
3988 config->tls.ocsp.no_verify = util::strieq_l("yes", optarg);
3992 config->tls.client_verify.tolerate_expired = util::strieq_l("yes", optarg);
3996 config->ignore_per_pattern_mruby_error = util::strieq_l("yes", optarg);
4000 config->tls.no_postpone_early_data = util::strieq_l("yes", optarg);
4004 return parse_uint_with_unit(&config->tls.max_early_data, opt, optarg);
4007 config->http.early_data.strip_incoming = !util::strieq_l("yes", optarg);
4012 config->quic.bpf.prog_file = make_string_ref(config->balloc, optarg);
4018 config->quic.bpf.disabled = util::strieq_l("yes", optarg);
4029 config->http.http2_altsvcs.push_back(std::move(altsvc));
4035 return parse_duration(&config->conn.upstream.timeout.http3_read, opt,
4042 return parse_duration(&config->quic.upstream.timeout.idle, opt, optarg);
4048 config->quic.upstream.debug.log = util::strieq_l("yes", optarg);
4054 if (parse_uint_with_unit(&config->http3.upstream.window_size, opt,
4063 if (parse_uint_with_unit(&config->http3.upstream.connection_window_size,
4072 if (parse_uint_with_unit(&config->http3.upstream.max_window_size, opt,
4081 if (parse_uint_with_unit(&config->http3.upstream.max_connection_window_size,
4090 return parse_uint(&config->http3.upstream.max_concurrent_streams, opt,
4097 config->quic.upstream.early_data = util::strieq_l("yes", optarg);
4103 config->quic.upstream.qlog.dir = make_string_ref(config->balloc, optarg);
4109 config->quic.upstream.require_token = util::strieq_l("yes", optarg);
4116 config->quic.upstream.congestion_controller = NGTCP2_CC_ALGO_CUBIC;
4118 config->quic.upstream.congestion_controller = NGTCP2_CC_ALGO_BBR;
4128 if (optarg.size() != config->quic.server_id.size() * 2 ||
4133 util::decode_hex(std::begin(config->quic.server_id), optarg);
4139 config->quic.upstream.secret_file = make_string_ref(config->balloc, optarg);
4156 config->rlimit_memlock = n;
4161 return parse_uint(&config->max_worker_processes, opt, optarg);
4163 return parse_duration(&config->worker_process_grace_shutdown_period, opt,
4167 return parse_duration(&config->quic.upstream.initial_rtt, opt, optarg);
4173 config->http.require_http_scheme = util::strieq_l("yes", optarg);
4176 config->tls.ktls = util::strieq_l("yes", optarg);
4189 int load_config(Config *config, const char *filename,
4194 LOG(ERROR) << "Could not open config file " << filename;
4212 if (parse_config(config, StringRef{std::begin(line), eq},
4414 // Configures the following member in |config|:
4417 int configure_downstream_group(Config *config, bool http2_proxy,
4422 auto &downstreamconf = *config->conn.downstream;
4476 LOG(config->ignore_per_pattern_mruby_error ? ERROR : FATAL)
4479 if (!config->ignore_per_pattern_mruby_error) {
4491 if (!config->mruby_file.empty()) {
4492 if (mruby::create_mruby_context(config->mruby_file) == nullptr) {