| 430 | /* ── Head parsing ─────────────────────────────────────────────── */ |
| 431 | |
| 432 | static bool header_name_is(const char *line, size_t name_len, const char *name) { |
| 433 | for (size_t i = 0; i < name_len; i++) { |
| 434 | if (tolower((unsigned char)line[i]) != name[i]) |
| 435 | return false; |
| 436 | } |
| 437 | return name[name_len] == '\0' ? true : false; |
| 438 | } |
| 439 | |
| 440 | /* Copy a trimmed header value into out. Oversize security headers are rejected, |
| 441 | * never silently converted into an apparently absent header. */ |
no outgoing calls
no test coverage detected