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

Function writeStandardHeaderFields

plugins/esi/combo_handler.cc:1167–1192  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1165static const char INVARIANT_FIELD_LINES_SIZE = sizeof(INVARIANT_FIELD_LINES) - 1;
1166
1167static bool
1168writeStandardHeaderFields(InterceptData &int_data, int &n_bytes_written)
1169{
1170 if (find(HEADER_ALLOWLIST.begin(), HEADER_ALLOWLIST.end(), TS_MIME_FIELD_VARY) == HEADER_ALLOWLIST.end()) {
1171 if (TSIOBufferWrite(int_data.output.buffer, INVARIANT_FIELD_LINES, INVARIANT_FIELD_LINES_SIZE) == TS_ERROR) {
1172 LOG_ERROR("Error while writing invariant fields");
1173 return false;
1174 }
1175 n_bytes_written += INVARIANT_FIELD_LINES_SIZE;
1176 }
1177
1178 if (find(HEADER_ALLOWLIST.begin(), HEADER_ALLOWLIST.end(), TS_MIME_FIELD_LAST_MODIFIED) == HEADER_ALLOWLIST.end()) {
1179 time_t time_now = static_cast<time_t>(TShrtime() / 1000000000); // it returns nanoseconds!
1180 char last_modified_line[128];
1181 struct tm gmnow;
1182 int last_modified_line_size =
1183 strftime(last_modified_line, 128, "Last-Modified: %a, %d %b %Y %T GMT\r\n", gmtime_r(&time_now, &gmnow));
1184 if (TSIOBufferWrite(int_data.output.buffer, last_modified_line, last_modified_line_size) == TS_ERROR) {
1185 LOG_ERROR("Error while writing last-modified fields");
1186 return false;
1187 }
1188 n_bytes_written += last_modified_line_size;
1189 }
1190
1191 return true;
1192}
1193
1194static bool
1195writeErrorResponse(InterceptData &int_data, int &n_bytes_written)

Callers 1

writeResponseFunction · 0.85

Calls 4

TSIOBufferWriteFunction · 0.85
TShrtimeFunction · 0.85
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected