lbarnaud Sat May 16 20:34:08 2009 UTC
Modified files:
/php-src/ext/standard http_fopen_wrapper.c
Log:
Fixed bug #38802 (max_redirects and ignore_errors)
(patch by [email protected])
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/http_fopen_wrapper.c?r1=1.143&r2=1.144&diff_format=u
Index: php-src/ext/standard/http_fopen_wrapper.c
diff -u php-src/ext/standard/http_fopen_wrapper.c:1.143
php-src/ext/standard/http_fopen_wrapper.c:1.144
--- php-src/ext/standard/http_fopen_wrapper.c:1.143 Thu May 14 13:36:44 2009
+++ php-src/ext/standard/http_fopen_wrapper.c Sat May 16 20:34:08 2009
@@ -19,7 +19,7 @@
| Sara Golemon <[email protected]> |
+----------------------------------------------------------------------+
*/
-/* $Id: http_fopen_wrapper.c,v 1.143 2009/05/14 13:36:44 cellog Exp $ */
+/* $Id: http_fopen_wrapper.c,v 1.144 2009/05/16 20:34:08 lbarnaud Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -146,7 +146,7 @@
size_t chunk_size = 0, file_size = 0;
int eol_detect = 0;
char *transport_string, *errstr = NULL;
- int transport_len, have_header = 0, request_fulluri = 0;
+ int transport_len, have_header = 0, request_fulluri = 0, ignore_errors
= 0;
char *protocol_version = NULL;
int protocol_version_len = 3; /* Default: "1.0" */
char *charset = NULL;
@@ -600,9 +600,11 @@
} else {
response_code = 0;
}
+ if (context &&
SUCCESS==php_stream_context_get_option(context, "http", "ignore_errors",
&tmpzval)) {
+ ignore_errors = zend_is_true(*tmpzval);
+ }
/* when we request only the header, don't fail even on
error codes */
- if ((options & STREAM_ONLY_GET_HEADERS) ||
- (context &&
php_stream_context_get_option(context, "http", "ignore_errors", &tmpzval) ==
SUCCESS && zend_is_true(*tmpzval)) ) {
+ if ((options & STREAM_ONLY_GET_HEADERS) ||
ignore_errors) {
reqok = 1;
}
/* all status codes in the 2xx range are defined by the
specification as successful;
@@ -704,7 +706,7 @@
}
if (!reqok || location[0] != '\0') {
- if (options & STREAM_ONLY_GET_HEADERS && redirect_max <= 1) {
+ if (((options & STREAM_ONLY_GET_HEADERS) || ignore_errors) &&
redirect_max <= 1) {
goto out;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php