X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fhardban.phh;h=7423b6a59e5c39e2932a7c094d20ace44a8de8fc;hb=e47ddcae6cc33ed9d2471a54936db7d8efd5d46a;hp=61ddb9125f43d780a681e321c4ecb16d3da5ef0a;hpb=173cad98e0e66707af8ebf6d2f1a902685ea2ea4;p=brisk.git diff --git a/web/Obj/hardban.phh b/web/Obj/hardban.phh index 61ddb91..7423b6a 100644 --- a/web/Obj/hardban.phh +++ b/web/Obj/hardban.phh @@ -2,7 +2,7 @@ /* * brisk - auth.phh * - * Copyright (C) 2006-2008 Matteo Nastasi + * Copyright (C) 2006-2011 Matteo Nastasi * mailto: nastasi@alternativeoutput.it * matteo.nastasi@milug.org * web: http://www.alternativeoutput.it @@ -44,6 +44,8 @@ class Hardban { } class Hardbans { + static $delta_t; + var $item; var $item_n; var $mod; @@ -66,8 +68,8 @@ class Hardbans { log_auth("xxx", sprintf("Hardbans::add [%s]\n", $login)); - if (($chal = new Hardban($login, $ip, $session, $timeout)) == null) { - return ($G_false); + if (($chal = new Hardban($login, $ip, $session, $timeout)) == FALSE) { + return (FALSE); } $this->item[$this->item_n] = $chal; @@ -143,7 +145,7 @@ class Hardbans { } // Static functions - function &init_data() + static function create() { $chal =& new Hardbans(); @@ -152,14 +154,13 @@ class Hardbans { return $chal; } - function &load_data() + function load_data() { - GLOBAL $G_false, $sess; - $doexit = FALSE; + GLOBAL $sess; + do { if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) { log_main("ftok failed"); - $doexit = TRUE; break; } @@ -171,14 +172,14 @@ class Hardbans { $shm_sz = HBAN_SHM_DIMS_MIN; if ($shm = shm_attach($tok, $shm_sz)) { - $hban = @shm_get_var($shm, $tok); + $hban = @shm_get_var($shm, $tok); // CHECKED BELOW log_only("hardban == ".($hban == FALSE ? "FALSE" : "TRUE")." hardban === ".($hban === FALSE ? "FALSE" : "TRUE")." hardban isset ".(isset($hban) ? "TRUE" : "FALSE")); if ($hban == FALSE) { log_only("INIT HARDBAN DATA"); - $hban =& Hardbans::init_data(); + $hban =& Hardbans::create(); if (@shm_put_var($shm, $tok, $hban) == FALSE) { log_only("PUT_VAR FALLITA ".strlen(serialize($hban))); log_only(serialize($hban)); @@ -191,18 +192,14 @@ class Hardbans { $hban->garbage_manager(TRUE); - $ret = &$hban; - return ($ret); + return ($hban); } while (0); - if ($doexit) - exit(); - - return ($G_false); + return (FALSE); } - function save_data(&$hban) + function save_data($hban) { $shm = FALSE; $oldmod = $hban->mod; @@ -241,16 +238,15 @@ class Hardbans { function lock_data() { if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) { - echo "FTOK FAILED"; - exit; + return (FALSE); } // echo "FTOK ".$tok."
"; if (($res = sem_get($tok)) == FALSE) { - echo "SEM_GET FAILED"; - exit; + return (FALSE); } if (sem_acquire($res)) { - log_lock("LOCK hardbans"); + self::$delta_t = microtime(TRUE); + log_lock("LOCK hardbans [".self::$delta_t."]"); return ($res); } else @@ -261,7 +257,7 @@ class Hardbans { { GLOBAL $sess; - log_lock("UNLOCK hardbans"); + log_lock("UNLOCK hardbans [".(microtime(TRUE) - (self::$delta_t))."]"); return (sem_release($res)); }