nghttpx: More StringRef-fy

This commit is contained in:
Tatsuhiro Tsujikawa 2016-03-25 01:10:58 +09:00
parent a9e365ad7d
commit 186d440168
3 changed files with 27 additions and 28 deletions

View File

@ -1011,27 +1011,27 @@ bool conf_exists(const char *path) {
} // namespace
namespace {
constexpr char DEFAULT_NPN_LIST[] = "h2,h2-16,h2-14,"
constexpr auto DEFAULT_NPN_LIST = StringRef::from_lit("h2,h2-16,h2-14,"
#ifdef HAVE_SPDYLAY
"spdy/3.1,"
"spdy/3.1,"
#endif // HAVE_SPDYLAY
"http/1.1";
"http/1.1");
} // namespace
namespace {
constexpr char DEFAULT_TLS_PROTO_LIST[] = "TLSv1.2,TLSv1.1";
constexpr auto DEFAULT_TLS_PROTO_LIST = StringRef::from_lit("TLSv1.2,TLSv1.1");
} // namespace
namespace {
constexpr char DEFAULT_ACCESSLOG_FORMAT[] =
constexpr auto DEFAULT_ACCESSLOG_FORMAT = StringRef::from_lit(
R"($remote_addr - - [$time_local] )"
R"("$request" $status $body_bytes_sent )"
R"("$http_referer" "$http_user_agent")";
R"("$http_referer" "$http_user_agent")");
} // namespace
namespace {
constexpr char DEFAULT_DOWNSTREAM_HOST[] = "127.0.0.1";
int16_t DEFAULT_DOWNSTREAM_PORT = 80;
constexpr int16_t DEFAULT_DOWNSTREAM_PORT = 80;
} // namespace;
namespace {
@ -1117,8 +1117,7 @@ void fill_default_config() {
auto &loggingconf = mod_config()->logging;
{
auto &accessconf = loggingconf.access;
accessconf.format =
parse_log_format(StringRef::from_lit(DEFAULT_ACCESSLOG_FORMAT));
accessconf.format = parse_log_format(DEFAULT_ACCESSLOG_FORMAT);
auto &errorconf = loggingconf.error;
errorconf.file = "/dev/stderr";
@ -2025,12 +2024,11 @@ void process_options(int argc, char **argv,
auto &tlsconf = mod_config()->tls;
if (tlsconf.npn_list.empty()) {
tlsconf.npn_list =
util::parse_config_str_list(StringRef::from_lit(DEFAULT_NPN_LIST));
tlsconf.npn_list = util::parse_config_str_list(DEFAULT_NPN_LIST);
}
if (tlsconf.tls_proto_list.empty()) {
tlsconf.tls_proto_list = util::parse_config_str_list(
StringRef::from_lit(DEFAULT_TLS_PROTO_LIST));
tlsconf.tls_proto_list =
util::parse_config_str_list(DEFAULT_TLS_PROTO_LIST);
}
tlsconf.tls_proto_mask = ssl::create_tls_proto_mask(tlsconf.tls_proto_list);

View File

@ -809,12 +809,6 @@ int ClientHandler::perform_http2_upgrade(HttpsUpstream *http) {
auto downstream = http->get_downstream();
auto input = downstream->get_response_buf();
static constexpr char res[] =
"HTTP/1.1 101 Switching Protocols\r\n"
"Connection: Upgrade\r\n"
"Upgrade: " NGHTTP2_CLEARTEXT_PROTO_VERSION_ID "\r\n"
"\r\n";
if (upstream->upgrade_upstream(http) != 0) {
return -1;
}
@ -827,7 +821,14 @@ int ClientHandler::perform_http2_upgrade(HttpsUpstream *http) {
write_ = &ClientHandler::write_clear;
input->remove(*output, input->rleft());
output->append(res, str_size(res));
constexpr auto res =
StringRef::from_lit("HTTP/1.1 101 Switching Protocols\r\n"
"Connection: Upgrade\r\n"
"Upgrade: " NGHTTP2_CLEARTEXT_PROTO_VERSION_ID "\r\n"
"\r\n");
output->append(res);
upstream_ = std::move(upstream);
signal_write();
@ -1030,23 +1031,23 @@ int ClientHandler::proxy_protocol_read() {
--end;
constexpr char HEADER[] = "PROXY ";
constexpr auto HEADER = StringRef::from_lit("PROXY ");
if (static_cast<size_t>(end - rb_.pos) < str_size(HEADER)) {
if (static_cast<size_t>(end - rb_.pos) < HEADER.size()) {
if (LOG_ENABLED(INFO)) {
CLOG(INFO, this) << "PROXY-protocol-v1: PROXY version 1 ID not found";
}
return -1;
}
if (!util::streq_l(HEADER, rb_.pos, str_size(HEADER))) {
if (!util::streq(HEADER, StringRef{rb_.pos, HEADER.size()})) {
if (LOG_ENABLED(INFO)) {
CLOG(INFO, this) << "PROXY-protocol-v1: Bad PROXY protocol version 1 ID";
}
return -1;
}
rb_.drain(str_size(HEADER));
rb_.drain(HEADER.size());
int family;

View File

@ -193,8 +193,8 @@ int ocsp_resp_cb(SSL *ssl, void *arg) {
} // namespace
#endif // OPENSSL_IS_BORINGSSL
constexpr char MEMCACHED_SESSION_CACHE_KEY_PREFIX[] =
"nghttpx:tls-session-cache:";
constexpr auto MEMCACHED_SESSION_CACHE_KEY_PREFIX =
StringRef::from_lit("nghttpx:tls-session-cache:");
namespace {
int tls_session_new_cb(SSL *ssl, SSL_SESSION *session) {
@ -214,7 +214,7 @@ int tls_session_new_cb(SSL *ssl, SSL_SESSION *session) {
auto req = make_unique<MemcachedRequest>();
req->op = MEMCACHED_OP_ADD;
req->key = MEMCACHED_SESSION_CACHE_KEY_PREFIX;
req->key = MEMCACHED_SESSION_CACHE_KEY_PREFIX.str();
req->key += util::format_hex(id, idlen);
auto sessionlen = i2d_SSL_SESSION(session, nullptr);
@ -271,7 +271,7 @@ SSL_SESSION *tls_session_get_cb(SSL *ssl, unsigned char *id, int idlen,
auto req = make_unique<MemcachedRequest>();
req->op = MEMCACHED_OP_GET;
req->key = MEMCACHED_SESSION_CACHE_KEY_PREFIX;
req->key = MEMCACHED_SESSION_CACHE_KEY_PREFIX.str();
req->key += util::format_hex(id, idlen);
req->cb = [conn](MemcachedRequest *, MemcachedResult res) {
if (LOG_ENABLED(INFO)) {