X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Frgw%2Frgw_civetweb_frontend.cc;h=33e00144647ee8a337f01b9c27ad9dff940fe3a4;hb=28e407b858acd3bddc89f68583571f771bb42e46;hp=9b405760feb4d99db07b05ff65fbefd36c256ce7;hpb=dfcb7b53b2e4fcd2a5af0240d4975adc711ab96e;p=ceph.git diff --git a/ceph/src/rgw/rgw_civetweb_frontend.cc b/ceph/src/rgw/rgw_civetweb_frontend.cc index 9b405760f..33e001446 100644 --- a/ceph/src/rgw/rgw_civetweb_frontend.cc +++ b/ceph/src/rgw/rgw_civetweb_frontend.cc @@ -50,7 +50,6 @@ int RGWCivetWebFrontend::process(struct mg_connection* const conn) int RGWCivetWebFrontend::run() { auto& conf_map = conf->get_config_map(); - string port_str; set_conf_default(conf_map, "num_threads", std::to_string(g_conf->rgw_thread_pool_size)); @@ -59,15 +58,29 @@ int RGWCivetWebFrontend::run() set_conf_default(conf_map, "validate_http_method", "no"); set_conf_default(conf_map, "canonicalize_url_path", "no"); set_conf_default(conf_map, "enable_auth_domain_check", "no"); - conf->get_val("port", "80", &port_str); - std::replace(port_str.begin(), port_str.end(), '+', ','); - conf_map["listening_ports"] = port_str; + + std::string listening_ports; + // support multiple port= entries + auto range = conf_map.equal_range("port"); + for (auto p = range.first; p != range.second; ++p) { + std::string port_str = p->second; + // support port= entries with multiple values + std::replace(port_str.begin(), port_str.end(), '+', ','); + if (!listening_ports.empty()) { + listening_ports.append(1, ','); + } + listening_ports.append(port_str); + } + if (listening_ports.empty()) { + listening_ports = "80"; + } + conf_map.emplace("listening_ports", std::move(listening_ports)); /* Set run_as_user. This will cause civetweb to invoke setuid() and setgid() * based on pw_uid and pw_gid obtained from pw_name. */ std::string uid_string = g_ceph_context->get_set_uid_string(); if (! uid_string.empty()) { - conf_map["run_as_user"] = std::move(uid_string); + conf_map.emplace("run_as_user", std::move(uid_string)); } /* Prepare options for CivetWeb. */