PageRenderTime 41ms CodeModel.GetById 13ms RepoModel.GetById 0ms app.codeStats 0ms

/code/classes/Daemon/FTPd/Filesystem.class.php

https://github.com/blekkzor/pinetd2
PHP | 39 lines | 28 code | 11 blank | 0 comment | 11 complexity | 7226dba08cc1a94b0fe2b5d05bcbb084 MD5 | raw file
Possible License(s): GPL-2.0
  1. <?php
  2. namespace Daemon\FTPd;
  3. class Filesystem extends \pinetd\Filesystem {
  4. public function open($file, $write, $resume) {
  5. if ($write) {
  6. if (!$this->isWritable($file)) return false;
  7. }
  8. $fil = $this->convertPath($file);
  9. if ((is_null($fil)) || ($fil === false)) return false;
  10. $fil = $this->root . $fil;
  11. if ($write) @touch($fil);
  12. $fp = fopen($fil, ($write?'rb+':'rb'));
  13. if (!$fp) return false;
  14. fseek($fp, 0, SEEK_END);
  15. $size = ftell($fp);
  16. if ($resume > $size) {
  17. fclose($fp);
  18. return false;
  19. }
  20. if ($resume == -1) { // APPEND
  21. fseek($fp, 0, SEEK_END);
  22. } else {
  23. fseek($fp, $resume, SEEK_SET);
  24. if ($write) ftruncate($fp, $resume);
  25. }
  26. return array('fp' => $fp, 'size' => $size);
  27. }
  28. }