reference operator removed because class are passed by reference as default in php5
[brisk.git] / web / Obj / brisk.phh
index 4acf0a7..87185da 100644 (file)
@@ -808,39 +808,46 @@ class User {
     */
   }
 
-  function step_set($step) {
-    $this->step = $step;
-    
-    do {
-      if (validate_sess($this->sess) == FALSE)
-       break;
-      if (file_exists(PROXY_PATH) == FALSE)
-        mkdir(PROXY_PATH);
-      if (($fp = @fopen(PROXY_PATH."/".$this->sess.".step", 'w')) == FALSE)
-       break;
-      fwrite($fp, pack("LL",$this->step, $this->idx));
-      fclose($fp);
-
-      return (TRUE);
-    } while (0);
+  function step_set($step) 
+  {
+      $this->step = $step & 0x7fffffff;
+      
+      do {
+          if (validate_sess($this->sess) == FALSE)
+              break;
+          if (file_exists(PROXY_PATH) == FALSE)
+              mkdir(PROXY_PATH);
+          if (($fp = @fopen(PROXY_PATH."/".$this->sess.".step", 'w')) == FALSE)
+              break;
+          fwrite($fp, pack("LL",$this->step, $this->idx));
+          fclose($fp);
 
-    return (FALSE);
+          log_main("step_set [".$this->sess. "] [".$this->step."]"); 
+          
+          return (TRUE);
+      } while (0);
+      
+      return (FALSE);
   }
-
+  
   function step_inc($delta = 1) {
-    $this->step += $delta;
-    
-    if (validate_sess($this->sess)) {
-      if (file_exists(PROXY_PATH) == FALSE)
-        mkdir(PROXY_PATH);
-      $fp = fopen(PROXY_PATH."/".$this->sess.".step", 'w');
-      fwrite($fp, pack("LL", $this->step, $this->idx));
-      fclose($fp);
+      $this->step += $delta;
+      /* modularization because unpack() not manage unsigned 32bit int correctly */
+      $this->step &= 0x7fffffff;
+      
+      if (validate_sess($this->sess)) {
+          if (file_exists(PROXY_PATH) == FALSE)
+              mkdir(PROXY_PATH);
+          $fp = fopen(PROXY_PATH."/".$this->sess.".step", 'w');
+          fwrite($fp, pack("LL", $this->step, $this->idx));
+          fclose($fp);
 
-      return (TRUE);
-    }
-    
-    return (FALSE);
+          log_main("step_inc [".$this->sess. "] [".$this->step."]"); 
+          
+          return (TRUE);
+      }
+      
+      return (FALSE);
   }
 
   function reset() {
@@ -864,12 +871,12 @@ class User {
 
 
   // SHSPLIT save and load function for the User class.
-  function load_data($id
+  static function load_data($id, $sess
   {
-    GLOBAL $sess;
-
     // error_log("User::load_data BEGIN", 0);
 
+    log_main("load_data: id [".$id."] sess [".($sess == FALSE ? "FALSE" : $sess)."] ");
+
     $doexit = FALSE;
     do {
       if (($tok = @ftok(FTOK_PATH."/user".$id, "B")) == -1) {
@@ -888,7 +895,11 @@ class User {
       if ($shm = shm_attach($tok, $shm_sz)) {
        $user = @shm_get_var($shm, $tok);
        
-       log_only("bri ==  ".($user == FALSE ?   "FALSE" : "TRUE")."  bri ===  ".($user === FALSE ? "FALSE" : "TRUE")."  bri isset ".(isset($user) ?   "TRUE" : "FALSE"));
+        if ($sess != FALSE && $user->sess != $sess) {
+            $doexit = TRUE;
+            break;
+        }
+       log_only("user ==  ".($user == FALSE ?   "FALSE" : "TRUE")."  user ===  ".($user === FALSE ? "FALSE" : "TRUE")."  user isset ".(isset($user) ?   "TRUE" : "FALSE"));
        if (isset($user)) 
          log_only("bri count ".count($user));
        
@@ -896,7 +907,7 @@ class User {
          log_only("INIT MAIN DATA");
          
           // SHSPLIT FIXME: init_data for User class ??
-         $user =& User::create($id, "", "");
+         $user = User::create($id, "", "");
          if (@shm_put_var($shm, $tok, $user) == FALSE) {
               log_only("PUT_VAR FALLITA ".strlen(serialize($user)));
               log_only(serialize($user));
@@ -921,7 +932,7 @@ class User {
   }
   
 
-  function save_data(&$user, $id) 
+  function save_data($user, $id) 
   {
     GLOBAL $sess;