mirror of https://git.kore.io/kore.git
Let http_response_header() handle duplicates.
If a response header was previously by an application for an HTTP request http_response_header() will now overwrite the previous value.
This commit is contained in:
parent
eb0b8f21e3
commit
cdd681d602
13
src/http.c
13
src/http.c
|
@ -400,11 +400,24 @@ http_response_header(struct http_request *req,
|
||||||
{
|
{
|
||||||
struct http_header *hdr;
|
struct http_header *hdr;
|
||||||
|
|
||||||
|
hdr = NULL;
|
||||||
kore_debug("http_response_header(%p, %s, %s)", req, header, value);
|
kore_debug("http_response_header(%p, %s, %s)", req, header, value);
|
||||||
|
|
||||||
|
TAILQ_FOREACH(hdr, &req->resp_headers, list) {
|
||||||
|
if (!strcasecmp(hdr->header, header)) {
|
||||||
|
TAILQ_REMOVE(&req->resp_headers, hdr, list);
|
||||||
|
kore_free(hdr->header);
|
||||||
|
kore_free(hdr->value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hdr == NULL)
|
||||||
hdr = kore_pool_get(&http_header_pool);
|
hdr = kore_pool_get(&http_header_pool);
|
||||||
|
|
||||||
hdr->header = kore_strdup(header);
|
hdr->header = kore_strdup(header);
|
||||||
hdr->value = kore_strdup(value);
|
hdr->value = kore_strdup(value);
|
||||||
|
|
||||||
TAILQ_INSERT_TAIL(&(req->resp_headers), hdr, list);
|
TAILQ_INSERT_TAIL(&(req->resp_headers), hdr, list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue