X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http.c;h=afa95b789c593459b2b5b794f2dea3584bdc8633;hb=92cb4a624a2da6facfea66004bce886877933bcb;hp=e7e1960e3b5b5d427e643a0fa19e882837224cb2;hpb=68a779badeace396e3a86caf9cb86b7e70ff636a;p=m6w6%2Fext-http diff --git a/http.c b/http.c index e7e1960..afa95b7 100644 --- a/http.c +++ b/http.c @@ -51,6 +51,26 @@ ZEND_DECLARE_MODULE_GLOBALS(http) ZEND_GET_MODULE(http) #endif +/* {{{ ARG_INFO */ +#ifdef ZEND_BEGIN_ARG_INFO +ZEND_BEGIN_ARG_INFO(http_request_info_ref_3, 0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(1) +ZEND_END_ARG_INFO(); + +ZEND_BEGIN_ARG_INFO(http_request_info_ref_4, 0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(0) + ZEND_ARG_PASS_INFO(1) +ZEND_END_ARG_INFO(); +#else +static unsigned char http_request_info_ref_3[] = {3, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; +static unsigned char http_request_info_ref_4[] = {4, BYREF_NONE, BYREF_NONE, BYREF_NONE, BYREF_FORCE}; +#endif +/* }}}*/ + /* {{{ http_functions[] */ function_entry http_functions[] = { PHP_FE(http_date, NULL) @@ -71,12 +91,12 @@ function_entry http_functions[] = { PHP_FE(http_send_stream, NULL) PHP_FE(http_chunked_decode, NULL) PHP_FE(http_split_response, NULL) - PHP_FE(http_parse_header, NULL) + PHP_FE(http_parse_headers, NULL) #ifdef HTTP_HAVE_CURL - PHP_FE(http_get, NULL) - PHP_FE(http_head, NULL) - PHP_FE(http_post_data, NULL) - PHP_FE(http_post_array, NULL) + PHP_FE(http_get, http_request_info_ref_3) + PHP_FE(http_head, http_request_info_ref_3) + PHP_FE(http_post_data, http_request_info_ref_4) + PHP_FE(http_post_array, http_request_info_ref_4) #endif PHP_FE(http_auth_basic, NULL) PHP_FE(http_auth_basic_cb, NULL) @@ -689,8 +709,8 @@ PHP_FUNCTION(http_split_response) } /* }}} */ -/* {{{ proto array http_parse_header(string header) */ -PHP_FUNCTION(http_parse_header) +/* {{{ proto array http_parse_headers(string header) */ +PHP_FUNCTION(http_parse_headers) { char *header, *rnrn; int header_len; @@ -698,13 +718,13 @@ PHP_FUNCTION(http_parse_header) if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &header, &header_len)) { RETURN_FALSE; } - + array_init(return_value); - - if (rnrn = strstr(header, "\r\n\r\n")) { + + if (rnrn = strstr(header, HTTP_CRLF HTTP_CRLF)) { header_len = rnrn - header + 2; } - if (SUCCESS != http_parse_header(header, header_len, return_value)) { + if (SUCCESS != http_parse_headers(header, header_len, return_value)) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Could not parse HTTP header"); zval_dtor(return_value); RETURN_FALSE;