| 3353 | } |
| 3354 | |
| 3355 | void |
| 3356 | LogAccess::set_http_header_field(LogField::Container container, char *field, char *buf, int len) |
| 3357 | { |
| 3358 | HTTPHdr *header; |
| 3359 | |
| 3360 | switch (container) { |
| 3361 | case LogField::CQH: |
| 3362 | case LogField::ECQH: |
| 3363 | header = m_client_request; |
| 3364 | break; |
| 3365 | |
| 3366 | case LogField::PSH: |
| 3367 | case LogField::EPSH: |
| 3368 | header = m_proxy_response; |
| 3369 | break; |
| 3370 | |
| 3371 | case LogField::PQH: |
| 3372 | case LogField::EPQH: |
| 3373 | header = m_proxy_request; |
| 3374 | break; |
| 3375 | |
| 3376 | case LogField::SSH: |
| 3377 | case LogField::ESSH: |
| 3378 | header = m_server_response; |
| 3379 | break; |
| 3380 | |
| 3381 | case LogField::CSSH: |
| 3382 | case LogField::ECSSH: |
| 3383 | header = m_cache_response; |
| 3384 | break; |
| 3385 | |
| 3386 | default: |
| 3387 | header = nullptr; |
| 3388 | break; |
| 3389 | } |
| 3390 | |
| 3391 | if (header && buf) { |
| 3392 | MIMEField *fld = header->field_find(field, static_cast<int>(::strlen(field))); |
| 3393 | if (fld) { |
| 3394 | // Loop over dups, update each of them |
| 3395 | // |
| 3396 | while (fld) { |
| 3397 | // make sure to reuse header heaps as otherwise |
| 3398 | // coalesce logic in header heap may free up |
| 3399 | // memory pointed to by cquuc or other log fields |
| 3400 | header->field_value_set(fld, buf, len, true); |
| 3401 | fld = fld->m_next_dup; |
| 3402 | } |
| 3403 | } |
| 3404 | } |
| 3405 | } |
nothing calls this directly
no test coverage detected