diff options
Diffstat (limited to 'apps/files_external/3rdparty/icewind/streams/src/Wrapper.php')
-rw-r--r-- | apps/files_external/3rdparty/icewind/streams/src/Wrapper.php | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php index 03d0b202571..5b6348afe4f 100644 --- a/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php +++ b/apps/files_external/3rdparty/icewind/streams/src/Wrapper.php @@ -44,7 +44,7 @@ abstract class Wrapper extends WrapperHandler implements File, Directory { public function stream_seek($offset, $whence = SEEK_SET) { $result = fseek($this->source, $offset, $whence); - return $result == 0 ? true : false; + return $result == 0; } public function stream_tell() { @@ -109,4 +109,23 @@ abstract class Wrapper extends WrapperHandler implements File, Directory { public function dir_rewinddir() { return rewind($this->source); } + + public function getSource() { + return $this->source; + } + + /** + * Retrieves header/metadata from the source stream. + * + * This is equivalent to calling `stream_get_meta_data` on the source stream except nested stream wrappers are handled transparently + * + * @return array + */ + public function getMetaData(): array { + $meta = stream_get_meta_data($this->source); + while (isset($meta['wrapper_data']) && $meta['wrapper_data'] instanceof Wrapper) { + $meta = $meta['wrapper_data']->getMetaData(); + } + return $meta; + } } |