增加根据Host和URI拼接URL的功能

This commit is contained in:
Lu Qiuwen
2018-09-23 20:01:11 +08:00
parent 2798783641
commit e128dba934
3 changed files with 16 additions and 5 deletions

View File

@@ -131,11 +131,21 @@ void __hf_public_req_fill_from_private(struct http_half_private * hf_private, st
/* uri is stored in underlay evbuffer, we need to append a terminal zero */
static const char __zero = 0;
evbuffer_add(hf_private->evbuf_uri, &__zero, sizeof(__zero));
hf_req_spec->uri = (char *) evbuffer_pullup(hf_private->evbuf_uri, evbuffer_get_length(hf_private->evbuf_uri));
/* TODO: URL
* url is more complex. need to review RFC */
hf_req_spec->url = hf_req_spec->uri;
/* TODO: url is more complex. need to review RFC */
if (hf_req_spec->uri[0] != '\0' && hf_req_spec->uri[0] != '/')
{
asprintf(&hf_private->url_storage, "%s/%s", hf_req_spec->host, hf_req_spec->uri);
}
else
{
asprintf(&hf_private->url_storage, "%s%s", hf_req_spec->host, hf_req_spec->uri);
}
hf_req_spec->url = hf_private->url_storage;
assert(hf_req_spec->url != NULL);
}
void __hf_public_resp_fill_from_private(struct http_half_private * hf_private, struct http_parser * parser)