log_shme() function added and DBG_SHME flag
[brisk.git] / web / Obj / auth.phh
index f25e01a..0615388 100644 (file)
@@ -22,7 +22,7 @@
    *
    */
 
-require_once("Obj/dbase_".$G_dbasetype.".phh");
+require_once("${G_base}Obj/dbase_${G_dbasetype}.phh");
 
 define(CHAL_SHM_DIMS_MIN, 16384);
 define(CHAL_SHM_DIMS_MAX, 65536);
@@ -47,6 +47,8 @@ class Challenge {
 }
 
 class Challenges {
+    static $delta_t;
+
     var $item;
     var $item_n;
     var $mod;
@@ -70,13 +72,13 @@ class Challenges {
         log_auth("xxx", sprintf("Challenges::add [%s]\n", $login));
         // FIXME Checks here
         if ($login == '') {
-            return ($G_false);
+            return (FALSE);
         }
         
         // log_auth("xxx", "LOOPI tstamp: ".$this->item[$i]->tstamp."  curtime: ".$curtime);
         
-        if (($chal = new Challenge($login, $token, $ip, $tstamp)) == null) {
-            return ($G_false);
+        if (($chal = new Challenge($login, $token, $ip, $tstamp)) == FALSE) {
+            return (FALSE);
         }
         
         $this->item[$this->item_n] = $chal;
@@ -151,7 +153,7 @@ class Challenges {
     }
 
     // Static functions
-    function &init_data()
+    static function create()
         {
             $chal =& new Challenges();
     
@@ -160,14 +162,12 @@ class Challenges {
             return $chal;
         }
 
-    function &load_data() 
+    function load_data() 
         {
-            GLOBAL $G_false, $sess;
-            $doexit = FALSE;
+            GLOBAL $sess;
             do {
                 if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) {
                     log_main("ftok failed");
-                    $doexit = TRUE;
                     break;
                 }
     
@@ -179,18 +179,19 @@ class Challenges {
                     $shm_sz = CHAL_SHM_DIMS_MIN;
 
                 if ($shm = shm_attach($tok, $shm_sz)) {
-                    $chals = @shm_get_var($shm, $tok);
+                    $chals = @shm_get_var($shm, $tok); // CHECKED BELOW
        
                     log_only("challenges ==  ".($chals == FALSE ?   "FALSE" : "TRUE")."  challenges ===  ".($chals === FALSE ? "FALSE" : "TRUE")."  challenges isset ".(isset($chals) ?   "TRUE" : "FALSE"));
        
                     if ($chals == FALSE) {
                         log_only("INIT CHALLENGES DATA");
          
-                        $chals =& Challenges::init_data();
+                        $chals =& Challenges::create();
                         if (@shm_put_var($shm, $tok, $chals) == FALSE) {
                             log_only("PUT_VAR FALLITA ".strlen(serialize($chals)));
                             log_only(serialize($chals));
                         }
+                        log_shme("Challenges::save_data2");
                     }
                     $chals->shm_sz = $shm_sz;
        
@@ -199,18 +200,14 @@ class Challenges {
 
                 $chals->garbage_manager();
 
-                $ret = &$chals;
-                return ($ret);
+                return ($chals);
             } while (0);
     
-            if ($doexit)
-                exit();
-    
-            return ($G_false);
+            return (FALSE);
         }
   
 
-    function save_data(&$chals) 
+    function save_data($chals) 
     {
         $shm =   FALSE;
         $oldmod = $chals->mod;
@@ -226,7 +223,8 @@ class Challenges {
                 log_only("challenges count ".count($chals->item)."  _n: ".$chals->item_n);
 
             $chals->mod = FALSE;
-            if (shm_put_var($shm, $tok, $chals) != FALSE) {
+            if (@shm_put_var($shm, $tok, $chals) != FALSE) {
+                log_shme("Challenges::save_data");
                 shm_detach($shm);
                 return (TRUE);
             }
@@ -256,7 +254,8 @@ class Challenges {
             return (FALSE);
         }
         if (sem_acquire($res)) {   
-            log_lock("LOCK challenges");
+            self::$delta_t = microtime(TRUE);
+            log_lock("LOCK   challenges   [".self::$delta_t."]");
             return ($res);
         }
         else
@@ -267,7 +266,7 @@ class Challenges {
     {
         GLOBAL $sess; 
     
-        log_lock("UNLOCK challenges");
+        log_lock("UNLOCK challenges   [".(microtime(TRUE) - (self::$delta_t))."]");
 
         return (sem_release($res));
     }