$G_false = FALSE;
$G_all_points = array( 11,10,4,3,2, 0,0,0,0,0 );
-$G_brisk_version = "spawn-0.0.3";
+$G_brisk_version = "spawn-0.0.9";
-$root_wellarr = Array ( 'Benvenuto in brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: nuovo layout che permette più tavoli, più tavoli.',
+$root_wellarr = Array ( 'Benvenuto in brisk (Ver. '.$G_brisk_version.'), <b>NOVITA\'</b>: chiuso il <b>bug</b> dei <b>tavoli bianchi</b>, versione beta.',
'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ò risedersi a un qualunque tavolo per '.floor(BAN_TIME/60).' minuti.');
if (($sem = Briskin5::lock_data($table_idx)) != FALSE) {
log_main("bin5 lock data success");
+ $no_recovery = FALSE;
if (($bri = &Briskin5::load_data($table_idx)) != FALSE) {
if ($table_cur->table_token != $bri->table_token) {
log_main("ERROR: not matching table_token. Room: ".$table_cur->table_token." Table: ".$bri->table_token);
log_main("ERROR: not matching table_start. Room: ".$table_cur->table_start." Table: ".$bri->table_start);
+ $no_recovery = TRUE;
$bri = FALSE;
}
}
/*
* DESTROY OF FINISHED TABLE && MOVE PLAYER TO ROOM AGAIN
*/
+ log_main("garbage_manager: INSIDE THE END.");
+
for ($i = 0 ; $i < $bri_table->player_n ; $i++) {
// stat must be "table" by definition
$user_cur =& $this->user[$table_cur->player[$i]];
$bri_user =& $bri->user[$i];
-
+
$user_cur->subst = $bri_user->subst;
$user_cur->step = $bri_user->step;
- $user_cur->trans_step = $bri_user->step;
$user_cur->lacc = $bri_user->lacc;
$user_cur->laccwr = $bri_user->lacc;
$user_cur->bantime = $bri_user->bantime;
}
- $this->room_join_wakeup(&$user_cur);
+ $this->room_join_wakeup(&$user_cur, FALSE, 0);
$table_cur->table_token = "";
Briskin5::destroy_data($table_idx);
Briskin5::save_data(&$bri);
}
} // else if (($bri = &Briskin5::load_data($table_idx)) != FALSE) {
- else {
+ else if ($no_recovery == FALSE) {
log_main("ERROR: table ".$table_idx." unrecoverable join");
+
+ for ($i = 0 ; $i < $table_cur->player_n ; $i++) {
+ $user_cur = &$this->user[$table_cur->player[$i]];
+ $user_cur->subst = "shutdowner";
+ $user_cur->step_inc();
+
+ $ret = sprintf('stat = "%s"; subst = "%s";', $cur_user->stat, $cur_user->subst);
+ $ret .= "gst.st = ".($user_cur->step+1)."; ";
+ $ret .= show_notify("<br>I dati del tavolo n° ".$user_cur->table." sono inconsistenti, verranno resettati.<br><br>Torni in piedi.<br><br>", 2000, "Chiudi.", 400, 110);
+ $user_cur->comm[$user_cur->step % COMM_N] = $ret;
+ $user_cur->step_inc();
+ }
+
+ $this->room_join_wakeup(&$user_cur, TRUE, -2);
+ $table_cur->table_token = "";
}
+
+ Briskin5::unlock_data($sem);
} // bri::lock_data
} // if ($table_cur->player_n == PLAYERS_N) {
} // for ($table_idx = 0 ; $table_idx < TABLES_N ; $table_idx++) {
}
}
- function room_join_wakeup(&$user, $update_lacc = FALSE)
+ function room_join_wakeup(&$user, $update_lacc = FALSE, $trans_delta)
{
$table_idx = $user->table;
$table = &$this->table[$table_idx];
$curtime = time();
$user_wup = array();
$user_wup_n = 0;
+ $user_tab = array();
+ $user_tab_n = 0;
log_main("JOIN WAKEUP: from table [".$user->table."] nplayers_n: ".$this->table[$user->table]->player_n);
for ($i = 0 ; $i < $table->player_n ; $i++) {
$user_cur->table = -1;
$user_wup[$user_wup_n++] = &$user_cur;
}
+ $user_tab[$user_tab_n++] = &$user_cur;
}
}
$act_content = table_act_content(FALSE, 0, $table_idx, $user_cur->table);
$ret .= sprintf('$("table_act%d").innerHTML = "%s";', $table_idx, $act_content);
- for ($wup_idx = 0 ; $wup_idx < $user_wup_n ; $wup_idx++)
- if ($user_cur == $user_wup[$wup_idx])
+ for ($tab_idx = 0 ; $tab_idx < $user_tab_n ; $tab_idx++)
+ if ($user_cur == $user_tab[$tab_idx])
break;
- log_main("JOIN_WAKEUP wup_idx ".$wup_idx." wup_n ".$user_wup_n);
+ // for users that wakeup the room will be reconstructed by index_rd.php
+ if ($tab_idx < $user_tab_n) {
+ log_main("PRE show_room username: ".$user_cur->name." STEP: ".$user_cur->step);
+ $user_cur->trans_step = $user_cur->step + 1 + $trans_delta;
+ $user_cur->comm[$user_cur->step % COMM_N] = "";
+ $user_cur->step_inc();
+ $user_cur->comm[$user_cur->step % COMM_N] = show_room(&$this, ($user_cur->step + 1), &$user_cur);
+ $user_cur->step_inc();
+ log_main("POST show_room username: ".$user_cur->name." STEP: ".$user_cur->step);
- if ($wup_idx < $user_wup_n) {
- log_main("JOIN_WAKEUP less");
- // set the new status
- $ret .= 'stat = "room"; subst = "standup"; ';
- // clean the action buttons in other tables
- for ($e = 0 ; $e < TABLES_N ; $e++) {
- if ($this->table[$e]->player_n < PLAYERS_N)
- $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $e, table_act_content(TRUE, 0, $e, $user_cur->table));
- }
- log_main("JOIN_WAKEUP end less");
- }
- else {
- log_main("JOIN_WAKEUP more");
- $act_content = table_act_content(($user_cur->subst == 'standup'), $table->player_n, $table_idx, $user_cur->table);
- $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $table_idx, $act_content);
- log_main("JOIN_WAKEUP end more");
+ continue;
}
+ log_main("JOIN_WAKEUP wup_idx ".$wup_idx." wup_n ".$user_wup_n);
+
+ log_main("JOIN_WAKEUP more");
+ $act_content = table_act_content(($user_cur->subst == 'standup'), $table->player_n, $table_idx, $user_cur->table);
+ $ret .= sprintf('$("table_act%d").innerHTML = "%s";', $table_idx, $act_content);
+ log_main("JOIN_WAKEUP end more");
}
log_wr("ROOM_JOIN_WAKEUP: ".$ret);
$user_cur->comm[$user_cur->step % COMM_N] = $ret;
}
$this->user[$idx]->name = $name_new;
$this->user[$idx]->stat_set("room");
- // MOP $this->user[$idx]->step_set(0);
+ $this->user[$idx]->step_set(0);
+ while (array_pop($this->user[$idx]->comm) != NULL);
$this->user[$idx]->subst = "standup";
$this->user[$idx]->lacc = $curtime;
$this->user[$idx]->laccwr = $curtime;
{
GLOBAL $G_false, $sess;
- if (($tok = ftok(FTOK_PATH."/main", "B")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) {
echo "FTOK FAILED";
exit;
}
// var_dump($room);
- if (($tok = ftok(FTOK_PATH."/main", "B")) == -1)
+ if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1)
return (FALSE);
do {
// echo "LOCK: ".FTOK_PATH."/main";
// exit;
- if (($tok = ftok(FTOK_PATH."/main", "B")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/main", "B")) == -1) {
echo "FTOK FAILED";
exit;
}
$ssess = "XXXX";
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_only2.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("ONL2: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
$ssess = "XXXX";
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_only.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("ONLY: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
$ssess = "XXXX";
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_main.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("MAIN: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_rd.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("READ: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
$ssess = $sess;
- // if (($fp = @fopen("/tmp/brisk_rd2.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("REA2: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_send.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("SEND: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
$ssess = "XXXX";
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_lock.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("LOCK: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_wr.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("WRIT: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
else
$ssess = $sess;
-
- // if (($fp = @fopen("/tmp/brisk_load.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("LOAD: [%s] [%s]\n", $ssess, $log));
fclose($fp);
}
if ((BRISK_DEBUG & DBG_AUTH) == 0)
return;
- // if (($fp = @fopen("/tmp/brisk_auth.log", 'a')) != FALSE) {
- if (($fp = @fopen("/tmp/brisk.log", 'a')) != FALSE) {
+ if (($fp = @fopen(LEGAL_PATH."/brisk.log", 'a')) != FALSE) {
fwrite($fp, sprintf("AUTH: [%s] [%d] [%s]\n", $sess, time(), $log));
fclose($fp);
}
{
GLOBAL $_SERVER;
- if (($fp = @fopen(LEGAL_PATH, 'a')) != FALSE) {
+ 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", $timecur, $sess, $name, $_SERVER['REMOTE_ADDR'], $where , $mesg));
fclose($fp);
function lock_banlist()
{
- if (($tok = ftok(FTOK_PATH."/main", "L")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/main", "L")) == -1) {
echo "FTOK FAILED";
exit;
}
return ($ret);
}
-function show_room(&$room, &$user)
+function show_room(&$room, $user_step, &$user)
{
- $ret = sprintf('gst.st = %d;', $user->step);
+ log_main("show_room: username: ".$user->name);
+
+
+ $ret = sprintf('gst.st = %d;', $user_step);
$ret .= sprintf('stat = "%s";', $user->stat);
$ret .= root_wellcome($user);