| 515 | } |
| 516 | |
| 517 | void WebServer::sendHeader(const String &name, const String &value, bool first) { |
| 518 | if (name.indexOf('\r') != -1 || name.indexOf('\n') != -1) { |
| 519 | log_e("Invalid character in HTTP header name"); |
| 520 | return; |
| 521 | } |
| 522 | |
| 523 | if (value.indexOf('\r') != -1 || value.indexOf('\n') != -1) { |
| 524 | log_e("Invalid character in HTTP header value"); |
| 525 | return; |
| 526 | } |
| 527 | |
| 528 | RequestArgument *header = new RequestArgument(); |
| 529 | header->key = name; |
| 530 | header->value = value; |
| 531 | |
| 532 | if (!_responseHeaders || first) { |
| 533 | header->next = _responseHeaders; |
| 534 | _responseHeaders = header; |
| 535 | } else { |
| 536 | RequestArgument *last = _responseHeaders; |
| 537 | while (last->next) { |
| 538 | last = last->next; |
| 539 | } |
| 540 | last->next = header; |
| 541 | } |
| 542 | |
| 543 | _responseHeaderCount++; |
| 544 | } |
| 545 | |
| 546 | void WebServer::setContentLength(const size_t contentLength) { |
| 547 | _contentLength = contentLength; |
no test coverage detected