X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_functions.c;h=544a32b2dc703e8723aedf402270246dd26dae59;hp=9f76881a8359beadf1224df9c4c0ab034f58e5a6;hb=48981407809f0404e0427637f8474c9ccc2eafa4;hpb=e32f6fed32939bba9839c0e4f7cdaec02d8828dd diff --git a/http_functions.c b/http_functions.c index 9f76881..544a32b 100644 --- a/http_functions.c +++ b/http_functions.c @@ -606,26 +606,26 @@ PHP_FUNCTION(http_chunked_decode) */ PHP_FUNCTION(http_split_response) { - zval *zresponse, *zbody, *zheaders; + char *response, *body; + int response_len; + size_t body_len; + zval *zheaders; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zresponse) != SUCCESS) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &response, &response_len) != SUCCESS) { RETURN_FALSE; } - convert_to_string(zresponse); - - MAKE_STD_ZVAL(zbody); MAKE_STD_ZVAL(zheaders); array_init(zheaders); - if (SUCCESS != http_split_response(zresponse, zheaders, zbody)) { + if (SUCCESS != http_split_response(response, response_len, Z_ARRVAL_P(zheaders), &body, &body_len)) { http_error(E_WARNING, HTTP_E_PARSE, "Could not parse HTTP response"); RETURN_FALSE; } array_init(return_value); add_index_zval(return_value, 0, zheaders); - add_index_zval(return_value, 1, zbody); + add_index_stringl(return_value, 1, body, body_len, 0); } /* }}} */