varname = $url["host"];
$this->position = 0;
return true;
}
public function stream_read($count) {
$ret = substr($GLOBALS[$this->varname], $this->position, $count);
$this->position += strlen($ret);
return $ret;
}
public function stream_write($data) {
$left = substr($GLOBALS[$this->varname], 0, $this->position);
$right = substr($GLOBALS[$this->varname], $this->position + strlen($data));
$GLOBALS[$this->varname] = $left . $data . $right;
$this->position += strlen($data);
return strlen($data);
}
public function stream_tell() {
return $this->position;
}
public function stream_eof() {
return $this->position >= strlen($GLOBALS[$this->varname]);
}
public function stream_seek($offset, $whence) {
switch ($whence) {
case SEEK_SET:
if ($offset < strlen($GLOBALS[$this->varname]) && $offset >= 0) {
$this->position = $offset;
return true;
} else {
return false;
}
break;
case SEEK_CUR:
if ($offset >= 0) {
$this->position += $offset;
return true;
} else {
return false;
}
break;
case SEEK_END:
if (strlen($GLOBALS[$this->varname]) + $offset >= 0) {
$this->position = strlen($GLOBALS[$this->varname]) + $offset;
return true;
} else {
return false;
}
break;
default:
return false;
}
}
public function stream_stat() {
$size = strlen($GLOBALS[$this->varname]);
$time = time();
$data = [
'dev' => 0,
'ino' => 0,
'mode' => 0777,
'nlink' => 1,
'uid' => 0,
'gid' => 0,
'rdev' => '',
'size' => $size,
'atime' => $time,
'mtime' => $time,
'ctime' => $time,
'blksize' => -1,
'blocks' => -1,
];
return array_values($data) + $data;
//return false;
}
public function stream_metadata($path, $option, $var) {
if ($option == STREAM_META_TOUCH) {
$url = parse_url($path);
$varname = $url["host"];
if (!isset($GLOBALS[$varname])) {
$GLOBALS[$varname] = '';
}
return true;
}
return false;
}
}
ption value='Valdnet-patch-1'>Valdnet-patch-1
Nextcloud server, a safe home for all your data: https://github.com/nextcloud/server | www-data |
blob: 815f6bd745dcff06cb0316801a942fb7c1913064 (
plain)