Lines Matching refs:stream

69 	php_stream *stream;  in forget_persistent_resource_id_numbers()  local
76 stream = (php_stream*)rsrc->ptr; in forget_persistent_resource_id_numbers()
79 fprintf(stderr, "forget_persistent: %s:%p\n", stream->ops->label, stream); in forget_persistent_resource_id_numbers()
82 stream->res = NULL; in forget_persistent_resource_id_numbers()
84 if (stream->ctx) { in forget_persistent_resource_id_numbers()
85 zend_list_delete(stream->ctx); in forget_persistent_resource_id_numbers()
86 stream->ctx = NULL; in forget_persistent_resource_id_numbers()
111 PHPAPI int php_stream_from_persistent_id(const char *persistent_id, php_stream **stream) in php_stream_from_persistent_id() argument
117 if (stream) { in php_stream_from_persistent_id()
123 *stream = (php_stream*)le->ptr; in php_stream_from_persistent_id()
127 (*stream)->res = regentry; in php_stream_from_persistent_id()
132 (*stream)->res = zend_register_resource(*stream, le_pstream); in php_stream_from_persistent_id()
286 ret->readfilters.stream = ret; in _php_stream_alloc()
287 ret->writefilters.stream = ret; in _php_stream_alloc()
365 PHPAPI int _php_stream_free(php_stream *stream, int close_options) /* {{{ */ in _php_stream_free() argument
384 context = PHP_STREAM_CONTEXT(stream); in _php_stream_free()
386 if (stream->flags & PHP_STREAM_FLAG_NO_CLOSE) { in _php_stream_free()
394stream->ops->label, stream, stream->orig_path, stream->in_free, _php_stream_pretty_free_options(cl… in _php_stream_free()
399 if (stream->in_free) { in _php_stream_free()
401 …if ((stream->in_free == 1) && (close_options & PHP_STREAM_FREE_IGNORE_ENCLOSING) && (stream->enclo… in _php_stream_free()
408 stream->in_free++; in _php_stream_free()
415 (stream->enclosing_stream != NULL)) { in _php_stream_free()
416 php_stream *enclosing_stream = stream->enclosing_stream; in _php_stream_free()
417 stream->enclosing_stream = NULL; in _php_stream_free()
430 if (stream->fclose_stdiocast == PHP_STREAM_FCLOSE_FOPENCOOKIE) { in _php_stream_free()
434 php_stream_auto_cleanup(stream); in _php_stream_free()
435 stream->in_free--; in _php_stream_free()
444 stream->ops->label, stream, stream->orig_path, preserve_handle, release_cast, in _php_stream_free()
448 if (stream->flags & PHP_STREAM_FLAG_WAS_WRITTEN || stream->writefilters.head) { in _php_stream_free()
450 _php_stream_flush(stream, 1); in _php_stream_free()
454 if ((close_options & PHP_STREAM_FREE_RSRC_DTOR) == 0 && stream->res) { in _php_stream_free()
456 zend_list_close(stream->res); in _php_stream_free()
459 zend_list_delete(stream->res); in _php_stream_free()
460 stream->res = NULL; in _php_stream_free()
465 if (release_cast && stream->fclose_stdiocast == PHP_STREAM_FCLOSE_FOPENCOOKIE) { in _php_stream_free()
473 stream->in_free = 0; in _php_stream_free()
474 return fclose(stream->stdiocast); in _php_stream_free()
477 ret = stream->ops->close(stream, preserve_handle ? 0 : 1); in _php_stream_free()
478 stream->abstract = NULL; in _php_stream_free()
481 if (release_cast && stream->fclose_stdiocast == PHP_STREAM_FCLOSE_FDOPEN && stream->stdiocast) { in _php_stream_free()
482 fclose(stream->stdiocast); in _php_stream_free()
483 stream->stdiocast = NULL; in _php_stream_free()
484 stream->fclose_stdiocast = PHP_STREAM_FCLOSE_NONE; in _php_stream_free()
489 while (stream->readfilters.head) { in _php_stream_free()
490 if (stream->readfilters.head->res != NULL) { in _php_stream_free()
491 zend_list_close(stream->readfilters.head->res); in _php_stream_free()
493 php_stream_filter_remove(stream->readfilters.head, 1); in _php_stream_free()
495 while (stream->writefilters.head) { in _php_stream_free()
496 if (stream->writefilters.head->res != NULL) { in _php_stream_free()
497 zend_list_close(stream->writefilters.head->res); in _php_stream_free()
499 php_stream_filter_remove(stream->writefilters.head, 1); in _php_stream_free()
502 if (stream->wrapper && stream->wrapper->wops && stream->wrapper->wops->stream_closer) { in _php_stream_free()
503 stream->wrapper->wops->stream_closer(stream->wrapper, stream); in _php_stream_free()
504 stream->wrapper = NULL; in _php_stream_free()
507 if (Z_TYPE(stream->wrapperdata) != IS_UNDEF) { in _php_stream_free()
508 zval_ptr_dtor(&stream->wrapperdata); in _php_stream_free()
509 ZVAL_UNDEF(&stream->wrapperdata); in _php_stream_free()
512 if (stream->readbuf) { in _php_stream_free()
513 pefree(stream->readbuf, stream->is_persistent); in _php_stream_free()
514 stream->readbuf = NULL; in _php_stream_free()
517 if (stream->is_persistent && (close_options & PHP_STREAM_FREE_PERSISTENT)) { in _php_stream_free()
519 zend_hash_apply_with_argument(&EG(persistent_list), _php_stream_free_persistent, stream); in _php_stream_free()
522 if (stream->orig_path) { in _php_stream_free()
523 pefree(stream->orig_path, stream->is_persistent); in _php_stream_free()
524 stream->orig_path = NULL; in _php_stream_free()
527 pefree(stream, stream->is_persistent); in _php_stream_free()
540 PHPAPI int _php_stream_fill_read_buffer(php_stream *stream, size_t size) in _php_stream_fill_read_buffer() argument
544 if (stream->readfilters.head) { in _php_stream_fill_read_buffer()
545 size_t to_read_now = MIN(size, stream->chunk_size); in _php_stream_fill_read_buffer()
551 chunk_buf = emalloc(stream->chunk_size); in _php_stream_fill_read_buffer()
553 while (!stream->eof && (stream->writepos - stream->readpos < (zend_off_t)to_read_now)) { in _php_stream_fill_read_buffer()
561 justread = stream->ops->read(stream, chunk_buf, stream->chunk_size); in _php_stream_fill_read_buffer()
562 if (justread < 0 && stream->writepos == stream->readpos) { in _php_stream_fill_read_buffer()
566 bucket = php_stream_bucket_new(stream, chunk_buf, justread, 0, 0); in _php_stream_fill_read_buffer()
571 flags = stream->eof ? PSFS_FLAG_FLUSH_CLOSE : PSFS_FLAG_NORMAL; in _php_stream_fill_read_buffer()
573 flags = stream->eof ? PSFS_FLAG_FLUSH_CLOSE : PSFS_FLAG_FLUSH_INC; in _php_stream_fill_read_buffer()
577 for (filter = stream->readfilters.head; filter; filter = filter->next) { in _php_stream_fill_read_buffer()
578 status = filter->fops->filter(stream, filter, brig_inp, brig_outp, NULL, flags); in _php_stream_fill_read_buffer()
601 if (stream->readbuf && stream->readbuflen - stream->writepos < bucket->buflen) { in _php_stream_fill_read_buffer()
602 if (stream->writepos > stream->readpos) { in _php_stream_fill_read_buffer()
603 … memmove(stream->readbuf, stream->readbuf + stream->readpos, stream->writepos - stream->readpos); in _php_stream_fill_read_buffer()
605 stream->writepos -= stream->readpos; in _php_stream_fill_read_buffer()
606 stream->readpos = 0; in _php_stream_fill_read_buffer()
609 if (stream->readbuflen - stream->writepos < bucket->buflen) { in _php_stream_fill_read_buffer()
610 stream->readbuflen += bucket->buflen; in _php_stream_fill_read_buffer()
611 stream->readbuf = perealloc(stream->readbuf, stream->readbuflen, in _php_stream_fill_read_buffer()
612 stream->is_persistent); in _php_stream_fill_read_buffer()
615 memcpy(stream->readbuf + stream->writepos, bucket->buf, bucket->buflen); in _php_stream_fill_read_buffer()
617 stream->writepos += bucket->buflen; in _php_stream_fill_read_buffer()
633 stream->eof = 1; in _php_stream_fill_read_buffer()
648 if (stream->writepos - stream->readpos < (zend_off_t)size) { in _php_stream_fill_read_buffer()
652 if (stream->readbuf && stream->readbuflen - stream->writepos < stream->chunk_size) { in _php_stream_fill_read_buffer()
653 if (stream->writepos > stream->readpos) { in _php_stream_fill_read_buffer()
654 … memmove(stream->readbuf, stream->readbuf + stream->readpos, stream->writepos - stream->readpos); in _php_stream_fill_read_buffer()
656 stream->writepos -= stream->readpos; in _php_stream_fill_read_buffer()
657 stream->readpos = 0; in _php_stream_fill_read_buffer()
662 if (stream->readbuflen - stream->writepos < stream->chunk_size) { in _php_stream_fill_read_buffer()
663 stream->readbuflen += stream->chunk_size; in _php_stream_fill_read_buffer()
664 stream->readbuf = perealloc(stream->readbuf, stream->readbuflen, in _php_stream_fill_read_buffer()
665 stream->is_persistent); in _php_stream_fill_read_buffer()
668 justread = stream->ops->read(stream, (char*)stream->readbuf + stream->writepos, in _php_stream_fill_read_buffer()
669 stream->readbuflen - stream->writepos in _php_stream_fill_read_buffer()
674 stream->writepos += justread; in _php_stream_fill_read_buffer()
680 PHPAPI ssize_t _php_stream_read(php_stream *stream, char *buf, size_t size) in _php_stream_read() argument
690 if (stream->writepos > stream->readpos) { in _php_stream_read()
692 toread = stream->writepos - stream->readpos; in _php_stream_read()
697 memcpy(buf, stream->readbuf + stream->readpos, toread); in _php_stream_read()
698 stream->readpos += toread; in _php_stream_read()
709 …if (!stream->readfilters.head && (stream->flags & PHP_STREAM_FLAG_NO_BUFFER || stream->chunk_size … in _php_stream_read()
710 toread = stream->ops->read(stream, buf, size); in _php_stream_read()
720 if (php_stream_fill_read_buffer(stream, size) != SUCCESS) { in _php_stream_read()
727 toread = stream->writepos - stream->readpos; in _php_stream_read()
733 memcpy(buf, stream->readbuf + stream->readpos, toread); in _php_stream_read()
734 stream->readpos += toread; in _php_stream_read()
747 if ((stream->wrapper != &php_plain_files_wrapper) && in _php_stream_read()
748 (stream->ops != &php_stream_memory_ops) && in _php_stream_read()
749 (stream->ops != &php_stream_temp_ops)) { in _php_stream_read()
755 stream->position += didread; in _php_stream_read()
763 PHPAPI zend_string *php_stream_read_to_str(php_stream *stream, size_t len) in php_stream_read_to_str() argument
766 ssize_t read = php_stream_read(stream, ZSTR_VAL(str), len); in php_stream_read_to_str()
781 PHPAPI int _php_stream_eof(php_stream *stream) in _php_stream_eof() argument
784 if (stream->writepos - stream->readpos > 0) { in _php_stream_eof()
789 if (!stream->eof && PHP_STREAM_OPTION_RETURN_ERR == in _php_stream_eof()
790 php_stream_set_option(stream, PHP_STREAM_OPTION_CHECK_LIVENESS, in _php_stream_eof()
792 stream->eof = 1; in _php_stream_eof()
795 return stream->eof; in _php_stream_eof()
798 PHPAPI int _php_stream_putc(php_stream *stream, int c) in _php_stream_putc() argument
802 if (php_stream_write(stream, (char*)&buf, 1) > 0) { in _php_stream_putc()
808 PHPAPI int _php_stream_getc(php_stream *stream) in _php_stream_getc() argument
812 if (php_stream_read(stream, &buf, 1) > 0) { in _php_stream_getc()
818 PHPAPI int _php_stream_puts(php_stream *stream, const char *buf) in _php_stream_puts() argument
824 …if (len > 0 && php_stream_write(stream, buf, len) > 0 && php_stream_write(stream, newline, 1) > 0)… in _php_stream_puts()
830 PHPAPI int _php_stream_stat(php_stream *stream, php_stream_statbuf *ssb) in _php_stream_stat() argument
835 if (stream->wrapper && stream->wrapper->wops->stream_stat != NULL) { in _php_stream_stat()
836 return stream->wrapper->wops->stream_stat(stream->wrapper, stream, ssb); in _php_stream_stat()
843 if (stream->ops->stat == NULL) { in _php_stream_stat()
847 return (stream->ops->stat)(stream, ssb); in _php_stream_stat()
850 PHPAPI const char *php_stream_locate_eol(php_stream *stream, zend_string *buf) in php_stream_locate_eol() argument
857 readptr = (char*)stream->readbuf + stream->readpos; in php_stream_locate_eol()
858 avail = stream->writepos - stream->readpos; in php_stream_locate_eol()
865 if (stream->flags & PHP_STREAM_FLAG_DETECT_EOL) { in php_stream_locate_eol()
871 stream->flags ^= PHP_STREAM_FLAG_DETECT_EOL; in php_stream_locate_eol()
872 stream->flags |= PHP_STREAM_FLAG_EOL_MAC; in php_stream_locate_eol()
876 stream->flags ^= PHP_STREAM_FLAG_DETECT_EOL; in php_stream_locate_eol()
879 } else if (stream->flags & PHP_STREAM_FLAG_EOL_MAC) { in php_stream_locate_eol()
892 PHPAPI char *_php_stream_get_line(php_stream *stream, char *buf, size_t maxlen, in _php_stream_get_line() argument
921 avail = stream->writepos - stream->readpos; in _php_stream_get_line()
929 readptr = (char*)stream->readbuf + stream->readpos; in _php_stream_get_line()
930 eol = php_stream_locate_eol(stream, NULL); in _php_stream_get_line()
959 stream->position += cpysz; in _php_stream_get_line()
960 stream->readpos += cpysz; in _php_stream_get_line()
968 } else if (stream->eof) { in _php_stream_get_line()
975 toread = stream->chunk_size; in _php_stream_get_line()
978 if (toread > stream->chunk_size) { in _php_stream_get_line()
979 toread = stream->chunk_size; in _php_stream_get_line()
983 php_stream_fill_read_buffer(stream, toread); in _php_stream_get_line()
985 if (stream->writepos - stream->readpos == 0) { in _php_stream_get_line()
1006 #define STREAM_BUFFERED_AMOUNT(stream) \ argument
1007 ((size_t)(((stream)->writepos) - (stream)->readpos))
1009 static const char *_php_stream_search_delim(php_stream *stream, in _php_stream_search_delim() argument
1018 seek_len = MIN(STREAM_BUFFERED_AMOUNT(stream), maxlen); in _php_stream_search_delim()
1024 return memchr(&stream->readbuf[stream->readpos + skiplen], in _php_stream_search_delim()
1027 return php_memnstr((char*)&stream->readbuf[stream->readpos + skiplen], in _php_stream_search_delim()
1029 (char*)&stream->readbuf[stream->readpos + seek_len]); in _php_stream_search_delim()
1033 PHPAPI zend_string *php_stream_get_record(php_stream *stream, size_t maxlen, const char *delim, siz… in php_stream_get_record() argument
1047 stream, maxlen, 0, delim, delim_len); in php_stream_get_record()
1050 buffered_len = STREAM_BUFFERED_AMOUNT(stream); in php_stream_get_record()
1056 to_read_now = MIN(maxlen - buffered_len, stream->chunk_size); in php_stream_get_record()
1058 php_stream_fill_read_buffer(stream, buffered_len + to_read_now); in php_stream_get_record()
1060 just_read = STREAM_BUFFERED_AMOUNT(stream) - buffered_len; in php_stream_get_record()
1076 stream, maxlen, in php_stream_get_record()
1089 tent_ret_len = found_delim - (char*)&stream->readbuf[stream->readpos]; in php_stream_get_record()
1090 } else if (!has_delim && STREAM_BUFFERED_AMOUNT(stream) >= maxlen) { in php_stream_get_record()
1097 if (STREAM_BUFFERED_AMOUNT(stream) < maxlen && !stream->eof) { in php_stream_get_record()
1099 } else if (STREAM_BUFFERED_AMOUNT(stream) == 0 && stream->eof) { in php_stream_get_record()
1104 tent_ret_len = MIN(STREAM_BUFFERED_AMOUNT(stream), maxlen); in php_stream_get_record()
1111 ZSTR_LEN(ret_buf) = php_stream_read(stream, ZSTR_VAL(ret_buf), tent_ret_len); in php_stream_get_record()
1114 stream->readpos += delim_len; in php_stream_get_record()
1115 stream->position += delim_len; in php_stream_get_record()
1122 static ssize_t _php_stream_write_buffer(php_stream *stream, const char *buf, size_t count) in _php_stream_write_buffer() argument
1129 …if (stream->ops->seek && (stream->flags & PHP_STREAM_FLAG_NO_SEEK) == 0 && stream->readpos != stre… in _php_stream_write_buffer()
1130 stream->readpos = stream->writepos = 0; in _php_stream_write_buffer()
1132 stream->ops->seek(stream, stream->position, SEEK_SET, &stream->position); in _php_stream_write_buffer()
1138 if (towrite > stream->chunk_size) in _php_stream_write_buffer()
1139 towrite = stream->chunk_size; in _php_stream_write_buffer()
1141 justwrote = stream->ops->write(stream, buf, towrite); in _php_stream_write_buffer()
1154 stream->position += justwrote; in _php_stream_write_buffer()
1165 static ssize_t _php_stream_write_filtered(php_stream *stream, const char *buf, size_t count, int fl… in _php_stream_write_filtered() argument
1175 bucket = php_stream_bucket_new(stream, (char *)buf, count, 0, 0); in _php_stream_write_filtered()
1179 for (filter = stream->writefilters.head; filter; filter = filter->next) { in _php_stream_write_filtered()
1182 status = filter->fops->filter(stream, filter, brig_inp, brig_outp, in _php_stream_write_filtered()
1183 filter == stream->writefilters.head ? &consumed : NULL, flags); in _php_stream_write_filtered()
1203 if (_php_stream_write_buffer(stream, bucket->buf, bucket->buflen) < 0) { in _php_stream_write_filtered()
1229 PHPAPI int _php_stream_flush(php_stream *stream, int closing) in _php_stream_flush() argument
1233 if (stream->writefilters.head) { in _php_stream_flush()
1234 …_php_stream_write_filtered(stream, NULL, 0, closing ? PSFS_FLAG_FLUSH_CLOSE : PSFS_FLAG_FLUSH_INC … in _php_stream_flush()
1237 stream->flags &= ~PHP_STREAM_FLAG_WAS_WRITTEN; in _php_stream_flush()
1239 if (stream->ops->flush) { in _php_stream_flush()
1240 ret = stream->ops->flush(stream); in _php_stream_flush()
1246 PHPAPI ssize_t _php_stream_write(php_stream *stream, const char *buf, size_t count) in _php_stream_write() argument
1255 if (stream->ops->write == NULL) { in _php_stream_write()
1260 if (stream->writefilters.head) { in _php_stream_write()
1261 bytes = _php_stream_write_filtered(stream, buf, count, PSFS_FLAG_NORMAL); in _php_stream_write()
1263 bytes = _php_stream_write_buffer(stream, buf, count); in _php_stream_write()
1267 stream->flags |= PHP_STREAM_FLAG_WAS_WRITTEN; in _php_stream_write()
1273 PHPAPI ssize_t _php_stream_printf(php_stream *stream, const char *fmt, ...) in _php_stream_printf() argument
1287 count = php_stream_write(stream, buf, count); in _php_stream_printf()
1293 PHPAPI zend_off_t _php_stream_tell(php_stream *stream) in _php_stream_tell() argument
1295 return stream->position; in _php_stream_tell()
1298 PHPAPI int _php_stream_seek(php_stream *stream, zend_off_t offset, int whence) in _php_stream_seek() argument
1300 if (stream->fclose_stdiocast == PHP_STREAM_FCLOSE_FOPENCOOKIE) { in _php_stream_seek()
1302 fflush(stream->stdiocast); in _php_stream_seek()
1306 if ((stream->flags & PHP_STREAM_FLAG_NO_BUFFER) == 0) { in _php_stream_seek()
1309 if (offset > 0 && offset <= stream->writepos - stream->readpos) { in _php_stream_seek()
1310 stream->readpos += offset; /* if offset = ..., then readpos = writepos */ in _php_stream_seek()
1311 stream->position += offset; in _php_stream_seek()
1312 stream->eof = 0; in _php_stream_seek()
1317 if (offset > stream->position && in _php_stream_seek()
1318 offset <= stream->position + stream->writepos - stream->readpos) { in _php_stream_seek()
1319 stream->readpos += offset - stream->position; in _php_stream_seek()
1320 stream->position = offset; in _php_stream_seek()
1321 stream->eof = 0; in _php_stream_seek()
1329 if (stream->ops->seek && (stream->flags & PHP_STREAM_FLAG_NO_SEEK) == 0) { in _php_stream_seek()
1332 if (stream->writefilters.head) { in _php_stream_seek()
1333 _php_stream_flush(stream, 0); in _php_stream_seek()
1338 offset = stream->position + offset; in _php_stream_seek()
1342 ret = stream->ops->seek(stream, offset, whence, &stream->position); in _php_stream_seek()
1344 if (((stream->flags & PHP_STREAM_FLAG_NO_SEEK) == 0) || ret == 0) { in _php_stream_seek()
1346 stream->eof = 0; in _php_stream_seek()
1350 stream->readpos = stream->writepos = 0; in _php_stream_seek()
1363 if ((didread = php_stream_read(stream, tmp, MIN(offset, sizeof(tmp)))) <= 0) { in _php_stream_seek()
1368 stream->eof = 0; in _php_stream_seek()
1377 PHPAPI int _php_stream_set_option(php_stream *stream, int option, int value, void *ptrparam) in _php_stream_set_option() argument
1381 if (stream->ops->set_option) { in _php_stream_set_option()
1382 ret = stream->ops->set_option(stream, option, value, ptrparam); in _php_stream_set_option()
1389 ret = stream->chunk_size > INT_MAX ? INT_MAX : (int)stream->chunk_size; in _php_stream_set_option()
1390 stream->chunk_size = value; in _php_stream_set_option()
1396 stream->flags |= PHP_STREAM_FLAG_NO_BUFFER; in _php_stream_set_option()
1397 } else if (stream->flags & PHP_STREAM_FLAG_NO_BUFFER) { in _php_stream_set_option()
1398 stream->flags ^= PHP_STREAM_FLAG_NO_BUFFER; in _php_stream_set_option()
1411 PHPAPI int _php_stream_truncate_set_size(php_stream *stream, size_t newsize) in _php_stream_truncate_set_size() argument
1413 …return php_stream_set_option(stream, PHP_STREAM_OPTION_TRUNCATE_API, PHP_STREAM_TRUNCATE_SET_SIZE,… in _php_stream_truncate_set_size()
1416 PHPAPI ssize_t _php_stream_passthru(php_stream * stream STREAMS_DC) in _php_stream_passthru()
1422 if (php_stream_mmap_possible(stream)) { in _php_stream_passthru()
1426 …p = php_stream_mmap_range(stream, php_stream_tell(stream), PHP_STREAM_MMAP_ALL, PHP_STREAM_MAP_MOD… in _php_stream_passthru()
1436 php_stream_mmap_unmap_ex(stream, mapped); in _php_stream_passthru()
1442 while ((b = php_stream_read(stream, buf, sizeof(buf))) > 0) { in _php_stream_passthru()
1681 php_stream *stream = (php_stream*)rsrc->ptr; in stream_resource_regular_dtor() local
1683 FG(pclose_ret) = php_stream_free(stream, PHP_STREAM_FREE_CLOSE | PHP_STREAM_FREE_RSRC_DTOR); in stream_resource_regular_dtor()
1688 php_stream *stream = (php_stream*)rsrc->ptr; in stream_resource_persistent_dtor() local
1689 FG(pclose_ret) = php_stream_free(stream, PHP_STREAM_FREE_CLOSE | PHP_STREAM_FREE_RSRC_DTOR); in stream_resource_persistent_dtor()
2032 php_stream *stream = NULL; local
2045 stream = wrapper->wops->dir_opener(wrapper,
2049 if (stream) {
2050 stream->wrapper = wrapper;
2051 stream->flags |= PHP_STREAM_FLAG_NO_BUFFER | PHP_STREAM_FLAG_IS_DIR;
2056 if (stream == NULL && (options & REPORT_ERRORS)) {
2061 return stream;
2081 php_stream *stream = NULL; local
2126 stream = wrapper->wops->stream_opener(wrapper,
2133 if (stream && (options & STREAM_OPEN_PERSISTENT) && !stream->is_persistent) {
2136 php_stream_close(stream);
2137 stream = NULL;
2140 if (stream) {
2141 stream->wrapper = wrapper;
2145 if (stream) {
2150 if (stream->orig_path) {
2151 pefree(stream->orig_path, persistent);
2154 stream->orig_path = copy_of_path;
2156 stream->open_filename = __zend_orig_filename ? __zend_orig_filename : __zend_filename;
2157 stream->open_lineno = __zend_orig_lineno ? __zend_orig_lineno : __zend_lineno;
2161 if (stream != NULL && (options & STREAM_MUST_SEEK)) {
2164 switch(php_stream_make_seekable_rel(stream, &newstream,
2171 return stream;
2182 php_stream_close(stream);
2183 stream = NULL;
2196 …if (stream && stream->ops->seek && (stream->flags & PHP_STREAM_FLAG_NO_SEEK) == 0 && strchr(mode, …
2200 if (0 == stream->ops->seek(stream, 0, SEEK_CUR, &newpos)) {
2201 stream->position = newpos;
2205 if (stream == NULL && (options & REPORT_ERRORS)) {
2214 if (stream == NULL && copy_of_path != NULL) {
2221 return stream;
2226 PHPAPI php_stream_context *php_stream_context_set(php_stream *stream, php_stream_context *context) argument
2228 php_stream_context *oldcontext = PHP_STREAM_CONTEXT(stream);
2231 stream->ctx = context->res;
2234 stream->ctx = NULL;
2340 php_stream *stream; local
2350 stream = php_stream_opendir(dirname, REPORT_ERRORS, context);
2351 if (!stream) {
2355 while (php_stream_readdir(stream, &sdp)) {
2362 php_stream_closedir(stream);
2376 php_stream_closedir(stream);
2381 php_stream_closedir(stream);