pclzip et liens symboliques
Bonjour, J’ai eu un problème avec le plugin "mes_fichiers" et un serveur où des liens symboliques ont été installés dans le répertoire IMG. Dans mon cas les certains liens symboliques pointent vers des zones communes ce qui a fait que les tailles calculées étaient aberrantes.
En regardant dans la doc php on voit que la fonction « is_dir » suit les liens symboliques, c’est à dire qu’elle ne les voit pas.
La sauvegarde devrait suivre le principe annoncé par le module pclzip qu’elle utilise c’est à dire ignorer les liens symboliques. Pour cela il faut tester les liens symboliques avant les répertoires ce que pclzip oublie de faire.
Pour "mes_fichiers" il a suffit de modifier la fonction mes_fichiers_dirsize (dans inc/mes_fichiers_utils) en rajoutant un test.
Pour pclzip (dans le core de spip) il m’a fallu changer l’ordre des tests dans la fonction privFileDescrExpand (/ecrire/inc/pclzip.php) de façon à tester les liens en premier.
// ----- Look for real file or folder if (file_exists($v_descr['filename'])) { if (
is_link($v_descr['filename'])) {
// skip
continue;
}
else if (is_file($v_descr['filename'])) { $v_descr['type'] = 'file'; } else if (
is_dir($v_descr['filename'])) {
$v_descr['type'] = 'folder';
}
else {
// skip
continue;
}
}
`
Jean-Daniel