]> git.p6c8.net - jirafeau_mojo42.git/blobdiff - lib/functions.php
[BUGFIX] avoid php warning because async file does not exist yet
[jirafeau_mojo42.git] / lib / functions.php
index 1dd03e54b55af485ad276643fb2e726ff8b897fc..34c7df8deead098b3ff60f325467103473709c5a 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *  Jirafeau, your web file repository
  *  Copyright (C) 2008  Julien "axolotl" BERNARD <axolotl@magieeternelle.org>
- *  Copyright (C) 2015  Jerome Jutteau <j.jutteau@gmail.com>
+ *  Copyright (C) 2015  Jerome Jutteau <jerome@jutteau.fr>
  *  Copyright (C) 2015  Nicola Spanti (RyDroid) <dev@nicola-spanti.info>
  *
  *  This program is free software: you can redistribute it and/or modify
@@ -569,6 +569,14 @@ function check_errors($cfg)
     if (!is_writable(VAR_ASYNC)) {
         add_error(t('ASYNC_DIR_W'), VAR_ASYNC);
     }
+
+    if ($cfg['enable_crypt'] && $cfg['litespeed_workaround']) {
+        add_error(t('INCOMPATIBLE_OPTIONS_W'), 'enable_crypt=true<br>litespeed_workaround=true');
+    }
+
+    if ($cfg['one_time_download'] && $cfg['litespeed_workaround']) {
+        add_error(t('INCOMPATIBLE_OPTIONS_W'), 'one_time_download=true<br>litespeed_workaround=true');
+    }
 }
 
 /**
@@ -858,6 +866,10 @@ function jirafeau_async_init($filename, $type, $one_time, $key, $time, $ip)
         return;
     }
 
+    /* touch empty data file */
+    $w_path = $p . $ref . '_data';
+    touch($w_path);
+
     /* md5 password or empty */
     $password = '';
     if (!empty($key)) {
@@ -1005,7 +1017,7 @@ function jirafeau_async_end($ref, $code, $crypt, $link_name_length, $file_hash_m
     $l = s2p("$hash_link");
     if (!@mkdir(VAR_LINKS . $l, 0755, true) ||
         !rename($link_tmp_name, VAR_LINKS . $l . $hash_link)) {
-        echo "Error";
+        return 'Error';
     }
 
     /* Clean async upload. */
@@ -1336,3 +1348,12 @@ function jirafeau_admin_csrf_field()
 {
     return "<input type='hidden' name='admin_csrf' value='". $_SESSION['admin_csrf'] . "'/>";
 }
+
+function jirafeau_dir_size($dir)
+{
+    $size = 0;
+    foreach (glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $entry) {
+        $size += is_file($entry) ? filesize($entry) : jirafeau_dir_size($entry);
+    }
+    return $size;
+}

patrick-canterino.de