X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Findex_wr.php;h=56fd416dcc42a1eedfd6ae4f79b31826f45f1cf2;hb=29ef3f7db6bc1d39c658a15d95d22e45bbd59c16;hp=57142d6317b668a9e47916f4b17caa07cb5c267e;hpb=8861498f64b33d632aaf4f0b3b54a01503307531;p=brisk.git diff --git a/web/index_wr.php b/web/index_wr.php index 57142d6..56fd416 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,28 +25,62 @@ */ 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); $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"); Room::unlock_data($sem); + $argz = explode('|', $mesg); + + if ($argz[0] == 'help') { + echo show_notify(str_replace("\n", " ", $G_room_help), 0, "torna ai tavoli", 600, 500); + } + else if ($argz[0] == 'about') { + echo show_notify(str_replace("\n", " ", $G_room_about), 0, "torna ai tavoli", 400, 200); + } + else if ($argz[0] == 'roadmap') { + echo show_notify(str_replace("\n", " ", $G_room_roadmap), 0, "torna ai tavoli", 400, 200); + } + else if ($argz[0] == 'whysupport') { + echo show_notify(str_replace("\n", " ", $G_room_whysupport), 0, "torna ai tavoli", 400, 200); + } + else { + log_wr("Get User Error"); + echo "Get User Error"; + } exit; } $argz = explode('|', $mesg); @@ -51,13 +88,10 @@ $argz = explode('|', $mesg); log_wr('POSTSPLIT: '.$argz[0]); if ($argz[0] == 'shutdown') { - log_auth($user_cur->sess, "Shutdown session."); - $tmp_sess = $user->sess; - $user->sess = ""; - step_unproxy($tmp_sess); - $user->name = ""; - $user->the_end = FALSE; - + log_auth($user->sess, "Shutdown session."); + + $user->reset(); + log_rd2("AUTO LOGOUT."); if ($user->subst == 'sitdown' || $user->stat == 'table') $room->room_wakeup(&$user); @@ -89,6 +123,22 @@ else if ($user->stat == 'room') { log_wr($user->comm[$user->step % COMM_N]); $user->step_inc(); + } + else if ($argz[0] == 'roadmap') { + $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; + $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_roadmap), 0, "torna ai tavoli", 400, 200); + + log_wr($user->comm[$user->step % COMM_N]); + $user->step_inc(); + + } + else if ($argz[0] == 'whysupport') { + $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; + $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_whysupport), 0, "torna ai tavoli", 400, 200); + + log_wr($user->comm[$user->step % COMM_N]); + $user->step_inc(); + } else if ($argz[0] == 'chatt') { $room->chatt_send(&$user,$mesg); @@ -108,10 +158,32 @@ 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)."; "; - $user->comm[$user->step % COMM_N] .= show_notify("
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("
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); @@ -119,10 +191,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); @@ -146,94 +214,72 @@ 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)); - - // 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!"); - - $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"); + $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; + + $plist = "$table_token|$user->table|$table->player_n"; + for ($i = 0 ; $i < $table->player_n ; $i++) { + $plist .= '|'.$room->user[$table->player[$i]]->sess; + } + log_legal($curtime, $user->sess, $user->name, "STAT:CREATE_GAME", $plist); + 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"); } // change room $room->room_sitdown(&$user, $table_idx); @@ -244,7 +290,7 @@ else if ($user->stat == 'room') { } else if ($argz[0] == 'logout') { $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();'); + $user->comm[$user->step % COMM_N] .= 'postact_logout();'; $user->the_end = TRUE; $user->step_inc(); } @@ -261,7 +307,7 @@ else if ($user->stat == 'room') { else if ($argz[0] == 'logout') { $room->room_wakeup(&$user); $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= sprintf('postact_logout();'); + $user->comm[$user->step % COMM_N] .= 'postact_logout();'; $user->the_end = TRUE; $user->step_inc(); }