From 798c9bcc3be9879c108f032cf354f83e243da1fb Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Fri, 12 Jan 2007 12:15:36 +0000 Subject: [PATCH] - version bump - better wrong param count error messages - fix greedy response message parsing with proxy CONNECT requests --- http_request_api.c | 20 +++++++++++++++----- package2.xml | 17 ++++------------- php_http.h | 2 +- php_http_std_defs.h | 5 +---- 4 files changed, 21 insertions(+), 23 deletions(-) diff --git a/http_request_api.c b/http_request_api.c index bfb3574..797e9a2 100644 --- a/http_request_api.c +++ b/http_request_api.c @@ -947,21 +947,30 @@ static int http_curl_raw_callback(CURL *ch, curl_infotype type, char *data, size { http_request *request = (http_request *) ctx; +#define EMPTY_HEADER(d, l) ((l == 1 && d[0] == '\n') || (l == 2 && d[0] == '\r' && d[1] == '\n')) switch (type) { case CURLINFO_DATA_IN: if (request->conv.last_type == CURLINFO_HEADER_IN) { phpstr_appends(&request->conv.response, HTTP_CRLF); } - case CURLINFO_HEADER_IN: phpstr_append(&request->conv.response, data, length); break; + case CURLINFO_HEADER_IN: + if (!EMPTY_HEADER(data, length)) { + phpstr_append(&request->conv.response, data, length); + } + break; case CURLINFO_DATA_OUT: if (request->conv.last_type == CURLINFO_HEADER_OUT) { phpstr_appends(&request->conv.request, HTTP_CRLF); } - case CURLINFO_HEADER_OUT: phpstr_append(&request->conv.request, data, length); break; + case CURLINFO_HEADER_OUT: + if (!EMPTY_HEADER(data, length)) { + phpstr_append(&request->conv.request, data, length); + } + break; default: #if 0 fprintf(stderr, "## ", type); @@ -980,13 +989,14 @@ static int http_curl_raw_callback(CURL *ch, curl_infotype type, char *data, size if (data[length-1] != 0xa) { fprintf(stderr, "\n"); } -#endif -#if 0 - fprintf(stderr, "%.*s%s", length, data, data[length-1]=='\n'?"":"\n"); #endif break; } +#if 0 + fprintf(stderr, "DEBUG: %3d (%5zu) %.*s%s", type, length, length, data, data[length-1]=='\n'?"":"\n"); +#endif + if (type) { request->conv.last_type = type; } diff --git a/package2.xml b/package2.xml index b9e136e..595bd7c 100644 --- a/package2.xml +++ b/package2.xml @@ -28,9 +28,9 @@ support. Parallel requests are available for PHP 5 and greater. mike@php.net yes - 2006-12-04 + 2006-12-19 - 1.4.0RC1 + 1.4.0RC2 1.4.0 @@ -39,17 +39,8 @@ support. Parallel requests are available for PHP 5 and greater. BSD, revised diff --git a/php_http.h b/php_http.h index ec45112..302bc86 100644 --- a/php_http.h +++ b/php_http.h @@ -15,7 +15,7 @@ #ifndef PHP_EXT_HTTP_H #define PHP_EXT_HTTP_H -#define PHP_EXT_HTTP_VERSION "1.4.0RC1" +#define PHP_EXT_HTTP_VERSION "1.4.0RC2" #ifdef HAVE_CONFIG_H # include "config.h" diff --git a/php_http_std_defs.h b/php_http_std_defs.h index 0a80180..a454d61 100644 --- a/php_http_std_defs.h +++ b/php_http_std_defs.h @@ -93,10 +93,7 @@ typedef int STATUS; } /* function accepts no args */ -#define NO_ARGS \ - if (ZEND_NUM_ARGS()) { \ - zend_error(E_NOTICE, "Wrong parameter count for %s()", get_active_function_name(TSRMLS_C)); \ - } +#define NO_ARGS zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "") /* CR LF */ #define HTTP_CRLF "\r\n" -- 2.30.2