pull of unix socket to interact with apache2
[brisk.git] / web / Obj / auth.phh
index 11c7425..193bca6 100644 (file)
@@ -2,7 +2,7 @@
   /*
    *  brisk - auth.phh
    *
-   *  Copyright (C) 2006-2011 Matteo Nastasi
+   *  Copyright (C) 2006-2012 Matteo Nastasi
    *                          mailto: nastasi@alternativeoutput.it 
    *                                  matteo.nastasi@milug.org
    *                          web: http://www.alternativeoutput.it
 
 require_once("${G_base}Obj/dbase_${G_dbasetype}.phh");
 
-define(CHAL_SHM_DIMS_MIN, 16384);
-define(CHAL_SHM_DIMS_MAX, 65536);
-define(CHAL_SHM_DIMS_DLT, 16384);
-define(CHAL_VALID_TIME,      15);
-define(CHAL_GARBAGE_TIMEOUT,  5);
+define('CHAL_SHM_DIMS_MIN', 16384);
+define('CHAL_SHM_DIMS_MAX', 65536);
+define('CHAL_SHM_DIMS_DLT', 16384);
+define('CHAL_VALID_TIME',      15);
+define('CHAL_GARBAGE_TIMEOUT',  5);
 
 
 class Challenge {
@@ -166,7 +166,7 @@ class Challenges {
         {
             GLOBAL $sess;
             do {
-                if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) {
+                if (($tok = @ftok(FTOK_PATH."/challenges", "C")) == -1) {
                     log_main("ftok failed");
                     break;
                 }
@@ -191,6 +191,7 @@ class Challenges {
                             log_only("PUT_VAR FALLITA ".strlen(serialize($chals)));
                             log_only(serialize($chals));
                         }
+                        log_shme("Challenges::save_data2");
                     }
                     $chals->shm_sz = $shm_sz;
        
@@ -211,7 +212,7 @@ class Challenges {
         $shm =   FALSE;
         $oldmod = $chals->mod;
 
-        if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) 
+        if (($tok = @ftok(FTOK_PATH."/challenges", "C")) == -1) 
             return (FALSE);
     
         while ($chals->shm_sz < CHAL_SHM_DIMS_MAX) {
@@ -222,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);
             }
@@ -242,32 +244,26 @@ class Challenges {
         return (FALSE);
     }
 
-    function lock_data()
+    static function lock_data($is_exclusive)
     {
-        if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) {
-            return (FALSE);
-        }
-        // echo "FTOK ".$tok."<br>";
-        if (($res = sem_get($tok)) == FALSE) {
-            return (FALSE);
-        }
-        if (sem_acquire($res)) {   
-            self::$delta_t = microtime(TRUE);
-            log_lock("LOCK   challenges   [".self::$delta_t."]");
-            return ($res);
-        }
-        else
-            return (FALSE);
+      if (($res = file_lock(FTOK_PATH."/challenges", $is_exclusive)) != FALSE) {
+          self::$delta_t = microtime(TRUE);
+          log_lock("LOCK   challenges   [".self::$delta_t."]");
+          
+          return ($res);
+      }
+
+      return (FALSE);
     }
   
-    function unlock_data($res)
+    static function unlock_data($res)
     {
         GLOBAL $sess; 
     
         log_lock("UNLOCK challenges   [".(microtime(TRUE) - (self::$delta_t))."]");
 
-        return (sem_release($res));
+        file_unlock($res);
     }
 } // End CLASS Challenges
 
-?>
\ No newline at end of file
+?>