cellog Sat Jan 12 15:50:17 2008 UTC Added files: /php-src/ext/standard/tests/file include_userstream_003.phpt
Modified files: /php-src/main/streams streams.c /php-src/ext/standard/tests/file include_userstream_002.phpt Log: clarify error message on why opening a stream wrapper failed for allow_url_include/allow_url_fopen, add test for allow_url_fopen http://cvs.php.net/viewvc.cgi/php-src/main/streams/streams.c?r1=1.157&r2=1.158&diff_format=u Index: php-src/main/streams/streams.c diff -u php-src/main/streams/streams.c:1.157 php-src/main/streams/streams.c:1.158 --- php-src/main/streams/streams.c:1.157 Mon Dec 31 07:12:19 2007 +++ php-src/main/streams/streams.c Sat Jan 12 15:50:16 2008 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: streams.c,v 1.157 2007/12/31 07:12:19 sebastian Exp $ */ +/* $Id: streams.c,v 1.158 2008/01/12 15:50:16 cellog Exp $ */ #define _GNU_SOURCE #include "php.h" @@ -2184,7 +2184,11 @@ if (options & REPORT_ERRORS) { /* protocol[n] probably isn't '\0' */ char *protocol_dup = estrndup(protocol, n); - php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:// wrapper is disabled in the server configuration", protocol_dup); + if (!PG(allow_url_fopen)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:// wrapper is disabled in the server configuration by allow_url_fopen=0", protocol_dup); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:// wrapper is disabled in the server configuration by allow_url_include=0", protocol_dup); + } efree(protocol_dup); } return NULL; http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/include_userstream_002.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/file/include_userstream_002.phpt diff -u php-src/ext/standard/tests/file/include_userstream_002.phpt:1.1 php-src/ext/standard/tests/file/include_userstream_002.phpt:1.2 --- php-src/ext/standard/tests/file/include_userstream_002.phpt:1.1 Tue Jul 3 10:22:55 2007 +++ php-src/ext/standard/tests/file/include_userstream_002.phpt Sat Jan 12 15:50:17 2008 @@ -97,7 +97,7 @@ <?php echo "Hello World\n";?> <?php echo "Hello World\n";?> -Warning: fopen(): test1:// wrapper is disabled in the server configuration in %sinclude_userstream_002.php on line 10 +Warning: fopen(): test1:// wrapper is disabled in the server configuration by allow_url_include=0 in %sinclude_userstream_002.php on line 10 Warning: fopen(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_002.php on line 10 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/file/include_userstream_003.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/file/include_userstream_003.phpt +++ php-src/ext/standard/tests/file/include_userstream_003.phpt --TEST-- allow_url_fopen disabled --INI-- allow_url_fopen=0 allow_url_include=1 --FILE-- <?php class test { private $data = '<?php echo "Hello World\n";?>'; private $pos; private $stream = null; function stream_open($path, $mode, $options, &$opened_path) { if (strpos($path, "test2://") === 0) { $this->stream = fopen("test1://".substr($path, 8), $mode); return !empty($this->stream); } if (strchr($mode, 'a')) $this->pos = strlen($this->data); else $this->po = 0; return true; } function stream_read($count) { if (!empty($this->stream)) { return fread($this->stream, $count); } $ret = substr($this->data, $this->pos, $count); $this->pos += strlen($ret); return $ret; } function stream_tell() { if (!empty($this->stream)) { return ftell($this->stream); } return $this->pos; } function stream_eof() { if (!empty($this->stream)) { return feof($this->stream); } return $this->pos >= strlen($this->data); } function stream_seek($offset, $whence) { if (!empty($this->stream)) { return fseek($this->stream, $offset, $whence); } switch($whence) { case SEEK_SET: if ($offset < $this->data && $offset >= 0) { $this->pos = $offset; return true; } else { return false; } break; case SEEK_CUR: if ($offset >= 0) { $this->pos += $offset; return true; } else { return false; } break; case SEEK_END: if (strlen($this->data) + $offset >= 0) { $this->pos = strlen($this->data) + $offset; return true; } else { return false; } break; default: return false; } } } stream_register_wrapper("test1", "test", STREAM_IS_URL); stream_register_wrapper("test2", "test"); echo file_get_contents("test1://hello"),"\n"; include "test1://hello"; echo file_get_contents("test2://hello"),"\n"; include "test2://hello"; --EXPECTF-- Warning: file_get_contents(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 86 Warning: file_get_contents(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 86 Warning: include(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 87 Warning: include(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 87 Warning: include(): Failed opening 'test1://hello' for inclusion (include_path='%s') in %sinclude_userstream_003.php on line 87 Warning: fopen(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 10 Warning: fopen(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 10 Warning: file_get_contents(test2://hello): failed to open stream: "test::stream_open" call failed in %sinclude_userstream_003.php on line 88 Warning: fopen(): test1:// wrapper is disabled in the server configuration by allow_url_fopen=0 in %sinclude_userstream_003.php on line 10 Warning: fopen(test1://hello): failed to open stream: no suitable wrapper could be found in %sinclude_userstream_003.php on line 10 Warning: include(test2://hello): failed to open stream: "test::stream_open" call failed in %sinclude_userstream_003.php on line 89 Warning: include(): Failed opening 'test2://hello' for inclusion (include_path='%s') in %sinclude_userstream_003.php on line 89 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php