MCPcopy Create free account
hub / github.com/apache/trafficserver / SslHdrSetHeader

Function SslHdrSetHeader

plugins/experimental/sslheaders/sslheaders.cc:91–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

89}
90
91static void
92SslHdrSetHeader(TSMBuffer mbuf, TSMLoc mhdr, const std::string &name, BIO *value)
93{
94 TSMLoc field;
95 long vlen;
96 char *vptr;
97
98 vlen = BIO_get_mem_data(value, &vptr);
99
100 SslHdrDebug("SSL header '%s'", name.c_str());
101
102 field = TSMimeHdrFieldFind(mbuf, mhdr, name.c_str(), name.size());
103 if (field == TS_NULL_MLOC) {
104 TSMimeHdrFieldCreateNamed(mbuf, mhdr, name.c_str(), name.size(), &field);
105 TSMimeHdrFieldValueStringSet(mbuf, mhdr, field, -1, vptr, vlen);
106 TSMimeHdrFieldAppend(mbuf, mhdr, field);
107 TSHandleMLocRelease(mbuf, mhdr, field);
108 } else {
109 TSMLoc next;
110
111 // Overwrite the first value.
112 TSMimeHdrFieldValueStringSet(mbuf, mhdr, field, -1, vptr, vlen);
113 next = TSMimeHdrFieldNextDup(mbuf, mhdr, field);
114 TSHandleMLocRelease(mbuf, mhdr, field);
115
116 for (field = next; field != TS_NULL_MLOC; field = next) {
117 next = TSMimeHdrFieldNextDup(mbuf, mhdr, field);
118 TSMimeHdrFieldDestroy(mbuf, mhdr, field);
119 TSHandleMLocRelease(mbuf, mhdr, field);
120 }
121 }
122}
123
124namespace
125{

Callers 1

SslHdrExpandFunction · 0.85

Calls 9

TSMimeHdrFieldFindFunction · 0.85
TSMimeHdrFieldAppendFunction · 0.85
TSHandleMLocReleaseFunction · 0.85
TSMimeHdrFieldNextDupFunction · 0.85
TSMimeHdrFieldDestroyFunction · 0.85
c_strMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected