From c4368a9416f38587e5cc68bd6bdb5224addd9723 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sun, 2 Oct 2016 22:06:50 +0900 Subject: [PATCH] nghttpx: Use StringRef for AltSvc fields --- src/shrpx_config.cc | 8 ++++---- src/shrpx_config.h | 2 +- src/shrpx_https_upstream.cc | 5 ++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/shrpx_config.cc b/src/shrpx_config.cc index c4464129..3911db70 100644 --- a/src/shrpx_config.cc +++ b/src/shrpx_config.cc @@ -2376,16 +2376,16 @@ int parse_config(Config *config, int optid, const StringRef &opt, AltSvc altsvc{}; - altsvc.protocol_id = tokens[0].str(); + altsvc.protocol_id = make_string_ref(config->balloc, tokens[0]); altsvc.port = port; - altsvc.service = tokens[1].str(); + altsvc.service = make_string_ref(config->balloc, tokens[1]); if (tokens.size() > 2) { - altsvc.host = tokens[2].str(); + altsvc.host = make_string_ref(config->balloc, tokens[2]); if (tokens.size() > 3) { - altsvc.origin = tokens[3].str(); + altsvc.origin = make_string_ref(config->balloc, tokens[3]); } } diff --git a/src/shrpx_config.h b/src/shrpx_config.h index 94065ca0..a535f124 100644 --- a/src/shrpx_config.h +++ b/src/shrpx_config.h @@ -337,7 +337,7 @@ enum shrpx_forwarded_node_type { }; struct AltSvc { - std::string protocol_id, host, origin, service; + StringRef protocol_id, host, origin, service; uint16_t port; }; diff --git a/src/shrpx_https_upstream.cc b/src/shrpx_https_upstream.cc index 24d8b83a..f3fd3027 100644 --- a/src/shrpx_https_upstream.cc +++ b/src/shrpx_https_upstream.cc @@ -962,10 +962,9 @@ std::unique_ptr HttpsUpstream::pop_downstream() { namespace { void write_altsvc(DefaultMemchunks *buf, BlockAllocator &balloc, const AltSvc &altsvc) { - buf->append( - util::percent_encode_token(balloc, StringRef{altsvc.protocol_id})); + buf->append(util::percent_encode_token(balloc, altsvc.protocol_id)); buf->append("=\""); - buf->append(util::quote_string(balloc, StringRef{altsvc.host})); + buf->append(util::quote_string(balloc, altsvc.host)); buf->append(':'); buf->append(altsvc.service); buf->append('"');