X-Git-Url: https://git.p6c8.net/jirafeau.git/blobdiff_plain/4823b32b6ce68f7a6a0949c225c808da4979506f..d35f5d4eb87c1a74fd198be589fcdf51e9631ba9:/lib/functions.php
diff --git a/lib/functions.php b/lib/functions.php
index ebfffd4..4736b7f 100644
--- a/lib/functions.php
+++ b/lib/functions.php
@@ -101,10 +101,8 @@ function jirafeau_gen_random($l)
return $code;
}
-function jirafeau_gen_download_pass()
+function jirafeau_gen_download_pass($length, $allowed_chars)
{
- $length = $cfg['download_password_gen_len'];
- $allowed_chars = $cfg['download_password_gen_chars'];
if ($length <= 0) {
return false;
}
@@ -145,8 +143,10 @@ function jirafeau_human_size($octets)
// Convert UTC timestamp to a datetime field
function jirafeau_get_datetimefield($timestamp)
{
- $content = ''
- . strftime('%Y-%m-%d %H:%M', $timestamp) . ' (GMT)';
+ $ts = date_create("@" . $timestamp);
+ $content = ''
+ . date_format($ts, 'Y-m-d H:i') . ' (GMT)';
+
return $content;
}
@@ -163,6 +163,9 @@ function jirafeau_clean_rm_link($link)
if (file_exists(VAR_LINKS . $p . $link)) {
unlink(VAR_LINKS . $p . $link);
}
+ if (file_exists(VAR_LINKS . $p . $link . '_download')) {
+ unlink(VAR_LINKS . $p . $link . '_download');
+ }
$parse = VAR_LINKS . $p;
$scan = array();
while (file_exists($parse)
@@ -450,13 +453,15 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
/* Crypt file if option is enabled. */
$crypted = false;
$crypt_key = '';
- if ($crypt == true && !(extension_loaded('mcrypt') == true)) {
- error_log("PHP extension mcrypt not loaded, won't encrypt in Jirafeau");
+ if ($crypt == true && !(extension_loaded('sodium') == true)) {
+ error_log("PHP extension sodium not loaded, won't encrypt in Jirafeau");
}
- if ($crypt == true && extension_loaded('mcrypt') == true) {
- $crypt_key = jirafeau_encrypt_file($file['tmp_name'], $file['tmp_name']);
+ if ($crypt == true && extension_loaded('sodium') == true) {
+ $crypt_key = jirafeau_encrypt_file($file['tmp_name'], $file['tmp_name'].'crypt');
if (strlen($crypt_key) > 0) {
- $crypted = true;
+ if (rename($file['tmp_name'].'crypt', $file['tmp_name']) === true) {
+ $crypted = true;
+ }
}
}
@@ -511,7 +516,7 @@ function jirafeau_upload($file, $one_time_download, $key, $time, $ip, $crypt, $l
$handle,
$name . NL. $mime_type . NL. $size . NL. $password . NL. $time .
NL . $hash. NL . ($one_time_download ? 'O' : 'R') . NL . time() .
- NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C' : 'O')
+ NL . $ip . NL. $delete_link_code . NL . ($crypted ? 'C2' : 'O')
);
fclose($handle);
$hash_link = substr(base_16_to_64(md5_file($link_tmp_name)), 0, $link_name_length);
@@ -660,7 +665,8 @@ function jirafeau_get_link($hash)
$out['upload_date'] = trim($c[7]);
$out['ip'] = trim($c[8]);
$out['link_code'] = trim($c[9]);
- $out['crypted'] = trim($c[10]) == 'C';
+ $out['crypted'] = trim($c[10]) == 'C2';
+ $out['crypted_legacy'] = trim($c[10]) == 'C';
return $out;
}
@@ -708,6 +714,7 @@ function jirafeau_admin_list($name, $file_hash, $link_hash)
if (!count($l)) {
continue;
}
+ $ld = jirafeau_get_download_stats($node);
/* Filter. */
if (!empty($name) && !@preg_match("/$name/i", jirafeau_escape($l['file_name']))) {
@@ -732,6 +739,11 @@ function jirafeau_admin_list($name, $file_hash, $link_hash)
if (strlen($l['ip']) > 0) {
echo t('ORIGIN') . ': ' . $l['ip'] . '
';
}
+ echo t('DOWNLOAD_COUNT') . ': ' . $ld['count'] . '
';
+ if ($ld['count'] > 0) {
+ echo t('DOWNLOAD_DATE') . ': ' . jirafeau_get_datetimefield($ld['date']) . '
';
+ echo t('DOWNLOAD_IP') . ': ' . $ld['ip'] . '
';
+ }
echo '