HTTP业务层修复获得content-length方法与tango cache client 接口不兼容的问题。

This commit is contained in:
zhengchao
2018-10-15 18:37:32 +08:00
parent a266611ab8
commit 92d96a5a49
3 changed files with 6 additions and 6 deletions

View File

@@ -889,9 +889,10 @@ void cache_make_response(const struct tfe_http_session * session, struct pangu_h
struct tfe_http_half* cached_response=tfe_http_session_response_create(wr_session, 200);
tfe_http_nonstd_field_write(cached_response, "X-Cache-Lookup", "Hit From MESA-TFE");
tfe_http_std_field_write(cached_response, TFE_HTTP_CONT_TYPE, ctx->cached_header->content_type);
tfe_http_std_field_write(cached_response, TFE_HTTP_CONT_LENGTH, ctx->cached_header->content_length);
sscanf(ctx->cached_header->content_length, "%llu", &cont_len);
assert(cont_len==evbuffer_get_length(ctx->cached_body));
char temp[TFE_STRING_MAX];
snprintf(temp, sizeof(temp), "%lu", ctx->cached_header->content_length);
tfe_http_std_field_write(cached_response, TFE_HTTP_CONT_LENGTH, temp);
assert(ctx->cached_header->content_length==evbuffer_get_length(ctx->cached_body));
tfe_http_half_append_body(cached_response, (char*)evbuffer_pullup(ctx->cached_body, -1), evbuffer_get_length(ctx->cached_body), 0);
tfe_http_half_append_body(cached_response, NULL, 0, 0);

View File

@@ -61,7 +61,6 @@ static char* read_http1_hdr(const char* hdr, const char* field_name)
}
void cache_query_free_meta(struct cached_meta* meta)
{
FREE(&meta->content_length);
FREE(&meta->content_type);
FREE(&meta);
return;
@@ -89,7 +88,7 @@ struct cached_meta* cache_query_result_get_header(future_result_t * result)
return NULL;
}
meta= ALLOC(struct cached_meta, 1);
meta->content_length=read_http1_hdr((const char*)cache_result->data_frag, "content-length");
meta->content_length=cache_result->tlength;
meta->content_type=read_http1_hdr((const char*)cache_result->data_frag, "content-type");
return meta;
}

View File

@@ -15,7 +15,7 @@ struct cache_handle;
struct cache_handle* create_web_cache_handle(const char* profile_path, const char* section, void *logger);
struct cached_meta
{
char* content_length;
size_t content_length;
char* content_type;
};
struct cached_meta* cache_query_result_get_header(future_result_t * result);