pre-merge into master
[brisk.git] / web / index_wr.php
index 56e2579..5b05c68 100644 (file)
@@ -79,10 +79,12 @@ $mlang_indwr = array( 'btn_backtotab' => array( 'it' => 'Torna ai tavoli.',
 
                       );
 
-function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
+function index_wr_main(&$room, $remote_addr_full, $get, $post, $cookie)
 {
     GLOBAL $G_shutdown, $G_black_list, $G_lang, $G_room_help, $G_room_about, $G_room_passwdhowto, $mlang_indwr;
 
+    $remote_addr = addrtoipv4($remote_addr_full);
+
     log_load("index_wr.php");
 
     if (($mesg = gpcs_var('mesg', $get, $post, $cookie)) === FALSE) 
@@ -91,7 +93,7 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
     if (($sess = gpcs_var('sess', $get, $post, $cookie)) === FALSE)
         $sess = "";
 
-    
+
     if (DEBUGGING == "local" && $remote_addr != '127.0.0.1') {
         echo "Debugging time!";
         return (FALSE);
@@ -103,18 +105,18 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
 
     /* if the IP is banned, exit without do nothing */
     if (array_search($remote_addr, $G_black_list) !== FALSE) {
-        sleep(5);
+        // TODO: find a way to add a nonblocking sleep(5) here
         return (FALSE);
     }
 
     $is_spawn = FALSE;
-    
+
     log_wr(0, 'index_wr.php: COMM: '.xcapemesg($mesg));
     log_wr('COMM: '.xcapemesg($mesg));
-    
+
     $curtime = time();
     $dt = date("H:i ", $curtime);
-    
+
     if (($user = $room->get_user($sess, &$idx)) == FALSE) {
         $argz = explode('|', xcapemesg($mesg));
 
@@ -182,7 +184,6 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
         else if ($argz[0] == 'whysupport') {
             echo show_notify(str_replace("\n", " ", $G_room_whysupport[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lng], 400, 200);
         }
-        
         else { 
             log_wr("Get User Error");
             echo "Get User Error:" + $argz[0];
@@ -191,8 +192,6 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
         return TRUE;
     }
 
-
-
     $argz = explode('|', xcapemesg($mesg));
 
     log_wr('POSTSPLIT: '.$argz[0]);
@@ -200,9 +199,46 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
     // LACC UPDATED
     $user->lacc = $curtime;
 
+    if (array_search($user->ip, $G_black_list) !== FALSE) {
+        // TODO: find a way to add a nonblocking sleep(5) here
+        return (FALSE);
+    }
+
     if ($argz[0] == 'ping') {
         log_wr("PING RECEIVED");
     }
+    else if ($argz[0] == 'prefs') {
+        if ($argz[1] == 'save') {
+            if (!isset($post['prefs'])) {
+                return FALSE;
+            }
+
+            if (($prefs = Client_prefs::from_json($post['prefs'])) == FALSE) {
+                $prefs = Client_prefs::from_user($user);
+            }
+            $prefs->store($user, TRUE);
+        }
+        else { // reset case as default
+            $prefs = Client_prefs::from_user($user);
+        }
+        $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
+        $user->comm[$user->step % COMM_N] .=  sprintf('prefs_load(\'%s\', true, %s);', json_encode($prefs),
+                                                      'false');
+        $user->step_inc();
+
+        if ($argz[1] == 'save') {
+            if ($user->stat == 'room' && $user->subst == 'standup') {
+                $room->standup_update($user);
+            }
+            else if ($user->stat == 'room' && $user->subst == 'sitdown') {
+                log_main("chatt_send pre table update");
+                $room->table_update($user);
+                log_main("chatt_send post table update");
+            }
+        }
+        echo "1";
+        return TRUE;
+    }
     else if ($argz[0] == 'shutdown') {
         log_auth($user->sess, "Shutdown session.");
 
@@ -600,7 +636,7 @@ function index_wr_main(&$room, $remote_addr, $get, $post, $cookie)
                     for ($i = 0 ; $i < $table->player_n ; $i++) {
                         $plist .= '|'.$room->user[$table->player[$i]]->sess;
                     }
-                    log_legal($curtime, 'xxx', $user, "STAT:CREATE_GAME", $plist);
+                    log_legal($curtime, $user->ip, $user, "STAT:CREATE_GAME", $plist);
                     
                     log_wr("pre new Bin5");
                     if (($bri = new Bin5($room, $table_idx, $table_token, $get, $post, $cookie)) == FALSE)