X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Findex_wr.php;h=1fa59e8eae639792cf90b0d4b24d352e61915bb9;hb=0d462f547c388b20d72a9de96955484636736108;hp=808b020f662f29e1f1b084e87d230a3beffadf55;hpb=64c7d34242c417a2a430534717ad2b3850e27602;p=brisk.git diff --git a/web/index_wr.php b/web/index_wr.php index 808b020..1fa59e8 100644 --- a/web/index_wr.php +++ b/web/index_wr.php @@ -2,7 +2,10 @@ /* * brisk - index_wr.php * - * Copyright (C) 2006 matteo.nastasi@milug.org + * Copyright (C) 2006-2008 Matteo Nastasi + * mailto: nastasi@alternativeoutput.it + * matteo.nastasi@milug.org + * web: http://www.alternativeoutput.it * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,18 +25,31 @@ */ 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_wr.php"); + if (DEBUGGING == "local" && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { echo "Debugging time!"; exit; } -log_load("index_wr.php"); - /* * MAIN */ + +/* if the IP is banned, exit without do nothing */ +if (array_search($_SERVER['REMOTE_ADDR'], $G_black_list) !== FALSE) { + sleep(5); + exit; +} + $is_spawn = FALSE; log_wr('COMM: '.$mesg); @@ -57,12 +73,18 @@ log_wr('POSTSPLIT: '.$argz[0]); if ($argz[0] == 'shutdown') { 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); @@ -113,6 +135,28 @@ else if ($user->stat == 'room') { Room::unlock_data($sem); exit; } + + // Take parameters + $table_idx = $argz[1]; + $table = &$room->table[$table_idx]; + + $curtime = time(); + + if ($G_shutdown || $table->wakeup_time > $curtime) { + $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; + + $dt = date("H:i ", $curtime); + if ($G_shutdown) + $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s","Il server sta per essere riavviato, non possono avere inizio nuove partite.");', $dt.NICKSERV); + else + $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s","Il tavolo si è appena liberato, ci si potrà sedere tra %d secondi.");', $dt.NICKSERV, $table->wakeup_time - $curtime); + + $user->step_inc(); + Room::save_data($room); + Room::unlock_data($sem); + exit; + } + /* TODO: refact to a function */ if ($user->bantime > $user->laccwr) { $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; @@ -124,10 +168,6 @@ else if ($user->stat == 'room') { exit; } - // Take parameters - $table_idx = $argz[1]; - $table = &$room->table[$table_idx]; - if ($table->player_n == PLAYERS_N) { log_wr("WARN:FSM: Sitdown unreachable, table full."); Room::unlock_data($sem); @@ -151,98 +191,65 @@ else if ($user->stat == 'room') { // START THE SPAWN HERE!!!! // - if (TRUE) { // WITH SPAWN - $curtime = time(); - // Create new spawned table - $bri_sem = Briskin5::lock_data($table_idx); - $table_token = uniqid(""); - $room->table[$table_idx]->table_token = $table_token; - $room->table[$table_idx]->table_start = $curtime; - - if (($bri =& new Briskin5(&$room, $table_idx, $table_token)) == FALSE) - log_wr("bri create: FALSE"); - else - log_wr("bri create: ".serialize($bri)); + $curtime = time(); + // Create new spawned table + $bri_sem = Briskin5::lock_data($table_idx); + $table_token = uniqid(""); + $room->table[$table_idx]->table_token = $table_token; + $room->table[$table_idx]->table_start = $curtime; + + if (($bri =& new Briskin5(&$room, $table_idx, $table_token)) == FALSE) + log_wr("bri create: FALSE"); + else + log_wr("bri create: ".serialize($bri)); - // init table - $bri_table =& $bri->table[0]; - $bri_table->init(&$bri->user); - $bri_table->game_init(&$bri->user); - // - // Init spawned users. - // - for ($i = 0 ; $i < $table->player_n ; $i++) { - $bri_user_cur = &$bri->user[$i]; - $user_cur = &$room->user[$table->player[$i]]; - - $bri_user_cur->stat_set('table'); - $bri_user_cur->subst = 'asta'; - $bri_user_cur->laccwr = $curtime; - - $bri_user_cur->trans_step = $user_cur->step + 1; - $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = ""; - $bri_user_cur->step_inc(); - $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = show_table(&$bri,&$bri_user_cur,$bri_user_cur->step+1,TRUE, FALSE); - - $bri_user_cur->step_inc(); - - log_wr("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step); - - 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); - - $user_cur->comm[$user_cur->step % COMM_N] = $ret; - $user_cur->trans_step = $user_cur->step + 1; - log_wr("TRANS ATTIVATO"); - - - $user_cur->stat_set('table'); - $user_cur->subst = 'asta'; - $user_cur->laccwr = $curtime; - $user_cur->step_inc(); - } - log_wr("presave bri"); - Briskin5::save_data($bri); - Briskin5::unlock_data($bri_sem); - log_wr("postsave bri"); - } - else { // BEFORE SPAWN - // init table - $table->init(&$room->user); - $table->game_init(&$room->user); - $curtime = time(); - - // init users - for ($i = 0 ; $i < $table->player_n ; $i++) { - $user_cur = &$room->user[$table->player[$i]]; - log_wr("Pre if!"); - - $ret = ""; - $ret .= sprintf('gst.st_loc++; gst.st=%d; the_end=true; window.onunload = null ; document.location.assign("table.php");|', $user_cur->step+1); - - $user_cur->comm[$user_cur->step % COMM_N] = $ret; - $user_cur->trans_step = $user_cur->step + 1; - log_wr("TRANS ATTIVATO"); - - - $user_cur->stat_set('table'); - $user_cur->subst = 'asta'; - $user_cur->laccwr = $curtime; - $user_cur->step_inc(); - - $user_cur->comm[$user_cur->step % COMM_N] = show_table(&$room,&$user_cur,$user_cur->step+1,TRUE, FALSE); - $user_cur->step_inc(); - } - } // end else { BEFORE SPAWN - - log_wr("MOP after"); - + // init table + $bri_table =& $bri->table[0]; + $bri_table->init(&$bri->user); + $bri_table->game_init(&$bri->user); + // + // Init spawned users. + // + for ($i = 0 ; $i < $table->player_n ; $i++) { + $bri_user_cur = &$bri->user[$i]; + $user_cur = &$room->user[$table->player[$i]]; + + $bri_user_cur->stat_set('table'); + $bri_user_cur->subst = 'asta'; + $bri_user_cur->laccwr = $curtime; + + $bri_user_cur->trans_step = $user_cur->step + 1; + $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = ""; + $bri_user_cur->step_inc(); + $bri_user_cur->comm[$bri_user_cur->step % COMM_N] = show_table(&$bri,&$bri_user_cur,$bri_user_cur->step+1,TRUE, FALSE); + + $bri_user_cur->step_inc(); + + log_wr("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step); + + 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); + + $user_cur->comm[$user_cur->step % COMM_N] = $ret; + $user_cur->trans_step = $user_cur->step + 1; + log_wr("TRANS ATTIVATO"); + + + $user_cur->stat_set('table'); + $user_cur->subst = 'asta'; + $user_cur->laccwr = $curtime; + $user_cur->step_inc(); + } + log_wr("presave bri"); + Briskin5::save_data($bri); + Briskin5::unlock_data($bri_sem); + log_wr("postsave bri"); } // change room $room->room_sitdown(&$user, $table_idx);