nghttpx: Use StringRef for AltSvc fields

This commit is contained in:
Tatsuhiro Tsujikawa 2016-10-02 22:06:50 +09:00
parent fdc1eb526b
commit c4368a9416
3 changed files with 7 additions and 8 deletions

View File

@ -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]);
}
}

View File

@ -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;
};

View File

@ -962,10 +962,9 @@ std::unique_ptr<Downstream> 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('"');