add websocketsec protocol as default for Brisk
[brisk.git] / web / briskin5 / Obj / briskin5.phh
index 05ecdf1..a058ad0 100644 (file)
@@ -525,7 +525,7 @@ class Bin5_table extends Table {
 
             $game_delta = 1;
             // $this->game_next(1);
-            $this->game_init(&$bri->user);
+            $this->game_init($bri->user);
         }
         else if ($action == BIN5_RULES_ABANDON) { // return TRUE if all correct
             if (!($user->handpt <= 2)) {
@@ -544,7 +544,7 @@ class Bin5_table extends Table {
             // Non si cambia mazzo se si abbandona la partita
             $game_delta = 0;
             // $this->game_next(0);
-            $this->game_init(&$bri->user);
+            $this->game_init($bri->user);
         }
         else if ($action == BIN5_RULES_FINISH) { // return TRUE if all correct
             $this->old_act = $action;
@@ -656,12 +656,12 @@ class Bin5_table extends Table {
                 unset($bdb);
             }
             else {
-                log_points($remote_addr, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", "DATABASE CONNECTION FAILED");
+                log_points($user->ip, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", "DATABASE CONNECTION FAILED");
             }
-            log_points($remote_addr, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", $plist);
+            log_points($user->ip, $curtime, $user, "STAT:BRISKIN5:FINISH_GAME", $plist);
         }
 
-        $this->game_init(&$bri->user);
+        $this->game_init($bri->user);
 
         return (TRUE);
     }
@@ -763,7 +763,7 @@ class Bin5_table extends Table {
             $this->mazzo = $match_data['mazzo_next'];
             $this->mult  = $match_data['mult_next'];
             $this->match_id = $match_id;
-            $this->game_init(&$bri->user);
+            $this->game_init($bri->user);
 
             /* reload of the page with the new layout */
             for ($i = 0 ; $i < BIN5_PLAYERS_N ; $i++) {
@@ -779,7 +779,7 @@ class Bin5_table extends Table {
                 $user_cur->comm[$user_cur->step % COMM_N] = "";
                 $user_cur->step_inc();
 
-                $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$bri, &$user_cur, $user_cur->step+1, TRUE, FALSE);
+                $user_cur->comm[$user_cur->step % COMM_N] = show_table($bri, $user_cur, $user_cur->step+1, TRUE, FALSE);
                 $user_cur->step_inc();
             }
             return (TRUE);
@@ -1069,7 +1069,7 @@ class Bin5_user extends User {
               log_load("RESYNC");
               /* NOTE: $this->room is associated with the current $bri object */
               printf("xXx CLASS NAME [%s]\n", get_class($this->room));
-              $ret = show_table(&$this->room, $this, $this->step, FALSE, FALSE);
+              $ret = show_table($this->room, $this, $this->step, FALSE, FALSE);
           }
           log_rd2("NEWSTAT: ".$this->stat);
 
@@ -1112,27 +1112,9 @@ class Bin5_user extends User {
 
               log_rd2($this->step, 'index_rd.php: after ret set');
 
-              if ($this->the_end == TRUE) {
-                  log_rd2("LOGOUT BYE BYE!!");
-                  log_auth($this->sess, "Explicit logout.");
-
-                  if ($this->the_end == TRUE) {
-                      $this->reset();
-
-                      // FIXME !!!
-                      /* if ($this->subst == 'sitdown') { */
-                      /*     log_load("ROOM WAKEUP"); */
-                      /*     $this->room->room_wakeup($this); */
-                      /* } */
-                      /* else if ($this->subst == 'standup') */
-                      /*     $this->room->room_outstandup($this); */
-                      /* else */
-                      /*     log_rd2("LOGOUT FROM WHAT ???"); */
-
-                  } /* if ($this->the_end == TRUE) { ... */
-              } /* if ($this->the_end == TRUE) { ... */
+              // if ($this->the_end == TRUE) { management is moved
+              // in the spush scope
           } /* if ($this->rd_step < $this->step) { */
-
       }  /* else of if ($this->rd_step == -1) { */
 
 
@@ -1190,7 +1172,7 @@ class Bin5 {
             $user[$table->player[$i]]->table_token = $table_token;
             $this->user[$i] = Bin5_user::spawn($user[$table->player[$i]], $this, $table_idx, $i, $get, $post, $cookie);
         }
-        $this->table[0] = Bin5_table::spawn(&$table);
+        $this->table[0] = Bin5_table::spawn($table);
 
         log_main("TABLE_OLD_WIN - Bin5:".$this->table[0]->old_asta_win);
 
@@ -1210,6 +1192,8 @@ class Bin5 {
 
         if (validate_sess($sess)) {
             for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
+                if ($this->user[$i]->is_empty())
+                    continue;
                 if (strcmp($sess, $this->user[$i]->sess) == 0) {
                     // find it
                     $idx = $i;
@@ -1267,7 +1251,7 @@ class Bin5 {
         if ($force || $this->garbage_timeout < $curtime) {
             for ($i = 0 ; $i < BIN5_MAX_PLAYERS ; $i++) {
                 $user_cur = $this->user[$i];
-                if ($user_cur->sess == "" ||
+                if ($user_cur->is_active() == FALSE || // is not active user or
                     ($user_cur->stat == 'table' && ($user_cur->subst == 'shutdowned' || $user_cur->subst == 'shutdowner')))
                     continue;
 
@@ -1277,18 +1261,11 @@ class Bin5 {
                     if ($user_cur->stat == 'table') {
                         log_auth($user_cur->sess," bin5 Autologout session.");
 
-                        /* SI DELEGA AL garbage_manager principale LA RIMOZIONE DELL'UTENTE
-
-                           $tmp_sess = $user_cur->sess;
-                           $user_cur->sess = "";
-                           Bin5_user::step_unproxy($tmp_sess);
-                           $user_cur->name = "";
-                           $user_cur->the_end = FALSE;
-
-                        */
+                        /* main garbage_manager is delegate as autologout management */
+                        $user_cur->the_end = TRUE;
 
                         /* se gli altri utenti non erano d'accordo questo utente viene bannato */
-                        $remcalc = $this->table[0]->exitlock_calc(&$this->user, $user_cur->table_pos);
+                        $remcalc = $this->table[0]->exitlock_calc($this->user, $user_cur->table_pos);
                         if ($remcalc < 3) {
                             require_once("${G_base}Obj/hardban.phh");
                             Hardbans::add(($user_cur->is_auth() ? $user_cur->name : FALSE),
@@ -1402,7 +1379,7 @@ class Bin5 {
             for ($i = 0 ; $i < ($user->stat == 'room' ? BIN5_MAX_PLAYERS : BIN5_PLAYERS_N) ; $i++) {
                 if ($user->stat == 'room') {
                     $user_cur = &$this->user[$i];
-                    if ($user_cur->sess == '' || $user_cur->stat != 'room')
+                    if ($user_cur->is_active() == FALSE || $user_cur->stat != 'room') // is not active user or stat isn't 'room'
                         continue;
                 }
                 else {
@@ -1530,9 +1507,10 @@ class Bin5 {
 
             break;
         case "index_rd.php":
+        case "index_rd_wss.php":
             if (($transp  = gpcs_var('transp', $get, $post, $cookie)) === FALSE)
                 $transp = "iframe";
-            if ($transp == 'websocket')
+            if ($transp == 'websocket' || $transp == 'websocketsec')
                 $enc = 'plain';
 
             do {
@@ -1632,7 +1610,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again)
     $table_pos = $user->table_pos;
 
     $ret = "table_init();";
-    $ret .= $table->exitlock_show(&$bri->user, $table_pos);
+    $ret .= $table->exitlock_show($bri->user, $table_pos);
     if (!$is_again) {
         /* GENERAL STATUS */
         $ret .= sprintf( 'gst.st = %d; stat = "%s"; subst = "%s"; table_pos = %d;',
@@ -1663,7 +1641,7 @@ function show_table(&$bri, &$user, $sendstep, $is_transition, $is_again)
     }
     /* NOTIFY FOR THE CARD MAKER */
     if ($is_transition) { //  && $user->subst ==  "asta" superfluo
-        $ret .= show_table_info(&$bri, &$table, $table_pos);
+        $ret .= show_table_info($bri, $table, $table_pos);
         $ret .= "setTimeout(preload_images, 500, g_preload_img_arr, g_imgct);";
     }
     else {