proxyscan to check (and deny) proxy connections
[brisk.git] / web / index_wr.php
index 57142d6..2b459d0 100644 (file)
  */
 
 require_once("Obj/brisk.phh");
+require_once("Obj/proxyscan.phh");
 require_once("briskin5/Obj/briskin5.phh");
 
+// Use of proxies isn't allowed.
+if (is_proxy()) {
+  sleep(5);
+  exit;
+}
+log_load("index_rd.php");
+
 if (DEBUGGING == "local" && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') {
   echo "Debugging time!";
   exit;
@@ -39,7 +47,12 @@ $is_spawn = FALSE;
 log_wr('COMM: '.$mesg);
 
 $sem = Room::lock_data();
-$room = &Room::load_data();
+if (($room = &Room::load_data()) == FALSE) {
+  echo "Load data error";
+  log_wr("Load data error");
+  Room::unlock_data($sem);
+  exit;
+}
 if (($user = &$room->get_user($sess, &$idx)) == FALSE) {
   echo "Get User Error";
   log_wr("Get User Error");
@@ -51,13 +64,19 @@ $argz = explode('|', $mesg);
 log_wr('POSTSPLIT: '.$argz[0]);
 
 if ($argz[0] == 'shutdown') {
-  log_auth($user_cur->sess, "Shutdown session.");
+  log_auth($user->sess, "Shutdown session.");
+
+  $user->reset();
+  /* factorized with ->reset()
   $tmp_sess = $user->sess;
   $user->sess = "";
   step_unproxy($tmp_sess);
   $user->name = "";
+  while (array_pop($user->comm) != NULL);
+  $user->step = 0;
   $user->the_end = FALSE;
-  
+  */
+
   log_rd2("AUTO LOGOUT.");
   if ($user->subst == 'sitdown' || $user->stat == 'table')
     $room->room_wakeup(&$user);
@@ -111,7 +130,7 @@ else if ($user->stat == 'room') {
       /* TODO: refact to a function */
       if ($user->bantime > $user->laccwr) {
        $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
-       $user->comm[$user->step % COMM_N] .= show_notify("<br>Ti sei alzato da un tavolo senza il consenso degli altri giocatori. Dovrai aspettare ancora ".secstoword($user->bantime - $user->laccwr)." prima di poterti sedere nuovamente.", 2000, "Torna in piedi.", 400, 100);
+       $user->comm[$user->step % COMM_N] .= show_notify("<br>Ti sei alzato da un tavolo senza il consenso degli altri giocatori. Dovrai aspettare ancora ".secstoword($user->bantime - $user->laccwr)." prima di poterti sedere nuovamente.", 2000, "resta in piedi.", 400, 100);
        
        $user->step_inc();
        Room::save_data($room);
@@ -185,6 +204,10 @@ else if ($user->stat == 'room') {
 
            log_wr("Pre if!");
            
+//          ARRAY_POP DISABLED
+//         // CHECK
+           while (array_pop($user_cur->comm) != NULL);
+
            $ret = "";
            $ret .= sprintf('gst.st_loc++; gst.st=%d; createCookie("table_idx", %d, 24*365, cookiepath); createCookie("table_token", "%s", 24*365, cookiepath); the_end=true; window.onunload = null ; document.location.assign("briskin5/index.php");|', $user_cur->step+1, $table_idx, $table_token);