@ -17,7 +17,7 @@ if (!defined('_ECRIRE_INC_VERSION')) {
* Retourne un IPSet : pour vérification rapide d’une IP sur les ranges d’ip des auteurs.
* @return \Wikimedia\IPSet
*/
function ipset_get() {
function ipset_get(): \Wikimedia\IPSet {
/** @var $ipset \Wikimedia\IPSet */
static $ipset = null;
@ -27,20 +27,33 @@ function ipset_get() {
// Retourner le cache des IPs compilé si déjà calculé.
// Selon la méthode de cache, la classe IPSet doit être connue !
if (!defined('_VAR_MODE') or _VAR_MODE !== 'recalcul') {
if ($ipset = ipset_get_cache()) {
return $ipset;
}
}
spip_log("Cache ipset absent -> calcul", 'ipset');
include_spip('inc/ipset');
return ipset_update_ips_cache();
}
/**
* Retourne le cache meta IPSet global
* @return \Wikimedia\IPSet
*/
function ipset_get_cache(): ?\Wikimedia\IPSet {
include_spip('inc/config');
include_spip('lib/IPSet/src/Wikimedia/IPSet');
$ipset = lire_config('ipset');
if (
$ipset
and $ipset = @unserialize(base64_decode($ipset))
and $ipset instanceof \Wikimedia\IPSet
and (!defined('_VAR_MODE') or _VAR_MODE !== 'recalcul')
) {
return $ipset;
}
spip_log("Cache ipset absent -> calcul", 'ipset');
include_spip('inc/ipset');
return ipset_update_ips_cache();
return null;
}
/**
@ -48,7 +61,7 @@ function ipset_get() {
* avec memo en session
* @return bool|int Id auteur, sinon false.
*/
function ipset_access_author() {
function ipset_access_author(): ?int {
if (isset($GLOBALS['visiteur_session']['ip_id_auteur'])){
return $GLOBALS['visiteur_session']['ip_id_auteur'];
@ -79,5 +92,5 @@ function ipset_access_author() {
return $id_auteur;
}
return false ;
return null ;
}