From: Marcus Boerger Date: Sun, 14 May 2006 18:40:12 +0000 (+0000) Subject: - MFH Add strict compliant RFC2397 support (no //) X-Git-Tag: php-5.2.0RC1~559 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3577115118df98ace41c1c3381b0574d82214695;p=php - MFH Add strict compliant RFC2397 support (no //) --- diff --git a/ext/standard/tests/file/stream_rfc2397_004.phpt b/ext/standard/tests/file/stream_rfc2397_004.phpt new file mode 100755 index 0000000000..ac71564760 --- /dev/null +++ b/ext/standard/tests/file/stream_rfc2397_004.phpt @@ -0,0 +1,30 @@ +--TEST-- +Stream: RFC2397 Mozilla tests +--FILE-- + +===DONE=== + +--EXPECTF-- +string(5) ";test" +string(4) "test" +string(4) "test" +bool(false) +string(5) "Hello" +string(3) "a,b" +===DONE=== \ No newline at end of file diff --git a/ext/standard/tests/file/stream_rfc2397_005.phpt b/ext/standard/tests/file/stream_rfc2397_005.phpt new file mode 100755 index 0000000000..892af432b6 --- /dev/null +++ b/ext/standard/tests/file/stream_rfc2397_005.phpt @@ -0,0 +1,36 @@ +--TEST-- +Stream: RFC2397 without // +--FILE-- + +===DONE=== + +--EXPECTF-- +string(12) "A brief note" +string(40) "select_vcount,fcol_from_fieldtable/local" +string(13) "foobar foobar" +string(5) ";test" +string(4) "test" +string(4) "test" +bool(false) +string(5) "Hello" +string(3) "a,b" +===DONE=== \ No newline at end of file diff --git a/main/streams/streams.c b/main/streams/streams.c index 2548f4d650..8a25d8d3be 100755 --- a/main/streams/streams.c +++ b/main/streams/streams.c @@ -1520,9 +1520,9 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char n++; } - if ((*p == ':') && (n > 1) && !strncmp("://", p, 3)) { + if ((*p == ':') && (n > 1) && (!strncmp("//", p+1, 2) || !memcmp("data", path, 4))) { protocol = path; - } else if (strncasecmp(path, "zlib:", 5) == 0) { + } else if (n == 5 && strncasecmp(path, "zlib:", 5) == 0) { /* BC with older php scripts and zlib wrapper */ protocol = "compress.zlib"; n = 13;