Lines Matching refs:optarg
359 const StringRef &optarg) {
360 auto colon = std::find(std::begin(optarg), std::end(optarg), ':');
362 if (colon == std::end(optarg) || colon == std::begin(optarg)) {
371 make_byte_ref(balloc, std::distance(std::begin(optarg), colon) + 1);
373 p = std::copy(std::begin(optarg), colon, p);
379 make_string_ref(balloc, StringRef{value, std::end(optarg)}));
390 int parse_uint(T *dest, const StringRef &opt, const StringRef &optarg) {
391 auto val = util::parse_uint(optarg);
405 const StringRef &optarg) {
406 auto n = util::parse_uint_with_unit(optarg);
408 LOG(ERROR) << opt << ": bad value: '" << optarg << "'";
428 const StringRef &optarg) {
430 auto tokens = util::split_str(optarg, ',', 5);
434 LOG(ERROR) << opt << ": too few parameters: " << optarg;
700 const StringRef &optarg) {
701 auto literal_start = std::begin(optarg);
703 auto eop = std::end(optarg);
800 const StringRef &optarg) {
801 if (util::strieq_l("auto", optarg)) {
805 if (util::strieq_l("IPv4", optarg)) {
809 if (util::strieq_l("IPv6", optarg)) {
814 LOG(ERROR) << opt << ": bad value: '" << optarg << "'";
821 const StringRef &optarg) {
822 auto t = util::parse_duration_with_unit(optarg);
824 LOG(ERROR) << opt << ": bad value: '" << optarg << "'";
836 const StringRef &optarg) {
837 auto v = tls::proto_version_from_string(optarg);
839 LOG(ERROR) << opt << ": invalid TLS protocol version: " << optarg;
1409 ForwardedNode parse_forwarded_node_type(const StringRef &optarg) {
1410 if (util::strieq_l("obfuscated", optarg)) {
1414 if (util::strieq_l("ip", optarg)) {
1418 if (optarg.size() < 2 || optarg[0] != '_') {
1422 if (std::find_if_not(std::begin(optarg), std::end(optarg), [](char c) {
1425 }) != std::end(optarg)) {
1435 const StringRef &optarg) {
1438 auto eq = std::find(std::begin(optarg), std::end(optarg), '=');
1439 if (eq == std::end(optarg) || eq + 1 == std::end(optarg)) {
1440 LOG(ERROR) << opt << ": bad value: '" << optarg << "'";
1444 auto codestr = StringRef{std::begin(optarg), eq};
1460 auto path = StringRef{eq + 1, std::end(optarg)};
1466 LOG(ERROR) << opt << ": " << optarg << ": "
1478 LOG(ERROR) << opt << ": " << optarg << ": "
2810 int parse_config(Config *config, const StringRef &opt, const StringRef &optarg,
2814 return parse_config(config, optid, opt, optarg, included_set,
2819 const StringRef &optarg, std::set<StringRef> &included_set,
2828 auto addr_end = std::find(std::begin(optarg), std::end(optarg), ';');
2831 if (util::istarts_with(optarg, SHRPX_UNIX_PATH_PREFIX)) {
2832 auto path = std::begin(optarg) + SHRPX_UNIX_PATH_PREFIX.size();
2838 StringRef{std::begin(optarg), addr_end}, opt) == -1) {
2846 auto mapping = addr_end == std::end(optarg) ? addr_end : addr_end + 1;
2847 auto mapping_end = std::find(mapping, std::end(optarg), ';');
2850 mapping_end == std::end(optarg) ? mapping_end : mapping_end + 1;
2854 StringRef{params, std::end(optarg)}) != 0) {
2863 auto addr_end = std::find(std::begin(optarg), std::end(optarg), ';');
2864 auto src_params = StringRef{addr_end, std::end(optarg)};
2909 if (util::istarts_with(optarg, SHRPX_UNIX_PATH_PREFIX)) {
2915 auto path = std::begin(optarg) + SHRPX_UNIX_PATH_PREFIX.size();
2926 StringRef{std::begin(optarg), addr_end}, opt) == -1) {
2962 return parse_uint(&config->num_worker, opt, optarg);
2969 if (parse_uint(&n, opt, optarg) != 0) {
2979 auto level = Log::get_severity_level_by_name(optarg);
2981 LOG(ERROR) << opt << ": Invalid severity level: " << optarg;
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);
3020 optarg);
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);
3031 optarg);
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);
3060 optarg);
3079 if (parse_uint(&n, opt, optarg) != 0) {
3113 if (parse_uint(&n, opt, optarg) != 0) {
3142 << optarg;
3143 config->tls.backend_sni_name = make_string_ref(config->balloc, optarg);
3147 config->pid_file = make_string_ref(config->balloc, optarg);
3151 auto pwd = getpwnam(optarg.c_str());
3153 LOG(ERROR) << opt << ": failed to get uid from " << optarg << ": "
3164 config->tls.private_key_file = make_string_ref(config->balloc, optarg);
3168 auto passwd = read_passwd_from_file(opt, optarg);
3170 LOG(ERROR) << opt << ": Couldn't read key file's passwd from " << optarg;
3179 config->tls.cert_file = make_string_ref(config->balloc, optarg);
3183 config->tls.dh_param_file = make_string_ref(config->balloc, optarg);
3187 auto end_keys = std::find(std::begin(optarg), std::end(optarg), ';');
3188 auto src_params = StringRef{end_keys, std::end(optarg)};
3206 auto sp = std::find(std::begin(optarg), end_keys, ':');
3209 << StringRef{std::begin(optarg), end_keys};
3213 auto private_key_file = StringRef{std::begin(optarg), sp};
3217 << StringRef{std::begin(optarg), end_keys};
3225 << StringRef{std::begin(optarg), end_keys};
3236 int facility = int_syslog_facility(optarg);
3238 LOG(ERROR) << opt << ": Unknown syslog facility: " << optarg;
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);
3289 int rv = http_parser_parse_url(optarg.c_str(), optarg.size(), 0, &u);
3292 auto uf = util::get_uri_field(optarg.c_str(), u, UF_USERINFO);
3301 config->balloc, util::get_uri_field(optarg.c_str(), u, UF_HOST));
3321 optarg);
3324 opt, optarg);
3327 opt, optarg);
3330 opt, optarg);
3344 auto list = util::split_str(optarg, ',');
3356 auto list = util::split_str(optarg, ',');
3365 config->tls.client_verify.enabled = util::strieq_l("yes", optarg);
3369 config->tls.client_verify.cacert = make_string_ref(config->balloc, optarg);
3374 make_string_ref(config->balloc, optarg);
3378 config->tls.client.cert_file = make_string_ref(config->balloc, optarg);
3383 make_string_ref(config->balloc, optarg);
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);
3404 if (parse_altsvc(altsvc, opt, optarg) != 0) {
3414 auto p = parse_header(config->balloc, optarg);
3416 LOG(ERROR) << opt << ": invalid header field: " << optarg;
3427 return parse_uint(&config->conn.upstream.worker_connections, opt, optarg);
3429 config->http.no_location_rewrite = util::strieq_l("yes", optarg);
3446 if (parse_uint(&n, opt, optarg) != 0) {
3466 optarg);
3468 return parse_duration(&config->conn.listener.timeout.sleep, opt, optarg);
3471 make_string_ref(config->balloc, optarg));
3476 if (parse_uint(&n, opt, optarg) != 0) {
3493 if (parse_uint_with_unit(&n, opt, optarg) != 0) {
3513 config->http2.no_server_push = util::strieq_l("yes", optarg);
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);
3536 optarg);
3541 return parse_uint(&config->http.max_request_header_fields, opt, optarg);
3544 optarg);
3546 return parse_uint(&config->http.max_response_header_fields, opt, optarg);
3548 if (included_set.count(optarg)) {
3549 LOG(ERROR) << opt << ": " << optarg << " has already been included";
3553 included_set.insert(optarg);
3555 load_config(config, optarg.c_str(), included_set, pattern_addr_indexer);
3556 included_set.erase(optarg);
3565 if (util::strieq_l("aes-128-cbc", optarg)) {
3567 } else if (util::strieq_l("aes-256-cbc", optarg)) {
3571 << ": unsupported cipher for ticket encryption: " << optarg;
3578 config->http.no_host_rewrite = !util::strieq_l("yes", optarg);
3583 auto addr_end = std::find(std::begin(optarg), std::end(optarg), ';');
3584 auto src_params = StringRef{addr_end, std::end(optarg)};
3593 StringRef{std::begin(optarg), addr_end}, opt) == -1) {
3617 return parse_duration(&config->tls.ticket.memcached.interval, opt, optarg);
3620 if (parse_uint(&n, opt, optarg) != 0) {
3633 return parse_uint(&config->tls.ticket.memcached.max_fail, opt, optarg);
3636 if (parse_uint_with_unit(&n, opt, optarg) != 0) {
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);
3665 for (const auto ¶m : util::split_str(optarg, ',')) {
3683 LOG(ERROR) << opt << ": unknown parameter " << optarg;
3691 config->http.forwarded.strip_incoming = util::strieq_l("yes", optarg);
3696 auto type = parse_forwarded_node_type(optarg);
3699 (optid == SHRPX_OPTID_FORWARDED_FOR && optarg[0] == '_')) {
3701 << optarg;
3710 if (optarg[0] == '_') {
3711 fwdconf.by_obfuscated = make_string_ref(config->balloc, optarg);
3728 config->tls.no_http2_cipher_block_list = util::strieq_l("yes", optarg);
3741 make_string_ref(config->balloc, optarg);
3746 make_string_ref(config->balloc, optarg);
3755 make_string_ref(config->balloc, optarg);
3760 make_string_ref(config->balloc, optarg);
3765 optarg);
3768 opt, optarg);
3770 return parse_address_family(&config->conn.downstream->family, opt, optarg);
3773 optarg);
3776 optarg);
3778 return parse_error_page(config->http.error_pages, opt, optarg);
3790 optarg);
3793 optarg);
3795 return parse_uint_with_unit(&config->api.max_request_body, opt, optarg);
3798 optarg);
3800 config->http.server_name = make_string_ref(config->balloc, optarg);
3804 config->http.no_server_rewrite = util::strieq_l("yes", optarg);
3809 util::strieq_l("yes", optarg);
3813 config->http2.upstream.optimize_window_size = util::strieq_l("yes", optarg);
3818 optarg) != 0) {
3825 opt, optarg) != 0) {
3832 optarg) != 0) {
3839 opt, optarg) != 0) {
3846 opt, optarg) != 0) {
3860 &config->http2.upstream.decoder_dynamic_table_size, opt, optarg);
3864 optarg) != 0) {
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);
3896 if (parse_uint(&n, opt, optarg) != 0) {
3910 optarg);
3913 return parse_psk_secrets(config, optarg);
3922 return parse_client_psk_secrets(config, optarg);
3935 util::strieq_l("yes", optarg);
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);
3955 auto n = util::parse_uint(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);
4025 if (parse_altsvc(altsvc, opt, optarg) != 0) {
4036 optarg);
4042 return parse_duration(&config->quic.upstream.timeout.idle, opt, optarg);
4048 config->quic.upstream.debug.log = util::strieq_l("yes", optarg);
4055 optarg) != 0) {
4064 opt, optarg) != 0) {
4073 optarg) != 0) {
4082 opt, optarg) != 0) {
4091 optarg);
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);
4115 if (util::strieq_l("cubic", optarg)) {
4117 } else if (util::strieq_l("bbr", optarg)) {
4128 if (optarg.size() != config->quic.server_id.size() * 2 ||
4129 !util::is_hex_string(optarg)) {
4133 util::decode_hex(std::begin(config->quic.server_id), optarg);
4139 config->quic.upstream.secret_file = make_string_ref(config->balloc, optarg);
4146 if (parse_uint(&n, opt, optarg) != 0) {
4161 return parse_uint(&config->max_worker_processes, opt, optarg);
4164 optarg);
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);