locking recovery added
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Sun, 1 Feb 2009 15:40:45 +0000 (15:40 +0000)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Sun, 1 Feb 2009 15:40:45 +0000 (15:40 +0000)
web/Obj/auth.phh
web/Obj/brisk.phh
web/Obj/hardban.phh
web/index_rd.php

index 292ab0c..fdebea7 100644 (file)
@@ -246,13 +246,11 @@ class Challenges {
   function lock_data()
   {
     if (($tok = @ftok(FTOK_PATH."/challenges", "B")) == -1) {
-      echo "FTOK FAILED";
-      exit;
+      return (FALSE);
     }
     // echo "FTOK ".$tok."<br>";
     if (($res = sem_get($tok)) == FALSE) {
-      echo "SEM_GET FAILED";
-      exit;
+      return (FALSE);
     }
     if (sem_acquire($res)) {   
       log_lock("LOCK challenges");
index 22c0610..aeb839a 100644 (file)
@@ -64,7 +64,8 @@ define(DBG_LOAD, 0x0100);
 define(DBG_AUTH, 0x0200);
 define(DBG_CRIT, 0x0400);
 
-define(BRISK_DEBUG, 0);
+// NOTE: BRISK DEBUG must be a numerical constant, not the result of operations on symbols 
+define(BRISK_DEBUG, 0xffffffff);
 
 define(BRISK_SINGLE_DEBUG,0);
 define(BRISK_SINGLE_SESS, "");
@@ -75,9 +76,10 @@ require_once("$DOCUMENT_ROOT/Etc/".BRISK_CONF);
 $G_false = FALSE;
 
 $G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "2.1.3 - trusty";
+$G_brisk_version = "2.1.4 - trusty";
 
-$root_wellarr = Array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: Garanzia dal sito e stato degli utenti (guarda l\'help).',
+/* MLANG: ALL THE INFO STRINGS IN brisk.phh */
+$root_wellarr = Array ( 'Brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: Aggiunto un watchdog per la rete e il tasto "reload" in room.',
                         'Se vuoi iscriverti alla <a target="_blank" href="http://www.milug.org/cgi-bin/mailman/listinfo/ml-briscola">Mailing List</a>, cliccala!' );
 $table_wellarr = Array ( 'Benvenuto al tavolo. Se almeno tre giocatori non sbloccano l\'uscita cliccando il lucchetto, chi esce non pu&ograve; risedersi a un qualunque tavolo per '.floor(BAN_TIME/60).' minuti.');
 
@@ -829,7 +831,7 @@ class User {
 
   function reset() {
     $curtime = time();
-    log_legal($curtime, $this->sess, $this->name, "STAT:LOGOUT", '');
+    log_legal($curtime, $this, "STAT:LOGOUT", '');
 
     $tmp_sess = $this->sess;
     $this->sess = "";
@@ -978,7 +980,7 @@ class Room {
                  $user_cur->bantime    = $bri_user->bantime;
                }
 
-                log_legal($curtime, $user_cur->sess, $user_cur->name, "STAT:DESTROY_GAME", $plist);
+                log_legal($curtime, $user_cur, "STAT:DESTROY_GAME", $plist);
 
                $this->room_join_wakeup(&$user_cur, FALSE, 0); 
                $table_cur->table_token = "";
@@ -1014,7 +1016,7 @@ class Room {
               for ($i = 0 ; $i < $table_cur->player_n ; $i++) {
                 $plist .= '|'.$this->user[$table_cur->player[$i]]->sess;
               }
-              log_legal($curtime, $user_cur->sess, $user_cur->name, "STAT:DESTROY_GAME(RECOVERY)", $plist);
+              log_legal($curtime, $user_cur, "STAT:DESTROY_GAME(RECOVERY)", $plist);
               
              $this->room_join_wakeup(&$user_cur, TRUE, -2); 
              $table_cur->table_token = "";
@@ -1058,6 +1060,7 @@ class Room {
          if ($user_cur->stat == 'room' && $user_cur->subst == 'sitdown') {
            $this->room_wakeup(&$user_cur);
            $user_cur->comm[$user_cur->step % COMM_N] = "gst.st = ".($user_cur->step+1)."; ";
+            /* MLANG: <br>Sei stato inattivo per ".(EXPIRE_TIME_SMAMMA/60.0)." minuti. <br><br>Quindi ritorni tra i <b>Giocatori in piedi</b>.", "torna ai tavoli" */
            $user_cur->comm[$user_cur->step % COMM_N] .=  show_notify("<br>Sei stato inattivo per ".(EXPIRE_TIME_SMAMMA/60.0)." minuti. <br><br>Quindi ritorni tra i <b>Giocatori in piedi</b>.", 0, "torna ai tavoli", 400, 100);
            $user_cur->step_inc();
          }
@@ -1418,6 +1421,7 @@ class Room {
         strncmp($msg, "/tav ", 5) == 0) {
       do {
         if ($user->stat != 'room' || $user->subst != 'sitdown') {
+          /* MLANG: "<br>Per attivare il messaggio di segnalazione del tavolo occorre essere seduti.<br><br>", "<br>Il messaggio di segnalazione del tavolo &egrave; gi&agrave; attivato.<br><br>", "<br>Il messaggio di segnalazione del tavolo<br>&egrave; disattivato ancora per %d second%s.<br><br>" */
           $msg = "<br>Per attivare il messaggio di segnalazione del tavolo occorre essere seduti.<br><br>";
           $to_user = show_notify($msg, 0, "chiudi", 400, 100);
 
@@ -1463,18 +1467,21 @@ class Room {
       }
       do {
         if (strncmp($msg, $alarm_check, strlen($alarm_check)) != 0) {
+          /* MLANG: "<br>La password digitata non &egrave; corretta.<br><br>" */
           $msg = "<br>La password digitata non &egrave; corretta.<br><br>";
           $to_user = show_notify($msg, 0, "chiudi", 400, 100);
 
           break;
         }
 
+        /* MLANG: "Alarm <b>%s</b> inviato a <b>%s</b>." */
         $to_user = sprintf('chatt_sub("%s", [2, "%s"],"Alarm <b>%s</b> inviato a <b>%s</b>.");', 
                            $dt, NICKSERV, xcape(substr($msg, strlen($alarm_check))), 
                            ($target == "" ? "tutti" : xcape($target)) );
 
         $msg = sprintf("<br><b>%s<br><br>%s</b><br><br>",
                        $dt.NICKSERV, xcape(substr($msg, strlen($alarm_check))));
+        /* MLANG: "chiudi" */
         $to_all = show_notify($msg, 0, "chiudi", 400, 120);
       } while (0);
     } // /alarm chat command
@@ -1483,6 +1490,7 @@ class Room {
         $to_user = sprintf('authbox(300,200);');
       }
       else {
+        /* MLANG: "<b>Per autenticare qualcuno devi a tua volta essere autenticato.</b>", "Il nickname deve contenere almeno una lettera dell\'alfabeto o una cifra.", "Nickname <b>%s</b> gi&agrave; in uso." */
         $to_user = sprintf('chatt_sub("%s", [2, "%s"],"<b>Per autenticare qualcuno devi a tua volta essere autenticato.</b>");', $dt, NICKSERV);
       }
     }
@@ -1509,6 +1517,7 @@ class Room {
           break;
         }
         
+        /* MLANG: "<b>Non puoi cambiare nick a un tavolo per soli autenticati.</b>", "Il nickname <b>\'%s\'</b> &egrave; gi&agrave; registrato, <b>se il suo proprietario si autentificher&agrave; verrai rinominato d\'ufficio come ghost<i>N</i>.</b>" */
         if ($user->flags & USER_FLAG_AUTH) {
           if (strcasecmp($user->name,$name_new) != 0) {
             if ($user->subst == 'standup' || ($user->subst != 'standup' && $this->table[$user->table]->auth_only == FALSE)) {
@@ -1524,10 +1533,10 @@ class Room {
           }
         }
        $user->name = $name_new; // OK - nick changed
-        
         /* se nome gia' in uso, segnala cosa potrebbe capitare */
         if (($user->flags & USER_FLAG_AUTH) == 0) {
           $userdb = new LoginDB();
+          /* MLANG: "Il nickname <b>\'%s\'</b> &egrave; gi&agrave; registrato, <b>se il suo proprietario si autentificher&agrave; verrai rinominato d\'ufficio come ghost<i>N</i>.</b>" */
           if ($userdb->login_exists($name_new)) {
             $to_user .= sprintf('chatt_sub("%s", [2, "%s"],"Il nickname <b>\'%s\'</b> &egrave; gi&agrave; registrato, <b>se il suo proprietario si autentificher&agrave; verrai rinominato d\'ufficio come ghost<i>N</i>.</b>");', $dt, NICKSERV, xcape($name_new));
           }
@@ -1570,6 +1579,7 @@ class Room {
           $st = USER_FLAG_S_EYE;
         }
         else {
+          /* MLANG: "Questo stato non esiste." */
           $to_user = sprintf('chatt_sub("%s", [2,"%s"],"Questo stato non esiste.");', $dt, NICKSERV);
           break;
         }
@@ -1611,7 +1621,7 @@ class Room {
           $to_room = $to_user;
       }
 
-      log_legal($curtime, $user->sess, $user->name
+      log_legal($curtime, $user, 
                ($user->stat == 'room' ? 'room' : 'table '.$user->table),$msg);
       
       $user->chat_lst = "$msg";
@@ -2035,13 +2045,11 @@ class Room {
     //  echo "LOCK: ".FTOK_PATH."/main";
     //  exit;
     if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) {
-      echo "FTOK FAILED";
-      exit;
+      return (FALSE);
     }
     // echo "FTOK ".$tok."<br>";
     if (($res = sem_get($tok)) == FALSE) {
-      echo "SEM_GET FAILED";
-      exit;
+      return (FALSE);
     }
     if (sem_acquire($res)) {   
       log_lock("LOCK room");
@@ -2397,13 +2405,16 @@ function log_auth($sess, $log) {
 }
 
 
-function log_legal($curtime, $sess, $name, $where, $mesg) 
+// function log_legal($curtime, $sess, $name, $where, $mesg) 
+function log_legal($curtime, &$user, $where, $mesg) 
 {
   GLOBAL $_SERVER;
 
   if (($fp = @fopen(LEGAL_PATH."/legal.log", 'a')) != FALSE) {
     /* Unix time | session | nickname | IP | where was | mesg */
-    fwrite($fp, sprintf("%ld|%s|%s|%s|%s|%s|\n", $curtime, $sess, $name, $_SERVER['REMOTE_ADDR'], $where , $mesg));
+    fwrite($fp, sprintf("%ld|%s|%s|%s|%s|%s|%s|\n", $curtime, $user->sess,
+                        ($user->flags & USER_FLAG_AUTH ? 'A' : 'N'),
+                        $user->name, $_SERVER['REMOTE_ADDR'], $where , $mesg));
     fclose($fp);
   }
 }
@@ -2577,6 +2588,7 @@ function show_table_info(&$room, &$table, $table_pos)
     $wol = game_result($table->old_asta_pnt, $table->old_pnt);
 
     if ($win != $fri) {
+      /* MLANG: "<hr>Nell'ultima mano ha chiamato <b>%s</b>, il socio era <b>%s</b>,<br>", "hanno fatto <b>cappotto</b> EBBRAVI!.<hr>", "dovevano fare <b>%s</b> punti e ne hanno fatti <b>%d</b>: hanno <b>%s</b>.<hr>", "<hr>Nell'ultima mano <b>%s</b> si &egrave; chiamato in mano,<br>", "ha fatto <b>cappotto</b> EBBRAVO!.<hr>", "doveva fare <b>%s</b> punti e ne ha fatti <b>%d</b>: ha <b>%s</b>.<hr>", ($table->old_asta_pnt > 61 ? "almeno ".$table->old_asta_pnt : 'pi&ugrave; di 60'), $table->old_pnt, ($wol == 1 ? "vinto" : ($wol == 0 ? "pareggiato" : "perso" */
       $noty .= sprintf("<hr>Nell'ultima mano ha chiamato <b>%s</b>, il socio era <b>%s</b>,<br>", 
                       xcape($room->user[$win]->name),
                       xcape($room->user[$fri]->name));
@@ -2604,6 +2616,7 @@ function show_table_info(&$room, &$table, $table_pos)
       }
     }
   }
+  /* MLANG: "Fai <b>tu</b> il mazzo,", "Il mazzo a <b>$unam</b>," */
   if ($table->mazzo == $table_pos) 
     $noty .= "Fai <b>tu</b> il mazzo,";
   else {
@@ -2621,7 +2634,7 @@ function show_table_info(&$room, &$table, $table_pos)
     $curplayer = ($table->gstart + $table->turn) % PLAYERS_N;
   }
 
-
+  /* MLANG: " tocca a <b>te</b> giocare.", " tocca a <b>$unam</b> giocare.", " La partita vale <b>%s</b>.", "torna alla partita" */
   if ($curplayer == $table_pos) {
     $noty .= " tocca a <b>te</b> giocare.";
   }
@@ -2695,8 +2708,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
     $ret .= sprintf( 'gst.st = %d; stat = "%s"; subst = "%s"; table_pos = %d;',
                     $sendstep, $user->stat, $user->subst, $table_pos);
 
-    log_rd(sprintf( 'SHOW_TABLE: gst.st = %d; stat = "%s"; subst = "%s"; table_pos = %d;',
-                    $sendstep, $user->stat, $user->subst, $table_pos));
+    log_rd(sprintf( 'SHOW_TABLE: gst.st = %d; stat = "%s"; subst = "%s"; table_pos = %d;', $sendstep, $user->stat, $user->subst, $table_pos));
 
     /* BACKGROUND */
     $ret .= "background_set();";
@@ -3030,13 +3042,11 @@ class Warrant {
     GLOBAL $sess; 
     
     if (($tok = @ftok(FTOK_PATH."/warrant", "B")) == -1) {
-      echo "FTOK FAILED";
-      exit;
+      return (FALSE);
     }
     // echo "FTOK ".$tok."<br>";
     if (($res = sem_get($tok)) == FALSE) {
-      echo "SEM_GET FAILED";
-      exit;
+      return (FALSE);
     }
     if (sem_acquire($res)) {   
       log_lock("LOCK room");
index 61ddb91..239ed7d 100644 (file)
@@ -241,13 +241,11 @@ class Hardbans {
   function lock_data()
   {
     if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
-      echo "FTOK FAILED";
-      exit;
+      return (FALSE);
     }
     // echo "FTOK ".$tok."<br>";
     if (($res = sem_get($tok)) == FALSE) {
-      echo "SEM_GET FAILED";
-      exit;
+      return (FALSE);
     }
     if (sem_acquire($res)) {   
       log_lock("LOCK hardbans");
index 8f724d1..473a6fd 100644 (file)
@@ -110,7 +110,14 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su
     ignore_user_abort(FALSE);
   }
   else {
+    // wait 20 secs, then restart the xhr 
+    ignore_user_abort(FALSE);
+
+    return ("sleep(gst,20000);|xhr_rd_abort(xhr_rd);");
+    /*
+    ignore_user_abort(FALSE);
     return (FALSE);
+    */
   }
     
   if (($proxy_step = step_get($sess)) != FALSE) {