diff --git a/src/HttpServer.cc b/src/HttpServer.cc index 02279ad1..6936bc85 100644 --- a/src/HttpServer.cc +++ b/src/HttpServer.cc @@ -1666,7 +1666,6 @@ int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) { namespace { int start_listen(HttpServer *sv, struct ev_loop *loop, Sessions *sessions, const Config *config) { - addrinfo hints; int r; bool ok = false; const char *addr = nullptr; @@ -1674,7 +1673,7 @@ int start_listen(HttpServer *sv, struct ev_loop *loop, Sessions *sessions, auto acceptor = std::make_shared(sv, sessions, config); auto service = util::utos(config->port); - memset(&hints, 0, sizeof(addrinfo)); + addrinfo hints{}; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; diff --git a/src/h2load.cc b/src/h2load.cc index 918e0f42..32763a0a 100644 --- a/src/h2load.cc +++ b/src/h2load.cc @@ -841,9 +841,8 @@ process_time_stats(const std::vector> &workers) { namespace { void resolve_host() { int rv; - addrinfo hints, *res; + addrinfo hints{}, *res; - memset(&hints, 0, sizeof(hints)); hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0; @@ -906,8 +905,7 @@ std::vector parse_uris(Iterator first, Iterator last) { // First URI is treated specially. We use scheme, host and port of // this URI and ignore those in the remaining URIs if present. - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; if (first == last) { std::cerr << "no URI available" << std::endl; @@ -935,8 +933,7 @@ std::vector parse_uris(Iterator first, Iterator last) { reqlines.push_back(get_reqline(uri, u)); for (; first != last; ++first) { - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; auto uri = (*first).c_str(); @@ -1333,8 +1330,7 @@ int main(int argc, char **argv) { config.data_length = data_stat.st_size; } - struct sigaction act; - memset(&act, 0, sizeof(struct sigaction)); + struct sigaction act {}; act.sa_handler = SIG_IGN; sigaction(SIGPIPE, &act, nullptr); diff --git a/src/http2_test.cc b/src/http2_test.cc index 88339045..9a99a3a9 100644 --- a/src/http2_test.cc +++ b/src/http2_test.cc @@ -191,8 +191,7 @@ void check_rewrite_location_uri(const std::string &want, const std::string &uri, const std::string &match_host, const std::string &req_authority, const std::string &upstream_scheme) { - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; CU_ASSERT(0 == http_parser_parse_url(uri.c_str(), uri.size(), 0, &u)); auto got = http2::rewrite_location_uri(uri, u, match_host, req_authority, upstream_scheme); diff --git a/src/nghttp.cc b/src/nghttp.cc index eb423c6d..8f85aaca 100644 --- a/src/nghttp.cc +++ b/src/nghttp.cc @@ -501,9 +501,8 @@ bool HttpClient::need_upgrade() const { int HttpClient::resolve_host(const std::string &host, uint16_t port) { int rv; - addrinfo hints; this->host = host; - memset(&hints, 0, sizeof(hints)); + addrinfo hints{}; hints.ai_family = AF_UNSPEC; hints.ai_socktype = SOCK_STREAM; hints.ai_protocol = 0; @@ -1260,8 +1259,7 @@ bool HttpClient::add_request(const std::string &uri, const nghttp2_data_provider *data_prd, int64_t data_length, const nghttp2_priority_spec &pri_spec, int level) { - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { return false; } @@ -1485,8 +1483,7 @@ void update_html_parser(HttpClient *client, Request *req, const uint8_t *data, auto uri = strip_fragment(p.first.c_str()); auto res_type = p.second; - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) == 0 && util::fieldeq(uri.c_str(), u, req->uri.c_str(), req->u, UF_SCHEMA) && util::fieldeq(uri.c_str(), u, req->uri.c_str(), req->u, UF_HOST) && @@ -1650,8 +1647,7 @@ int on_begin_headers_callback(nghttp2_session *session, } case NGHTTP2_PUSH_PROMISE: { auto stream_id = frame->push_promise.promised_stream_id; - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; // TODO Set pri and level nghttp2_priority_spec pri_spec; @@ -1820,8 +1816,7 @@ int on_frame_recv_callback2(nghttp2_session *session, uri += "://"; uri += authority->value; uri += path->value; - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE, frame->push_promise.promised_stream_id, @@ -2299,8 +2294,7 @@ int run(char **uris, int n) { std::vector> requests; for (int i = 0; i < n; ++i) { - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; auto uri = strip_fragment(uris[i]); if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { std::cerr << "[ERROR] Could not parse URI " << uri << std::endl; @@ -2701,8 +2695,7 @@ int main(int argc, char **argv) { nghttp2_option_set_peer_max_concurrent_streams( config.http2_option, config.peer_max_concurrent_streams); - struct sigaction act; - memset(&act, 0, sizeof(struct sigaction)); + struct sigaction act {}; act.sa_handler = SIG_IGN; sigaction(SIGPIPE, &act, nullptr); reset_timer(); diff --git a/src/nghttpd.cc b/src/nghttpd.cc index e5d7c2e0..7f11efd5 100644 --- a/src/nghttpd.cc +++ b/src/nghttpd.cc @@ -371,8 +371,7 @@ int main(int argc, char **argv) { set_color_output(color || isatty(fileno(stdout))); - struct sigaction act; - memset(&act, 0, sizeof(struct sigaction)); + struct sigaction act {}; act.sa_handler = SIG_IGN; sigaction(SIGPIPE, &act, nullptr); diff --git a/src/shrpx.cc b/src/shrpx.cc index d3b1c9fb..b346aa99 100644 --- a/src/shrpx.cc +++ b/src/shrpx.cc @@ -119,12 +119,11 @@ const int GRACEFUL_SHUTDOWN_SIGNAL = SIGQUIT; namespace { int resolve_hostname(sockaddr_union *addr, size_t *addrlen, const char *hostname, uint16_t port, int family) { - addrinfo hints; int rv; auto service = util::utos(port); - memset(&hints, 0, sizeof(addrinfo)); + addrinfo hints{}; hints.ai_family = family; hints.ai_socktype = SOCK_STREAM; #ifdef AI_ADDRCONFIG @@ -279,12 +278,11 @@ std::unique_ptr create_acceptor(ConnectionHandler *handler, } } - addrinfo hints; int fd = -1; int rv; auto service = util::utos(get_config()->port); - memset(&hints, 0, sizeof(addrinfo)); + addrinfo hints{}; hints.ai_family = family; hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_PASSIVE; @@ -849,7 +847,7 @@ int16_t DEFAULT_DOWNSTREAM_PORT = 80; namespace { void fill_default_config() { - memset(mod_config(), 0, sizeof(*mod_config())); + *mod_config() = {}; mod_config()->verbose = false; mod_config()->daemon = false; @@ -2359,8 +2357,7 @@ int main(int argc, char **argv) { reset_timer(); } - struct sigaction act; - memset(&act, 0, sizeof(struct sigaction)); + struct sigaction act {}; act.sa_handler = SIG_IGN; sigaction(SIGPIPE, &act, nullptr); diff --git a/src/shrpx_config.cc b/src/shrpx_config.cc index 5486fda8..b51d44e2 100644 --- a/src/shrpx_config.cc +++ b/src/shrpx_config.cc @@ -1575,8 +1575,7 @@ int parse_config(const char *opt, const char *optarg, return 0; case SHRPX_OPTID_BACKEND_HTTP_PROXY_URI: { // parse URI and get hostname, port and optionally userinfo. - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; int rv = http_parser_parse_url(optarg, strlen(optarg), 0, &u); if (rv == 0) { std::string val; diff --git a/src/shrpx_connection_handler.cc b/src/shrpx_connection_handler.cc index cbe828b8..91b477d2 100644 --- a/src/shrpx_connection_handler.cc +++ b/src/shrpx_connection_handler.cc @@ -129,9 +129,8 @@ ConnectionHandler::~ConnectionHandler() { } void ConnectionHandler::worker_reopen_log_files() { - WorkerEvent wev; + WorkerEvent wev{}; - memset(&wev, 0, sizeof(wev)); wev.type = REOPEN_LOG; for (auto &worker : workers_) { @@ -141,9 +140,8 @@ void ConnectionHandler::worker_reopen_log_files() { void ConnectionHandler::worker_renew_ticket_keys( const std::shared_ptr &ticket_keys) { - WorkerEvent wev; + WorkerEvent wev{}; - memset(&wev, 0, sizeof(wev)); wev.type = RENEW_TICKET_KEYS; wev.ticket_keys = ticket_keys; @@ -216,8 +214,7 @@ void ConnectionHandler::graceful_shutdown_worker() { return; } - WorkerEvent wev; - memset(&wev, 0, sizeof(wev)); + WorkerEvent wev{}; wev.type = GRACEFUL_SHUTDOWN; if (LOG_ENABLED(INFO)) { @@ -266,8 +263,7 @@ int ConnectionHandler::handle_connection(int fd, sockaddr *addr, int addrlen) { LOG(INFO) << "Dispatch connection to worker #" << idx; } ++worker_round_robin_cnt_; - WorkerEvent wev; - memset(&wev, 0, sizeof(wev)); + WorkerEvent wev{}; wev.type = NEW_CONNECTION; wev.client_fd = fd; memcpy(&wev.client_addr, addr, addrlen); diff --git a/src/shrpx_downstream.cc b/src/shrpx_downstream.cc index 87a2d082..bfd7aa4b 100644 --- a/src/shrpx_downstream.cc +++ b/src/shrpx_downstream.cc @@ -621,8 +621,7 @@ void Downstream::rewrite_location_response_header( if (!hd) { return; } - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; int rv = http_parser_parse_url((*hd).value.c_str(), (*hd).value.size(), 0, &u); if (rv != 0) { diff --git a/src/shrpx_http2_upstream.cc b/src/shrpx_http2_upstream.cc index 87c77d14..51146e8c 100644 --- a/src/shrpx_http2_upstream.cc +++ b/src/shrpx_http2_upstream.cc @@ -1482,8 +1482,7 @@ int Http2Upstream::on_downstream_reset(bool no_retry) { int Http2Upstream::prepare_push_promise(Downstream *downstream) { int rv; - http_parser_url u; - memset(&u, 0, sizeof(u)); + http_parser_url u{}; rv = http_parser_parse_url(downstream->get_request_path().c_str(), downstream->get_request_path().size(), 0, &u); if (rv != 0) { @@ -1513,8 +1512,7 @@ int Http2Upstream::prepare_push_promise(Downstream *downstream) { const char *relq = nullptr; size_t relqlen = 0; - http_parser_url v; - memset(&v, 0, sizeof(v)); + http_parser_url v{}; rv = http_parser_parse_url(link_url, link_urllen, 0, &v); if (rv != 0) { assert(link_urllen); diff --git a/src/shrpx_spdy_upstream.cc b/src/shrpx_spdy_upstream.cc index 5f124296..745cc0b5 100644 --- a/src/shrpx_spdy_upstream.cc +++ b/src/shrpx_spdy_upstream.cc @@ -452,8 +452,7 @@ SpdyUpstream::SpdyUpstream(uint16_t version, ClientHandler *handler) : 0, !get_config()->http2_proxy), handler_(handler), session_(nullptr) { - spdylay_session_callbacks callbacks; - memset(&callbacks, 0, sizeof(callbacks)); + spdylay_session_callbacks callbacks{}; callbacks.send_callback = send_callback; callbacks.recv_callback = recv_callback; callbacks.on_stream_close_callback = on_stream_close_callback; diff --git a/src/util.cc b/src/util.cc index 9586ab77..0f70f0da 100644 --- a/src/util.cc +++ b/src/util.cc @@ -348,8 +348,7 @@ std::string iso8601_date(int64_t ms) { } time_t parse_http_date(const std::string &s) { - tm tm; - memset(&tm, 0, sizeof(tm)); + tm tm{}; char *r = strptime(s.c_str(), "%a, %d %b %Y %H:%M:%S GMT", &tm); if (r == 0) { return 0; @@ -637,9 +636,8 @@ void write_uri_field(std::ostream &o, const char *uri, const http_parser_url &u, } bool numeric_host(const char *hostname) { - struct addrinfo hints; struct addrinfo *res; - memset(&hints, 0, sizeof(hints)); + struct addrinfo hints {}; hints.ai_family = AF_UNSPEC; hints.ai_flags = AI_NUMERICHOST; if (getaddrinfo(hostname, nullptr, &hints, &res)) {