iliaa Mon May 28 23:52:13 2007 UTC Modified files: /php-src/main php_content_types.c /php-src/ext/standard url_scanner.c http_fopen_wrapper.c /php-src/ext/iconv iconv.c /TSRM tsrm_virtual_cwd.c /php-src run-tests.php Log: MFB
http://cvs.php.net/viewvc.cgi/php-src/main/php_content_types.c?r1=1.34&r2=1.35&diff_format=u Index: php-src/main/php_content_types.c diff -u php-src/main/php_content_types.c:1.34 php-src/main/php_content_types.c:1.35 --- php-src/main/php_content_types.c:1.34 Mon Jan 1 09:29:35 2007 +++ php-src/main/php_content_types.c Mon May 28 23:52:13 2007 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_content_types.c,v 1.34 2007/01/01 09:29:35 sebastian Exp $ */ +/* $Id: php_content_types.c,v 1.35 2007/05/28 23:52:13 iliaa Exp $ */ #include "php.h" #include "SAPI.h" @@ -37,21 +37,21 @@ */ SAPI_API SAPI_POST_READER_FUNC(php_default_post_reader) { - char *data = NULL; - int length = 0; + char *data; + int length; /* $HTTP_RAW_POST_DATA registration */ - if(!strcmp(SG(request_info).request_method, "POST")) { - if(NULL == SG(request_info).post_entry) { + if (!strcmp(SG(request_info).request_method, "POST")) { + if (NULL == SG(request_info).post_entry) { /* no post handler registered, so we just swallow the data */ sapi_read_standard_form_data(TSRMLS_C); + } + + /* For unknown content types we create HTTP_RAW_POST_DATA even if always_populate_raw_post_data off, + * this is in-effecient, but we need to keep doing it for BC reasons (for now) */ + if ((PG(always_populate_raw_post_data) || NULL == SG(request_info).post_entry) && SG(request_info).post_data) { length = SG(request_info).post_data_length; data = estrndup(SG(request_info).post_data, length); - } else if(PG(always_populate_raw_post_data) && SG(request_info).post_data) { - length = SG(request_info).post_data_length; - data = estrndup(SG(request_info).post_data, length); - } - if(data) { SET_VAR_STRINGL("HTTP_RAW_POST_DATA", data, length); } } @@ -62,11 +62,10 @@ in the long run post handlers should be changed to not touch request_info.post_data for memory preservation reasons */ - if(SG(request_info).post_data) { + if (SG(request_info).post_data) { SG(request_info).raw_post_data = estrndup(SG(request_info).post_data, SG(request_info).post_data_length); SG(request_info).raw_post_data_length = SG(request_info).post_data_length; } - } /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/url_scanner.c?r1=1.46&r2=1.47&diff_format=u Index: php-src/ext/standard/url_scanner.c diff -u php-src/ext/standard/url_scanner.c:1.46 php-src/ext/standard/url_scanner.c:1.47 --- php-src/ext/standard/url_scanner.c:1.46 Mon Jan 1 09:29:32 2007 +++ php-src/ext/standard/url_scanner.c Mon May 28 23:52:13 2007 @@ -15,7 +15,7 @@ | Author: Hartmut Holzgraefe <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: url_scanner.c,v 1.46 2007/01/01 09:29:32 sebastian Exp $ */ +/* $Id: url_scanner.c,v 1.47 2007/05/28 23:52:13 iliaa Exp $ */ #include "php.h" @@ -50,35 +50,24 @@ static char *url_attr_addon(const char *tag,const char *attr,const char *val,const char *buf) { int flag = 0; - TSRMLS_FETCH(); - if(!strcasecmp(tag,"a") && !strcasecmp(attr,"href")) { + if (!strcasecmp(tag,"a") && !strcasecmp(attr,"href")) { flag = 1; - } else if(!strcasecmp(tag,"area" ) && !strcasecmp(attr,"href" )) { + } else if (!strcasecmp(tag,"area" ) && !strcasecmp(attr,"href" )) { flag = 1; - } else if(!strcasecmp(tag,"form" ) && !strcasecmp(attr,"action" )) { + } else if (!strcasecmp(tag,"form" ) && !strcasecmp(attr,"action" )) { flag = 1; - } else if(!strcasecmp(tag,"frame") && !strcasecmp(attr,"source" )) { + } else if (!strcasecmp(tag,"frame") && !strcasecmp(attr,"source" )) { flag = 1; - } else if(!strcasecmp(tag,"img" ) && !strcasecmp(attr,"action" )) { + } else if (!strcasecmp(tag,"img" ) && !strcasecmp(attr,"action" )) { flag = 1; } - if(flag) { - if(!strstr(val,buf)&&!strchr(val,':')) - { - char *result = (char *)emalloc(strlen(buf)+strlen(PG(arg_separator).output)+1); - int n; - - if(strchr(val,'?')) { - strcpy(result,PG(arg_separator).output); - n=strlen(PG(arg_separator).output); - } else { - *result='?'; - n=1; - } - strcpy(result+n,buf); - return result; - } + if(flag && !strstr(val,buf) && !strchr(val,':')) { + char *result; + TSRMLS_FETCH(); + + spprintf(&result, 0, "%s%s", (strchr(val,'?') ? PG(arg_separator).output : "?"), buf); + return result; } return NULL; } @@ -214,7 +203,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp,p,maxl); outp+=l; *newlen+=l; efree(p); @@ -230,7 +219,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp, p, maxl); outp+=l; *newlen+=l; efree(p); @@ -265,7 +254,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp,p,maxl); outp+=l; *newlen+=l; efree(p); @@ -282,7 +271,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp,p,maxl); outp+=l; *newlen+=l; efree(p); @@ -329,7 +318,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp,p,maxl); outp+=l; *newlen+=l; efree(p); @@ -346,7 +335,7 @@ maxl+=l; out=realloc(out,maxl); outp=out+*newlen; - strcpy(outp,p); + strlcpy(outp,p,maxl); outp+=l; *newlen+=l; efree(p); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/http_fopen_wrapper.c?r1=1.125&r2=1.126&diff_format=u Index: php-src/ext/standard/http_fopen_wrapper.c diff -u php-src/ext/standard/http_fopen_wrapper.c:1.125 php-src/ext/standard/http_fopen_wrapper.c:1.126 --- php-src/ext/standard/http_fopen_wrapper.c:1.125 Mon Apr 23 16:32:37 2007 +++ php-src/ext/standard/http_fopen_wrapper.c Mon May 28 23:52:13 2007 @@ -19,7 +19,7 @@ | Sara Golemon <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: http_fopen_wrapper.c,v 1.125 2007/04/23 16:32:37 bjori Exp $ */ +/* $Id: http_fopen_wrapper.c,v 1.126 2007/05/28 23:52:13 iliaa Exp $ */ #include "php.h" #include "php_globals.h" @@ -146,11 +146,12 @@ char *protocol_version = NULL; int protocol_version_len = 3; /* Default: "1.0" */ char *charset = NULL; + struct timeval timeout; tmp_line[0] = '\0'; if (redirect_max < 1) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, "Redirection limit reached, aborting"); + php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "Redirection limit reached, aborting"); return NULL; } @@ -202,9 +203,23 @@ } } + if (context && php_stream_context_get_option(context, wrapper->wops->label, "timeout", &tmpzval) == SUCCESS) { + SEPARATE_ZVAL(tmpzval); + convert_to_double_ex(tmpzval); + timeout.tv_sec = (time_t) Z_DVAL_PP(tmpzval); + timeout.tv_usec = (size_t) ((Z_DVAL_PP(tmpzval) - timeout.tv_sec) * 1000000); + } else { + timeout.tv_sec = FG(default_socket_timeout); + timeout.tv_usec = 0; + } + stream = php_stream_xport_create(transport_string, transport_len, options, STREAM_XPORT_CLIENT | STREAM_XPORT_CONNECT, - NULL, NULL, context, &errstr, NULL); + NULL, &timeout, context, &errstr, NULL); + + if (stream) { + php_stream_set_option(stream, PHP_STREAM_OPTION_READ_TIMEOUT, 0, &timeout); + } if (errstr) { php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "%s", errstr); @@ -275,8 +290,7 @@ redirect_max = Z_LVAL_PP(tmpzval); } - if (header_init && context && - php_stream_context_get_option(context, "http", "method", &tmpzval) == SUCCESS) { + if (context && php_stream_context_get_option(context, "http", "method", &tmpzval) == SUCCESS) { if (Z_TYPE_PP(tmpzval) == IS_STRING && Z_STRLEN_PP(tmpzval) > 0) { scratch_len = strlen(path) + 29 + Z_STRLEN_PP(tmpzval); scratch = emalloc(scratch_len); @@ -284,9 +298,8 @@ strcat(scratch, " "); } } - - if (context && - php_stream_context_get_option(context, "http", "protocol_version", &tmpzval) == SUCCESS) { + + if (context && php_stream_context_get_option(context, "http", "protocol_version", &tmpzval) == SUCCESS) { SEPARATE_ZVAL(tmpzval); convert_to_double_ex(tmpzval); protocol_version_len = spprintf(&protocol_version, 0, "%.1F", Z_DVAL_PP(tmpzval)); @@ -612,7 +625,11 @@ } } - if (!reqok || location[0] != '\0') { + if (!reqok || location[0] != '\0') { + if (options & STREAM_ONLY_GET_HEADERS && redirect_max <= 1) { + goto out; + } + if (location[0] != '\0') php_stream_notify_info(context, PHP_STREAM_NOTIFY_REDIRECTED, location, 0); http://cvs.php.net/viewvc.cgi/php-src/ext/iconv/iconv.c?r1=1.152&r2=1.153&diff_format=u Index: php-src/ext/iconv/iconv.c diff -u php-src/ext/iconv/iconv.c:1.152 php-src/ext/iconv/iconv.c:1.153 --- php-src/ext/iconv/iconv.c:1.152 Wed Jan 24 00:33:44 2007 +++ php-src/ext/iconv/iconv.c Mon May 28 23:52:13 2007 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: iconv.c,v 1.152 2007/01/24 00:33:44 tony2001 Exp $ */ +/* $Id: iconv.c,v 1.153 2007/05/28 23:52:13 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -363,8 +363,8 @@ } if (mimetype != NULL && !(output_context->op & PHP_OUTPUT_HANDLER_CLEAN)) { - spprintf(&content_type, 0, "Content-Type: %.*s; charset=%s", mimetype_len?mimetype_len:strlen(mimetype), mimetype, ICONVG(output_encoding)); - if (content_type && SUCCESS == sapi_add_header(content_type, strlen(content_type), 0)) { + int len = spprintf(&content_type, 0, "Content-Type: %.*s; charset=%s", mimetype_len?mimetype_len:strlen(mimetype), mimetype, ICONVG(output_encoding)); + if (content_type && SUCCESS == sapi_add_header(content_type, len, 0)) { SG(sapi_headers).send_default_content_type = 0; php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC); } http://cvs.php.net/viewvc.cgi/TSRM/tsrm_virtual_cwd.c?r1=1.107&r2=1.108&diff_format=u Index: TSRM/tsrm_virtual_cwd.c diff -u TSRM/tsrm_virtual_cwd.c:1.107 TSRM/tsrm_virtual_cwd.c:1.108 --- TSRM/tsrm_virtual_cwd.c:1.107 Fri May 18 12:15:01 2007 +++ TSRM/tsrm_virtual_cwd.c Mon May 28 23:52:13 2007 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: tsrm_virtual_cwd.c,v 1.107 2007/05/18 12:15:01 rasmus Exp $ */ +/* $Id: tsrm_virtual_cwd.c,v 1.108 2007/05/28 23:52:13 iliaa Exp $ */ #include <sys/types.h> #include <sys/stat.h> @@ -372,14 +372,15 @@ static inline unsigned long realpath_cache_key(const char *path, int path_len) { - register unsigned long h; + register unsigned long h; + const char *e = path + path_len; - const char *e = path + path_len; - for (h = 2166136261U; path < e; ) { - h *= 16777619; - h ^= *path++; - } - return h; + for (h = 2166136261U; path < e;) { + h *= 16777619; + h ^= *path++; + } + + return h; } CWD_API void realpath_cache_clean(TSRMLS_D) @@ -436,7 +437,7 @@ n = bucket->key % (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0])); bucket->next = CWDG(realpath_cache)[n]; CWDG(realpath_cache)[n] = bucket; - CWDG(realpath_cache_size) += size; + CWDG(realpath_cache_size) += size; } } http://cvs.php.net/viewvc.cgi/php-src/run-tests.php?r1=1.324&r2=1.325&diff_format=u Index: php-src/run-tests.php diff -u php-src/run-tests.php:1.324 php-src/run-tests.php:1.325 --- php-src/run-tests.php:1.324 Sun May 27 19:22:24 2007 +++ php-src/run-tests.php Mon May 28 23:52:13 2007 @@ -24,7 +24,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: run-tests.php,v 1.324 2007/05/27 19:22:24 tony2001 Exp $ */ +/* $Id: run-tests.php,v 1.325 2007/05/28 23:52:13 iliaa Exp $ */ /* Sanity check to ensure that pcre extension needed by this script is available. * In the event it is not, print a nice error message indicating that this script will @@ -406,7 +406,7 @@ $html_output = is_resource($html_file); break; case '--version': - echo '$Revision: 1.324 $'."\n"; + echo '$Revision: 1.325 $'."\n"; exit(1); default: echo "Illegal switch specified!\n"; @@ -1391,6 +1391,15 @@ } elseif (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) { $post = trim($section_text['POST']); + + if (array_key_exists('GZIP_POST', $section_text) && function_exists('gzencode')) { + $post = gzencode($post, 9, FORCE_GZIP); + $env['HTTP_CONTENT_ENCODING'] = 'gzip'; + } else if (array_key_exists('DEFLATE_POST', $section_text) && function_exists('gzcompress')) { + $post = gzcompress($post, 9); + $env['HTTP_CONTENT_ENCODING'] = 'deflate'; + } + save_text($tmp_post, $post); $content_length = strlen($post);
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php