src: Use C++11 value-initialization, instead of memset-ing 0

This commit is contained in:
Tatsuhiro Tsujikawa 2015-07-19 17:55:37 +09:00
parent 05d5c404e2
commit 5dc060c1a2
12 changed files with 29 additions and 57 deletions

View File

@ -1666,7 +1666,6 @@ int verify_callback(int preverify_ok, X509_STORE_CTX *ctx) {
namespace { namespace {
int start_listen(HttpServer *sv, struct ev_loop *loop, Sessions *sessions, int start_listen(HttpServer *sv, struct ev_loop *loop, Sessions *sessions,
const Config *config) { const Config *config) {
addrinfo hints;
int r; int r;
bool ok = false; bool ok = false;
const char *addr = nullptr; const char *addr = nullptr;
@ -1674,7 +1673,7 @@ int start_listen(HttpServer *sv, struct ev_loop *loop, Sessions *sessions,
auto acceptor = std::make_shared<AcceptHandler>(sv, sessions, config); auto acceptor = std::make_shared<AcceptHandler>(sv, sessions, config);
auto service = util::utos(config->port); auto service = util::utos(config->port);
memset(&hints, 0, sizeof(addrinfo)); addrinfo hints{};
hints.ai_family = AF_UNSPEC; hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE; hints.ai_flags = AI_PASSIVE;

View File

@ -841,9 +841,8 @@ process_time_stats(const std::vector<std::unique_ptr<Worker>> &workers) {
namespace { namespace {
void resolve_host() { void resolve_host() {
int rv; int rv;
addrinfo hints, *res; addrinfo hints{}, *res;
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC; hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0; hints.ai_protocol = 0;
@ -906,8 +905,7 @@ std::vector<std::string> parse_uris(Iterator first, Iterator last) {
// First URI is treated specially. We use scheme, host and port of // First URI is treated specially. We use scheme, host and port of
// this URI and ignore those in the remaining URIs if present. // this URI and ignore those in the remaining URIs if present.
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
if (first == last) { if (first == last) {
std::cerr << "no URI available" << std::endl; std::cerr << "no URI available" << std::endl;
@ -935,8 +933,7 @@ std::vector<std::string> parse_uris(Iterator first, Iterator last) {
reqlines.push_back(get_reqline(uri, u)); reqlines.push_back(get_reqline(uri, u));
for (; first != last; ++first) { for (; first != last; ++first) {
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
auto uri = (*first).c_str(); auto uri = (*first).c_str();
@ -1333,8 +1330,7 @@ int main(int argc, char **argv) {
config.data_length = data_stat.st_size; config.data_length = data_stat.st_size;
} }
struct sigaction act; struct sigaction act {};
memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);

View File

@ -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 &match_host,
const std::string &req_authority, const std::string &req_authority,
const std::string &upstream_scheme) { const std::string &upstream_scheme) {
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
CU_ASSERT(0 == http_parser_parse_url(uri.c_str(), uri.size(), 0, &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, auto got = http2::rewrite_location_uri(uri, u, match_host, req_authority,
upstream_scheme); upstream_scheme);

View File

@ -501,9 +501,8 @@ bool HttpClient::need_upgrade() const {
int HttpClient::resolve_host(const std::string &host, uint16_t port) { int HttpClient::resolve_host(const std::string &host, uint16_t port) {
int rv; int rv;
addrinfo hints;
this->host = host; this->host = host;
memset(&hints, 0, sizeof(hints)); addrinfo hints{};
hints.ai_family = AF_UNSPEC; hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = 0; hints.ai_protocol = 0;
@ -1260,8 +1259,7 @@ bool HttpClient::add_request(const std::string &uri,
const nghttp2_data_provider *data_prd, const nghttp2_data_provider *data_prd,
int64_t data_length, int64_t data_length,
const nghttp2_priority_spec &pri_spec, int level) { const nghttp2_priority_spec &pri_spec, int level) {
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) {
return false; 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 uri = strip_fragment(p.first.c_str());
auto res_type = p.second; auto res_type = p.second;
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) == 0 && 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_SCHEMA) &&
util::fieldeq(uri.c_str(), u, req->uri.c_str(), req->u, UF_HOST) && 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: { case NGHTTP2_PUSH_PROMISE: {
auto stream_id = frame->push_promise.promised_stream_id; auto stream_id = frame->push_promise.promised_stream_id;
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
// TODO Set pri and level // TODO Set pri and level
nghttp2_priority_spec pri_spec; nghttp2_priority_spec pri_spec;
@ -1820,8 +1816,7 @@ int on_frame_recv_callback2(nghttp2_session *session,
uri += "://"; uri += "://";
uri += authority->value; uri += authority->value;
uri += path->value; uri += path->value;
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) {
nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE, nghttp2_submit_rst_stream(session, NGHTTP2_FLAG_NONE,
frame->push_promise.promised_stream_id, frame->push_promise.promised_stream_id,
@ -2299,8 +2294,7 @@ int run(char **uris, int n) {
std::vector<std::tuple<std::string, nghttp2_data_provider *, int64_t>> std::vector<std::tuple<std::string, nghttp2_data_provider *, int64_t>>
requests; requests;
for (int i = 0; i < n; ++i) { for (int i = 0; i < n; ++i) {
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
auto uri = strip_fragment(uris[i]); auto uri = strip_fragment(uris[i]);
if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) { if (http_parser_parse_url(uri.c_str(), uri.size(), 0, &u) != 0) {
std::cerr << "[ERROR] Could not parse URI " << uri << std::endl; 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( nghttp2_option_set_peer_max_concurrent_streams(
config.http2_option, config.peer_max_concurrent_streams); config.http2_option, config.peer_max_concurrent_streams);
struct sigaction act; struct sigaction act {};
memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);
reset_timer(); reset_timer();

View File

@ -371,8 +371,7 @@ int main(int argc, char **argv) {
set_color_output(color || isatty(fileno(stdout))); set_color_output(color || isatty(fileno(stdout)));
struct sigaction act; struct sigaction act {};
memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);

View File

@ -119,12 +119,11 @@ const int GRACEFUL_SHUTDOWN_SIGNAL = SIGQUIT;
namespace { namespace {
int resolve_hostname(sockaddr_union *addr, size_t *addrlen, int resolve_hostname(sockaddr_union *addr, size_t *addrlen,
const char *hostname, uint16_t port, int family) { const char *hostname, uint16_t port, int family) {
addrinfo hints;
int rv; int rv;
auto service = util::utos(port); auto service = util::utos(port);
memset(&hints, 0, sizeof(addrinfo));
addrinfo hints{};
hints.ai_family = family; hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
#ifdef AI_ADDRCONFIG #ifdef AI_ADDRCONFIG
@ -279,12 +278,11 @@ std::unique_ptr<AcceptHandler> create_acceptor(ConnectionHandler *handler,
} }
} }
addrinfo hints;
int fd = -1; int fd = -1;
int rv; int rv;
auto service = util::utos(get_config()->port); auto service = util::utos(get_config()->port);
memset(&hints, 0, sizeof(addrinfo)); addrinfo hints{};
hints.ai_family = family; hints.ai_family = family;
hints.ai_socktype = SOCK_STREAM; hints.ai_socktype = SOCK_STREAM;
hints.ai_flags = AI_PASSIVE; hints.ai_flags = AI_PASSIVE;
@ -849,7 +847,7 @@ int16_t DEFAULT_DOWNSTREAM_PORT = 80;
namespace { namespace {
void fill_default_config() { void fill_default_config() {
memset(mod_config(), 0, sizeof(*mod_config())); *mod_config() = {};
mod_config()->verbose = false; mod_config()->verbose = false;
mod_config()->daemon = false; mod_config()->daemon = false;
@ -2359,8 +2357,7 @@ int main(int argc, char **argv) {
reset_timer(); reset_timer();
} }
struct sigaction act; struct sigaction act {};
memset(&act, 0, sizeof(struct sigaction));
act.sa_handler = SIG_IGN; act.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &act, nullptr); sigaction(SIGPIPE, &act, nullptr);

View File

@ -1575,8 +1575,7 @@ int parse_config(const char *opt, const char *optarg,
return 0; return 0;
case SHRPX_OPTID_BACKEND_HTTP_PROXY_URI: { case SHRPX_OPTID_BACKEND_HTTP_PROXY_URI: {
// parse URI and get hostname, port and optionally userinfo. // parse URI and get hostname, port and optionally userinfo.
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
int rv = http_parser_parse_url(optarg, strlen(optarg), 0, &u); int rv = http_parser_parse_url(optarg, strlen(optarg), 0, &u);
if (rv == 0) { if (rv == 0) {
std::string val; std::string val;

View File

@ -129,9 +129,8 @@ ConnectionHandler::~ConnectionHandler() {
} }
void ConnectionHandler::worker_reopen_log_files() { void ConnectionHandler::worker_reopen_log_files() {
WorkerEvent wev; WorkerEvent wev{};
memset(&wev, 0, sizeof(wev));
wev.type = REOPEN_LOG; wev.type = REOPEN_LOG;
for (auto &worker : workers_) { for (auto &worker : workers_) {
@ -141,9 +140,8 @@ void ConnectionHandler::worker_reopen_log_files() {
void ConnectionHandler::worker_renew_ticket_keys( void ConnectionHandler::worker_renew_ticket_keys(
const std::shared_ptr<TicketKeys> &ticket_keys) { const std::shared_ptr<TicketKeys> &ticket_keys) {
WorkerEvent wev; WorkerEvent wev{};
memset(&wev, 0, sizeof(wev));
wev.type = RENEW_TICKET_KEYS; wev.type = RENEW_TICKET_KEYS;
wev.ticket_keys = ticket_keys; wev.ticket_keys = ticket_keys;
@ -216,8 +214,7 @@ void ConnectionHandler::graceful_shutdown_worker() {
return; return;
} }
WorkerEvent wev; WorkerEvent wev{};
memset(&wev, 0, sizeof(wev));
wev.type = GRACEFUL_SHUTDOWN; wev.type = GRACEFUL_SHUTDOWN;
if (LOG_ENABLED(INFO)) { 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; LOG(INFO) << "Dispatch connection to worker #" << idx;
} }
++worker_round_robin_cnt_; ++worker_round_robin_cnt_;
WorkerEvent wev; WorkerEvent wev{};
memset(&wev, 0, sizeof(wev));
wev.type = NEW_CONNECTION; wev.type = NEW_CONNECTION;
wev.client_fd = fd; wev.client_fd = fd;
memcpy(&wev.client_addr, addr, addrlen); memcpy(&wev.client_addr, addr, addrlen);

View File

@ -621,8 +621,7 @@ void Downstream::rewrite_location_response_header(
if (!hd) { if (!hd) {
return; return;
} }
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
int rv = int rv =
http_parser_parse_url((*hd).value.c_str(), (*hd).value.size(), 0, &u); http_parser_parse_url((*hd).value.c_str(), (*hd).value.size(), 0, &u);
if (rv != 0) { if (rv != 0) {

View File

@ -1482,8 +1482,7 @@ int Http2Upstream::on_downstream_reset(bool no_retry) {
int Http2Upstream::prepare_push_promise(Downstream *downstream) { int Http2Upstream::prepare_push_promise(Downstream *downstream) {
int rv; int rv;
http_parser_url u; http_parser_url u{};
memset(&u, 0, sizeof(u));
rv = http_parser_parse_url(downstream->get_request_path().c_str(), rv = http_parser_parse_url(downstream->get_request_path().c_str(),
downstream->get_request_path().size(), 0, &u); downstream->get_request_path().size(), 0, &u);
if (rv != 0) { if (rv != 0) {
@ -1513,8 +1512,7 @@ int Http2Upstream::prepare_push_promise(Downstream *downstream) {
const char *relq = nullptr; const char *relq = nullptr;
size_t relqlen = 0; size_t relqlen = 0;
http_parser_url v; http_parser_url v{};
memset(&v, 0, sizeof(v));
rv = http_parser_parse_url(link_url, link_urllen, 0, &v); rv = http_parser_parse_url(link_url, link_urllen, 0, &v);
if (rv != 0) { if (rv != 0) {
assert(link_urllen); assert(link_urllen);

View File

@ -452,8 +452,7 @@ SpdyUpstream::SpdyUpstream(uint16_t version, ClientHandler *handler)
: 0, : 0,
!get_config()->http2_proxy), !get_config()->http2_proxy),
handler_(handler), session_(nullptr) { handler_(handler), session_(nullptr) {
spdylay_session_callbacks callbacks; spdylay_session_callbacks callbacks{};
memset(&callbacks, 0, sizeof(callbacks));
callbacks.send_callback = send_callback; callbacks.send_callback = send_callback;
callbacks.recv_callback = recv_callback; callbacks.recv_callback = recv_callback;
callbacks.on_stream_close_callback = on_stream_close_callback; callbacks.on_stream_close_callback = on_stream_close_callback;

View File

@ -348,8 +348,7 @@ std::string iso8601_date(int64_t ms) {
} }
time_t parse_http_date(const std::string &s) { time_t parse_http_date(const std::string &s) {
tm tm; tm tm{};
memset(&tm, 0, sizeof(tm));
char *r = strptime(s.c_str(), "%a, %d %b %Y %H:%M:%S GMT", &tm); char *r = strptime(s.c_str(), "%a, %d %b %Y %H:%M:%S GMT", &tm);
if (r == 0) { if (r == 0) {
return 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) { bool numeric_host(const char *hostname) {
struct addrinfo hints;
struct addrinfo *res; struct addrinfo *res;
memset(&hints, 0, sizeof(hints)); struct addrinfo hints {};
hints.ai_family = AF_UNSPEC; hints.ai_family = AF_UNSPEC;
hints.ai_flags = AI_NUMERICHOST; hints.ai_flags = AI_NUMERICHOST;
if (getaddrinfo(hostname, nullptr, &hints, &res)) { if (getaddrinfo(hostname, nullptr, &hints, &res)) {