X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_message_api.c;h=15fa449eb21eef2e2453152da7cacf163d58c68b;hp=e399ed666a6e51a4c77bc41ae9f42151c72ea2ad;hb=b562e34cf4f8c8fae7b8fe773e0eed71592b09c2;hpb=b107d451def2ff6dcdaad2cfc23bb0344b4a3baf diff --git a/http_message_api.c b/http_message_api.c index e399ed6..15fa449 100644 --- a/http_message_api.c +++ b/http_message_api.c @@ -138,7 +138,7 @@ PHP_HTTP_API http_message *_http_message_parse_ex(http_message *msg, const char msg = http_message_init(msg); - if (SUCCESS != http_parse_headers_cb(message, &msg->hdrs, 1, (http_info_callback) http_message_info_callback, &msg)) { + if (SUCCESS != http_parse_headers_cb(message, &msg->hdrs, 1, (http_info_callback) http_message_info_callback, (void **) &msg)) { if (free_msg) { http_message_free(&msg); } @@ -150,13 +150,6 @@ PHP_HTTP_API http_message *_http_message_parse_ex(http_message *msg, const char zval *c; const char *continue_at = NULL; - /* message has content-length header */ - if (c = http_message_header(msg, "Content-Length")) { - long len = atol(Z_STRVAL_P(c)); - phpstr_from_string_ex(PHPSTR(msg), body, len); - continue_at = body + len; - } else - /* message has chunked transfer encoding */ if (c = http_message_header(msg, "Transfer-Encoding")) { if (!strcasecmp("chunked", Z_STRVAL_P(c))) { @@ -182,6 +175,13 @@ PHP_HTTP_API http_message *_http_message_parse_ex(http_message *msg, const char } } else + /* message has content-length header */ + if (c = http_message_header(msg, "Content-Length")) { + long len = atol(Z_STRVAL_P(c)); + phpstr_from_string_ex(PHPSTR(msg), body, len); + continue_at = body + len; + } else + /* message has content-range header */ if (c = http_message_header(msg, "Content-Range")) { ulong start = 0, end = 0;