From c3ccbbd5bc7c8534127fa10b4f88b81cffc6029a Mon Sep 17 00:00:00 2001 From: "Matteo Nastasi (mop)" Date: Mon, 16 Jul 2012 09:15:01 +0200 Subject: [PATCH] first set of commands arrive from index_rd_ifra.php handler --- web/Obj/brisk.phh | 36 ++ web/index.php | 46 +- web/index_rd_ifra.php | 536 +++++++++---------- web/index_wr.php | 1050 +++++++++++++++++++------------------ web/spush/brisk-spush.php | 116 +++- web/spush/sac-a-push.phh | 15 +- 6 files changed, 969 insertions(+), 830 deletions(-) diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index bcb4d75..58f1e85 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -704,6 +704,14 @@ class User { var $subst; // substatus for each status var $step; // step of the current status var $trans_step; // step to enable transition between pages (disable == -1) + + var $rd_socket; // socket handle of push stream + var $rd_endtime; // end time for push stream + var $rd_stat; // actual status of push stream + var $rd_subst; // actual substatus of push stream + var $rd_step; // actual step of push stream + var $rd_from; // referer + var $rd_scristp; // current script step (for each session) var $comm; // commands array // var $asta_card; // // var $asta_pnt; // @@ -747,6 +755,15 @@ class User { $thiz->step = 1; $thiz->trans_step = -1; $thiz->comm = array(); + + $thiz->rd_socket = NULL; + $thiz->rd_endtime = -1; + $thiz->rd_stat = -1; + $thiz->rd_subst = ""; + $thiz->rd_step = -1; + $thiz->rd_from = ""; + $thiz->rd_scristp = -1; + $thiz->asta_card = -2; $thiz->asta_pnt = -1; $thiz->handpt = -1; @@ -879,6 +896,14 @@ class User { return ($thiz); } + function rd_socket_get() { + return ($this->rd_socket); + } + + function rd_socket_set($sock) { + $this->rd_socket = $sock; + } + function idx_get() { return ($this->idx); } @@ -917,6 +942,17 @@ class User { return TRUE; } + function rd_data_set($endtime, $stat, $subst, $step, $from) + { + $this->rd_endtime = $endtime; + $this->rd_stat = $stat; + $this->rd_subst = $subst; + $this->rd_step = $step; + $this->rd_from = $from; + $this->rd_scristp = 0; + } + + function save_step() { do { diff --git a/web/index.php b/web/index.php index 45b5b57..587acd8 100644 --- a/web/index.php +++ b/web/index.php @@ -220,20 +220,32 @@ function carousel_top() return (sprintf('', $rn)); } -function index_main(&$room) +function index_main(&$room, &$header_out, $get, $post, $cookie) { - GLOBAL $G_with_donors, $G_donors_cur, $G_donors_all; - GLOBAL $G_with_topbanner, $G_topbanner, $G_is_local; - GLOBAL $G_with_sidebanner, $G_sidebanner; - GLOBAL $G_with_sidebanner2, $G_sidebanner2; - GLOBAL $G_with_poll; - GLOBAL $sess, $name, $pass_private, $table_idx, $table_token, $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER; - GLOBAL $G_lang, $G_lng, $mlang_room; - - // Use of proxies isn't allowed. - if (!$G_is_local && is_proxy()) { - return FALSE; - } + GLOBAL $G_with_donors, $G_donors_cur, $G_donors_all; + GLOBAL $G_with_topbanner, $G_topbanner, $G_is_local; + GLOBAL $G_with_sidebanner, $G_sidebanner; + GLOBAL $G_with_sidebanner2, $G_sidebanner2; + GLOBAL $G_with_poll; + GLOBAL $G_lang, $G_lng, $mlang_room; + GLOBAL $BRISK_SHOWHTML, $BRISK_DEBUG, $_SERVER; + + if (($sess = gpcs_var('sess', $get, $post, $cookie)) === FALSE) + unset($sess); + if (($name = gpcs_var('name', $get, $post, $cookie)) === FALSE) + unset($name); + if (($pass_private = gpcs_var('pass_private', $get, $post, $cookie)) === FALSE) + unset ($pass_private); + if (($table_idx = gpcs_var('table_idx', $get, $post, $cookie)) === FALSE) + unset ($table_idx); + if (($table_token = gpcs_var('table_idx', $get, $post, $cookie)) === FALSE) + unset ($table_token); + + + // Use of proxies isn't allowed. + if (!$G_is_local && is_proxy()) { + return FALSE; + } $is_login = FALSE; $body = ""; @@ -257,7 +269,7 @@ function index_main(&$room) if ($user->stat == "table") { setcookie("table_token", $user->table_token, $curtime + 31536000); setcookie("table_idx", $user->table, $curtime + 31536000); - header ("Location: briskin5/index.php"); + $header_out['Location'] = "Location: briskin5/index.php"; return TRUE; } $ACTION = "room"; @@ -288,7 +300,7 @@ function index_main(&$room) if ($user->stat == "table") { setcookie("table_token", $user->table_token, $curtime + 31536000); setcookie("table_idx", $user->table, $curtime + 31536000); - header ("Location: briskin5/index.php"); + $header_out['Location'] = "Location: briskin5/index.php"; return TRUE; } @@ -845,7 +857,7 @@ supported by:
/* Templates. */ if ($ACTION == 'login') { - header('Content-type: text/html; charset="utf-8"',true); + $header_out['Content-type'] = "text/html; charset=\"utf-8\""; ?> @@ -979,7 +991,7 @@ echo "$body"; ?> diff --git a/web/index_rd_ifra.php b/web/index_rd_ifra.php index 86a1b2e..7d4f493 100644 --- a/web/index_rd_ifra.php +++ b/web/index_rd_ifra.php @@ -22,11 +22,75 @@ * */ -$G_base = ""; - -require_once("Obj/brisk.phh"); +// require_once("Obj/brisk.phh"); // require_once("Obj/proxyscan.phh"); -require_once("briskin5/Obj/briskin5.phh"); +// require_once("briskin5/Obj/briskin5.phh"); + +$G_four_rnd_string = + "GGZDGDRBXDWFXHGPYAAVDXEKFDUWSTEDTDVXBXQPMZAIFPNLRPTWMJAZRHXTIRNZ" +."HTZXAUVJDCLXENDCLIZXSSEQQGUADYEKNNANJWEGRUFHPLUNSEROZQJSLMUYNUVG" +."FPLQAGCMTTGIRRXZFBFQFTRBYPHTWFSXFKHKYBRDAOSOURCMEVGPVXJVUQAOCFPV" +."OQSUBOYWOZLDGRPQQIBNOTHFUHTCRRZOBCUONAXIYUYCJBFTVNWIITVHBYLNMPWR" +."LPMMIROZVRUNYXSJSMJINSXGACXDMJAEPNFFAERHVDJELXSPPJWKMNFGVGAPTIMR" +."VMVMVCLWKMPOAJWZGPSPFEXVNQANXGLZIQSCBIYVFSTXZOODZYCXUVUZFCLFGHUJ" +."TXZWFHSMFJQAZOQRANKZJAUJHFJIKHIIEQUSDXUBRPQBKMIAVTWYQEOIMYKKDTEV" +."EYERPXKFJXWNIMJPOFFMWJCJSLFZKPNRNVXIDLUSRVBGLUCQZCUQCZNAORDXMRSS" +."UBNMPXJDQXXLMQRCTOCCJJWHFSUWBNWXWZHPKWYYKPZIMBXTYAZXJJQSBLNAQGJI" +."AIXZUHNTQYFSGUYMVOWEGUWWRBEMRJHXXOMLRXXWJZLPGLMKEANZWWXIXPIUTURJ" +."TCXYIKIPNTSUIOWBCEVQHLTHYQNGBHAOPREWGJVOQKNUKTXVTMBRHCERDGYWQVXB" +."BCZUGMIJXALLIOSXCYMEIDNTPLGRMKXKVFKWGRFKCBIRASOOYIFTLXFSBEOJSDFN" +."PHSWPGERDYIGUPDXUBSAFCHTPJNBORIRMAOCKGAMFFZUBTVSGEEFMYMEBPUVCRSP" +."DEEAROBQLJHNMCDAFMPLUKNZXTTJJIULUTDTLEZLVMRLKNLXGCQIGFCBHEWDHNPW" +."VRONBYCXVRGNQUMFSRADSIFLNRMQXAZKQUKYXGOAKTSLWVSBJMQYZMULCNYKFFUC" +."LKIPNJOURQLYDHLZYPHEJXPBYTXTGVZOGQUZXAORYINAOTRJCNEDPAXSJIQICWEY" +."UEJPQALSYHKYZLPJTMBLIDNFRFLTIOVZZTEWPSJCUNDWUDZWJKDDRJEXOICJBSYP" +."ZHLECBYVMMYLCCPCSVOVPEHEWQDJYSCOWTKFHTWVTSBCQSFKQFCNTGOQBEPSEXKR" +."AMJIKXZCWLPXMEUBLRJHNEVGMTGARBOBLOYPWUCWSBVTMZBIBRDCNOYXLPSDZODN" +."JSZXXQUCJZKIYOCCRHYALAJSYXFMWBAOIVAJWIAPOECUJAMFPCOCZDBDHRTBUWWJ" +."EJYZESNKIXFEBENSOHLCNSQPWGGJLOMTFEZVWWQAKPIFGUUUMWOKLXDUPFMOEKQG" +."ELOIQAUJPPIJZWKTCYQTJWXCBJMQWIOLQWJIASSXSFLWGUSETHRKEJHCHBOFLJJC" +."KPPLOTKBXSKUOSNSFHOJRCKXOKQHETCGSMABVALDSBAXBQRFNNJGIDZMNUYQYDHX" +."DJAHJBJSUEHADPSHOPOXEIRQPEAJEMEBWNXTOSGEQFUVXVHZDYHRUXCRICUHYUHA" +."FXXGTKWVDDMDSLXEVKZUNTEUKWAGSAWPHGQHEBUMQDHZDVIFVFNDXDUEVZVGSBCQ" +."STWYUOIHBOQQBAIAQJVNDZQVWHNXHMROIMXNCZRHYXUBFYLEZTWFCYOVILASEFSH" +."ZUQSNNTYEOCSTRDJPFHCPTDEWCQNEDFOQCZMXKCFIANKWOVDARXWRUCTPYPGTEZB" +."PERZIMOHRCNBYYJVYFBQJARSULMIAQPILDHEMKNVWMGFQBGZRSQZWZBMSDYKLOTA" +."VUILKBJADGDTEZENLJEOYPXIXJWIJXONTLXBRLIJFQZORAJIIZQRCUOZLVUTIHXI" +."NDRVVDJTEIKVLKZVRWHINEYVRGJHXLRNDCNFIYFRUUWMKKGHCPWLZKFULMJOIGJZ" +."OONOCNPLEJIBKYFDGEQEMMWYBNBWPDRCEIUMFTYAULDBHSHAGPFWVTZXYQGUAXYN" +."JGGOAMNBBFFSCDSXRTPOHBOVZEXYKAENIWSMBOXGQQTDTIBPSXFHMQUMMKNYYWIC" +."MFDWSMZDWHGCEWQHFTIMDGTMCEFKWMBAVPEBTCKHRRTLAYEGZTINIWYCUJRZMBPS" +."TLLEDLEPSAFMQPHYNJWBSSXKEMKLEZIAVNYIOUOTKGYUYJBKBSBQCFRXKOQABUWF" +."YCNLGXGTLWMLEJVSNDIAMYSXSYFLMNGBOZSREPCPQLRCLNYFVKTWUWBNYAPZTJVO" +."ONEPJBVBIOPBGVUNWUWZZBJEBDWUWUNFDBOICCGKXDBQWSWFUMIYRCXHLDWFKDUO" +."PBGTXWNOMUEBENXMARIGPKDETSZNTRODQZYNJJDMYSUBOLPWOEWEVESPLXIKLELG" +."DCIPTCCKJNNDBRCNVNHVZWPKWPUWLSOORQHNXRBZHHIYPJNBIRCZCIGGEMYKNWXV" +."TLCLXTIYRVUXONAJUCNMWHNMUSHRWHOEQTTGYJRJEZKNHLVUXUKQQYREZXWRNQKO" +."BDZTUGIKACSXLRJLESYYPLRFCFVSWJSZYPJBLBTPSEGUZOEXDIXEVWZJEOMOJOIB" +."QNXNFUXBRJYXMDXQOLVWVLZZMTEMTYRZBWUEEFIBOWXAPKEIQIZZCLMWAOBZVFTP" +."QQPBYCCLEYRLXVBPMUUMUDPECMDFSVJNKKAEMBYJJXMZGWYTAHECIXAFGWAOGIWV" +."GAOHCMVHJZVWZCHJWGJJDBZNDXPXOYTDVZEDPWZIIMQVCQPLQIEOSRPVVICTZKGX" +."JXSFDFUHKKOTXTEGLDSCAODMCVGSSEYANCXJDATMRJRIDLLIJHINSOXJQDEABCVU" +."WFXWKXJQEREZDLOVUQHYBESHNJWTESPNDVIKYLCTNQEVVUXAWFNQEYIVZXNMJEPL" +."MFMTOKXXFQYYVBHAXYQVUBALQLSNJSVOTZDDTOZMUEVZJATXQNQVSFXWTGACHUDD" +."QXCPCRLSREKXHKJNUYUJGIGCNWXUSXOGGYPQWFZDJCKKZONXJUSJKBYIPJSMPVIN" +."UFBIFNROMBTKQPBIZYJWLPQIJLNTLHTUEWFINOQQDAHCXXKVADTEDBANOPIJBXXC" +."NAEZOVJAISUQBCBNOYIJBXMRPYPKXBFKFVGQLOEFPOCTZHJXKGUPZQPZOZWXXSSH" +."SLBGVGVPRAFJCVRKWLSWLMHBMYOKVJDCZSQBLTGSOJDJHOVIDEBKJZNAQYLFIEYS" +."AYHOSGGDDJAAVTMBYFREMEPLWZXYZUYYRQWKQBLKAPDXMMHCBWSARJCHPGZFCVJG" +."OXXKCMWTVMKHUUSUMQOGNIHKIIAXNOAHPRIWHDOBJTRKSZAKOMHWTPQQXGZBOPIP" +."FQEVUBULHGESOARVICLMSUSHHTVYLFMLHFGKJNPYIYEMLBAZMLIDDSWRCVFOUSGC" +."TUQHWTUHRJUZHYQOKTWTLRVOSWRPSYBOBSZHZLRZEIZKKCMLNYICCUTIXNXETTKL" +."PYIFTUDCMWRQBZDROXTTVTAOOIQHIWOZESRHKPNGNCSHNAVEWUSGOTZCRNFSIXGF" +."QJUMUFPEZBFPOVGZZDCGDKEODSWAPNDNHVJUQDYLCXWNXSCDFFFPBTDOIZIZLBBP" +."ZXZYWTTPEUUCKXGBTXAJBAXYLMUVWWGWZYTXTKYVRXSOXOBHERLZJPRDXIQZRQLU" +."TXCLIJNKIRWMVQEJTLHZIDTNGBOYSULGWUTSYTKGNMGZFWKXCCZXGOQGZNQFZJUK" +."JMBQPQPZOPYTQMPEFTZUDLIIBZAZSZAPNILMIKMPKXJIRHRQMFSTJKAPIIQWOFYQ" +."HGANJGJSUGDIENDVEQFEMUJBGMZBPHLOARCVGMUUCHLCDDNKSJSCKYSALUAGUZFN" +."YVURVLREBESGXPANIDKGLPJZGXLKFKTPEQBQEINOYYZTBMPFBLBKIKVPAPFDKKRZ" +."YMVUBYCYTRXCIICUPTXKGQOIJSVSWPYVALIROWGVXDXGNSRVZOLEJHNRSUKHNTRJ" +."LQZQKBEFXYKIPXJRZMQMJKUGCNUKBZBWABPLHMAJJZVBCWOQYCLSGDUKJSTHTVXV" +."OUGJVADGJWGVNBNXYRZDSNLOZDIQRKOQAKJJDKXRMMTXRVTLOMTETNROPDYNXAGR"; $S_load_stat = array( 'rU_heavy' => 0, 'lL_laccgarb' => 0, @@ -57,13 +121,6 @@ if (DEBUGGING == "local" && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { exit; } -function shutta() -{ - log_rd2("SHUTTA [".connection_status()."] !"); -} - -register_shutdown_function(shutta); - function blocking_error($is_unrecoverable) { GLOBAL $is_page_streaming; @@ -88,7 +145,7 @@ function page_sync($sess, $page, $table_idx, $table_token) -function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_subst, &$new_step) +function maincheck(&$room, &$user, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_subst, &$new_step) { GLOBAL $G_lang, $mlang_indrd, $is_page_streaming; // GLOBAL $first_loop; @@ -102,81 +159,81 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su log_rd("maincheck begin"); $ret = FALSE; - $room = FALSE; - $user = FALSE; + // $room = FALSE; + // $user = FALSE; $curtime = time(); // NOTE: qui forse si potrebbe fallback-are a una User::load_data // anche se non ce ne dovrebbe essere mai la necessità - if (($proxy_step = User::load_step($sess)) == FALSE) { - log_only2("R"); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($proxy_step = User::load_step($sess)) == FALSE) { */ + /* log_only2("R"); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ // log_rd2("M"); /* Sync check (read only without modifications */ ignore_user_abort(TRUE); - /* shared locking to load info */ - if (($sem = Room::lock_data(FALSE)) == FALSE) { - // wait 20 secs, then restart the xhr - ignore_user_abort(FALSE); - return ("sleep(gst,20000);|hstm.xhr_abort();"); - } + /* /\* shared locking to load info *\/ */ + /* if (($sem = Room::lock_data(FALSE)) == FALSE) { */ + /* // wait 20 secs, then restart the xhr */ + /* ignore_user_abort(FALSE); */ + /* return ("sleep(gst,20000);|hstm.xhr_abort();"); */ + /* } */ - // Verifica l'expire time lato server - if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* // Verifica l'expire time lato server */ + /* if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ /* if lacc time great than STREAM_TIMEOUT or the room garbage_time is expired switch to exclusive locking and verify again the conditions */ if ((($curtime - $user->lacc) > STREAM_TIMEOUT) || Room::garbage_time_is_expired($curtime)) { /* there is some info that require to change data, switch to exclusive locking */ - Room::unlock_data($sem); - if (($sem = Room::lock_data(TRUE)) == FALSE) { - // wait 20 secs, then restart the xhr - ignore_user_abort(FALSE); - return ("sleep(gst,20000);|hstm.xhr_abort();"); - } + // Room::unlock_data($sem); + /* if (($sem = Room::lock_data(TRUE)) == FALSE) { */ + /* // wait 20 secs, then restart the xhr */ + /* ignore_user_abort(FALSE); */ + /* return ("sleep(gst,20000);|hstm.xhr_abort();"); */ + /* } */ $S_load_stat['lL_laccgarb']++; // load again the data after locking - unset($user); + // unset($user); // Verifica l'expire time lato server - if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ if (($curtime - $user->lacc) >= STREAM_TIMEOUT) { $S_load_stat['wU_lacc_upd']++; $user->lacc = $curtime; // lacc field updated - User::save_data($user, $user->idx); + /* User::save_data($user, $user->idx); */ } if (Room::garbage_time_is_expired($curtime)) { log_only("F"); $S_load_stat['wR_garbage']++; - if (($room = Room::load_data()) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($room = Room::load_data()) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ log_main("pre garbage_manager TRE"); $room->garbage_manager(FALSE); - Room::save_data($room); - unset($room); + /* Room::save_data($room); */ + /* unset($room); */ } } log_main("infolock: U"); - Room::unlock_data($sem); + /* Room::unlock_data($sem); */ ignore_user_abort(FALSE); @@ -221,35 +278,35 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su // $first_loop = FALSE; // } // if ($first_loop == TRUE) { - if ($cur_step == $proxy_step['s']) { - log_main("infolock: P"); - return (FALSE); - } - else { - log_only2("R"); - } + /* if ($cur_step == $proxy_step['s']) { */ + /* log_main("infolock: P"); */ + /* return (FALSE); */ + /* } */ + /* else { */ + /* log_only2("R"); */ + /* } */ $S_load_stat['rU_heavy']++; - if ($user == FALSE) { - do { - ignore_user_abort(TRUE); - if (($sem = Room::lock_data(FALSE)) == FALSE) - break; + /* if ($user == FALSE) { */ + /* do { */ + /* ignore_user_abort(TRUE); */ + /* if (($sem = Room::lock_data(FALSE)) == FALSE) */ + /* break; */ - log_main("infolock: P"); - if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { - break; - } - } while (0); + /* log_main("infolock: P"); */ + /* if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { */ + /* break; */ + /* } */ + /* } while (0); */ - if ($sem != FALSE) - Room::unlock_data($sem); + /* if ($sem != FALSE) */ + /* Room::unlock_data($sem); */ - ignore_user_abort(FALSE); - if ($user == FALSE) { - return (blocking_error(TRUE)); - } - } + /* ignore_user_abort(FALSE); */ + /* if ($user == FALSE) { */ + /* return (blocking_error(TRUE)); */ + /* } */ + /* } */ /* Nothing changed, return. */ if ($cur_step == $user->step) @@ -263,22 +320,22 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su */ /* unset the $user var to reload it from main structure */ - unset($user); + /* unset($user); */ ignore_user_abort(TRUE); - $sem = Room::lock_data(TRUE); - if (($room = Room::load_data()) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* $sem = Room::lock_data(TRUE); */ + /* if (($room = Room::load_data()) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ $S_load_stat['wR_minusone']++; - if (($user = $room->get_user($sess, $idx)) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($user = $room->get_user($sess, $idx)) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ if ($user->the_end == TRUE) { log_rd2("main_check: the end".var_export(debug_backtrace())); @@ -290,8 +347,8 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su $cur_step = $user->trans_step; $user->trans_step = -1; - Room::save_data($room); - Room::unlock_data($sem); + /* Room::save_data($room); */ + /* Room::unlock_data($sem); */ ignore_user_abort(FALSE); } else { @@ -305,7 +362,7 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su // Room::save_data($room); // // $new_step = $user->step; - Room::unlock_data($sem); + /* Room::unlock_data($sem); */ ignore_user_abort(FALSE); } } @@ -351,20 +408,20 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su } /* if ($cur_step == -1) { */ else { ignore_user_abort(TRUE); - $sem = Room::lock_data(FALSE); + /* $sem = Room::lock_data(FALSE); */ $S_load_stat['rU_heavy']++; - if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($user = User::load_data($proxy_step['i'], $sess)) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ if ($cur_step < $user->step) { do { if ($cur_step + COMM_N < $user->step) { if (($cur_stat != $user->stat)) { $to_stat = $user->stat; - Room::unlock_data($sem); + /* Room::unlock_data($sem); */ ignore_user_abort(FALSE); log_load("RESYNC"); return (page_sync($user->sess, ($to_stat == "table" ? "briskin5/index.php" : "index.php"), $user->table, $user->table_token)); @@ -386,25 +443,25 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su log_rd2($user->step, 'index_rd.php: after ret set'); if ($user->the_end == TRUE) { - Room::unlock_data($sem); + /* Room::unlock_data($sem); */ /* Switch to exclusive locking */ - $sem = Room::lock_data(TRUE); + /* $sem = Room::lock_data(TRUE); */ - unset($user); + /* unset($user); */ $S_load_stat['wR_the_end']++; - if (($room = Room::load_data()) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } - - if (($user = $room->get_user($sess, $idx)) == FALSE) { - Room::unlock_data($sem); - ignore_user_abort(FALSE); - return (blocking_error(TRUE)); - } + /* if (($room = Room::load_data()) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ + + /* if (($user = $room->get_user($sess, $idx)) == FALSE) { */ + /* Room::unlock_data($sem); */ + /* ignore_user_abort(FALSE); */ + /* return (blocking_error(TRUE)); */ + /* } */ log_rd2("LOGOUT BYE BYE!!"); log_auth($user->sess, "Explicit logout."); @@ -421,12 +478,12 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su else log_rd2("LOGOUT FROM WHAT ???"); - Room::save_data($room); + /* Room::save_data($room); */ } /* if ($user->the_end == TRUE) { ... */ } /* if ($user->the_end == TRUE) { ... */ } /* if ($cur_step < $user->step) { */ - Room::unlock_data($sem); + /* Room::unlock_data($sem); */ ignore_user_abort(FALSE); } /* else of if ($cur_step == -1) { */ @@ -444,164 +501,117 @@ function maincheck($sess, $cur_stat, $cur_subst, $cur_step, &$new_stat, &$new_su stat step */ +function index_rd_ifra_init(&$room, &$user, &$header_out, &$body, $get, $post, $cookie) +{ + GLOBAL $G_four_rnd_string; -$is_page_streaming = FALSE; // (webservers_exceeded() || stristr($HTTP_USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; rv:5.0)") || stristr($HTTP_USER_AGENT, "MSIE") || stristr($HTTP_USER_AGENT, "CHROME") ? TRUE : FALSE); + $is_page_streaming = FALSE; // (webservers_exceeded() || stristr($HTTP_USER_AGENT, "Mozilla/5.0 (Windows NT 6.1; rv:5.0)") || stristr($HTTP_USER_AGENT, "MSIE") || stristr($HTTP_USER_AGENT, "CHROME") ? TRUE : FALSE); -header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 -header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past -header('Content-type: text/html; charset="utf-8"',true); + $header_out['Cache-Control'] = 'no-cache, must-revalidate'; // HTTP/1.1 + $header_out['Expires'] = 'Mon, 26 Jul 1997 05:00:00 GMT'; // Date in the past + $header_out['Content-type'] = 'text/html; charset="utf-8"'; -$four_rnd_string = - "GGZDGDRBXDWFXHGPYAAVDXEKFDUWSTEDTDVXBXQPMZAIFPNLRPTWMJAZRHXTIRNZ" -."HTZXAUVJDCLXENDCLIZXSSEQQGUADYEKNNANJWEGRUFHPLUNSEROZQJSLMUYNUVG" -."FPLQAGCMTTGIRRXZFBFQFTRBYPHTWFSXFKHKYBRDAOSOURCMEVGPVXJVUQAOCFPV" -."OQSUBOYWOZLDGRPQQIBNOTHFUHTCRRZOBCUONAXIYUYCJBFTVNWIITVHBYLNMPWR" -."LPMMIROZVRUNYXSJSMJINSXGACXDMJAEPNFFAERHVDJELXSPPJWKMNFGVGAPTIMR" -."VMVMVCLWKMPOAJWZGPSPFEXVNQANXGLZIQSCBIYVFSTXZOODZYCXUVUZFCLFGHUJ" -."TXZWFHSMFJQAZOQRANKZJAUJHFJIKHIIEQUSDXUBRPQBKMIAVTWYQEOIMYKKDTEV" -."EYERPXKFJXWNIMJPOFFMWJCJSLFZKPNRNVXIDLUSRVBGLUCQZCUQCZNAORDXMRSS" -."UBNMPXJDQXXLMQRCTOCCJJWHFSUWBNWXWZHPKWYYKPZIMBXTYAZXJJQSBLNAQGJI" -."AIXZUHNTQYFSGUYMVOWEGUWWRBEMRJHXXOMLRXXWJZLPGLMKEANZWWXIXPIUTURJ" -."TCXYIKIPNTSUIOWBCEVQHLTHYQNGBHAOPREWGJVOQKNUKTXVTMBRHCERDGYWQVXB" -."BCZUGMIJXALLIOSXCYMEIDNTPLGRMKXKVFKWGRFKCBIRASOOYIFTLXFSBEOJSDFN" -."PHSWPGERDYIGUPDXUBSAFCHTPJNBORIRMAOCKGAMFFZUBTVSGEEFMYMEBPUVCRSP" -."DEEAROBQLJHNMCDAFMPLUKNZXTTJJIULUTDTLEZLVMRLKNLXGCQIGFCBHEWDHNPW" -."VRONBYCXVRGNQUMFSRADSIFLNRMQXAZKQUKYXGOAKTSLWVSBJMQYZMULCNYKFFUC" -."LKIPNJOURQLYDHLZYPHEJXPBYTXTGVZOGQUZXAORYINAOTRJCNEDPAXSJIQICWEY" -."UEJPQALSYHKYZLPJTMBLIDNFRFLTIOVZZTEWPSJCUNDWUDZWJKDDRJEXOICJBSYP" -."ZHLECBYVMMYLCCPCSVOVPEHEWQDJYSCOWTKFHTWVTSBCQSFKQFCNTGOQBEPSEXKR" -."AMJIKXZCWLPXMEUBLRJHNEVGMTGARBOBLOYPWUCWSBVTMZBIBRDCNOYXLPSDZODN" -."JSZXXQUCJZKIYOCCRHYALAJSYXFMWBAOIVAJWIAPOECUJAMFPCOCZDBDHRTBUWWJ" -."EJYZESNKIXFEBENSOHLCNSQPWGGJLOMTFEZVWWQAKPIFGUUUMWOKLXDUPFMOEKQG" -."ELOIQAUJPPIJZWKTCYQTJWXCBJMQWIOLQWJIASSXSFLWGUSETHRKEJHCHBOFLJJC" -."KPPLOTKBXSKUOSNSFHOJRCKXOKQHETCGSMABVALDSBAXBQRFNNJGIDZMNUYQYDHX" -."DJAHJBJSUEHADPSHOPOXEIRQPEAJEMEBWNXTOSGEQFUVXVHZDYHRUXCRICUHYUHA" -."FXXGTKWVDDMDSLXEVKZUNTEUKWAGSAWPHGQHEBUMQDHZDVIFVFNDXDUEVZVGSBCQ" -."STWYUOIHBOQQBAIAQJVNDZQVWHNXHMROIMXNCZRHYXUBFYLEZTWFCYOVILASEFSH" -."ZUQSNNTYEOCSTRDJPFHCPTDEWCQNEDFOQCZMXKCFIANKWOVDARXWRUCTPYPGTEZB" -."PERZIMOHRCNBYYJVYFBQJARSULMIAQPILDHEMKNVWMGFQBGZRSQZWZBMSDYKLOTA" -."VUILKBJADGDTEZENLJEOYPXIXJWIJXONTLXBRLIJFQZORAJIIZQRCUOZLVUTIHXI" -."NDRVVDJTEIKVLKZVRWHINEYVRGJHXLRNDCNFIYFRUUWMKKGHCPWLZKFULMJOIGJZ" -."OONOCNPLEJIBKYFDGEQEMMWYBNBWPDRCEIUMFTYAULDBHSHAGPFWVTZXYQGUAXYN" -."JGGOAMNBBFFSCDSXRTPOHBOVZEXYKAENIWSMBOXGQQTDTIBPSXFHMQUMMKNYYWIC" -."MFDWSMZDWHGCEWQHFTIMDGTMCEFKWMBAVPEBTCKHRRTLAYEGZTINIWYCUJRZMBPS" -."TLLEDLEPSAFMQPHYNJWBSSXKEMKLEZIAVNYIOUOTKGYUYJBKBSBQCFRXKOQABUWF" -."YCNLGXGTLWMLEJVSNDIAMYSXSYFLMNGBOZSREPCPQLRCLNYFVKTWUWBNYAPZTJVO" -."ONEPJBVBIOPBGVUNWUWZZBJEBDWUWUNFDBOICCGKXDBQWSWFUMIYRCXHLDWFKDUO" -."PBGTXWNOMUEBENXMARIGPKDETSZNTRODQZYNJJDMYSUBOLPWOEWEVESPLXIKLELG" -."DCIPTCCKJNNDBRCNVNHVZWPKWPUWLSOORQHNXRBZHHIYPJNBIRCZCIGGEMYKNWXV" -."TLCLXTIYRVUXONAJUCNMWHNMUSHRWHOEQTTGYJRJEZKNHLVUXUKQQYREZXWRNQKO" -."BDZTUGIKACSXLRJLESYYPLRFCFVSWJSZYPJBLBTPSEGUZOEXDIXEVWZJEOMOJOIB" -."QNXNFUXBRJYXMDXQOLVWVLZZMTEMTYRZBWUEEFIBOWXAPKEIQIZZCLMWAOBZVFTP" -."QQPBYCCLEYRLXVBPMUUMUDPECMDFSVJNKKAEMBYJJXMZGWYTAHECIXAFGWAOGIWV" -."GAOHCMVHJZVWZCHJWGJJDBZNDXPXOYTDVZEDPWZIIMQVCQPLQIEOSRPVVICTZKGX" -."JXSFDFUHKKOTXTEGLDSCAODMCVGSSEYANCXJDATMRJRIDLLIJHINSOXJQDEABCVU" -."WFXWKXJQEREZDLOVUQHYBESHNJWTESPNDVIKYLCTNQEVVUXAWFNQEYIVZXNMJEPL" -."MFMTOKXXFQYYVBHAXYQVUBALQLSNJSVOTZDDTOZMUEVZJATXQNQVSFXWTGACHUDD" -."QXCPCRLSREKXHKJNUYUJGIGCNWXUSXOGGYPQWFZDJCKKZONXJUSJKBYIPJSMPVIN" -."UFBIFNROMBTKQPBIZYJWLPQIJLNTLHTUEWFINOQQDAHCXXKVADTEDBANOPIJBXXC" -."NAEZOVJAISUQBCBNOYIJBXMRPYPKXBFKFVGQLOEFPOCTZHJXKGUPZQPZOZWXXSSH" -."SLBGVGVPRAFJCVRKWLSWLMHBMYOKVJDCZSQBLTGSOJDJHOVIDEBKJZNAQYLFIEYS" -."AYHOSGGDDJAAVTMBYFREMEPLWZXYZUYYRQWKQBLKAPDXMMHCBWSARJCHPGZFCVJG" -."OXXKCMWTVMKHUUSUMQOGNIHKIIAXNOAHPRIWHDOBJTRKSZAKOMHWTPQQXGZBOPIP" -."FQEVUBULHGESOARVICLMSUSHHTVYLFMLHFGKJNPYIYEMLBAZMLIDDSWRCVFOUSGC" -."TUQHWTUHRJUZHYQOKTWTLRVOSWRPSYBOBSZHZLRZEIZKKCMLNYICCUTIXNXETTKL" -."PYIFTUDCMWRQBZDROXTTVTAOOIQHIWOZESRHKPNGNCSHNAVEWUSGOTZCRNFSIXGF" -."QJUMUFPEZBFPOVGZZDCGDKEODSWAPNDNHVJUQDYLCXWNXSCDFFFPBTDOIZIZLBBP" -."ZXZYWTTPEUUCKXGBTXAJBAXYLMUVWWGWZYTXTKYVRXSOXOBHERLZJPRDXIQZRQLU" -."TXCLIJNKIRWMVQEJTLHZIDTNGBOYSULGWUTSYTKGNMGZFWKXCCZXGOQGZNQFZJUK" -."JMBQPQPZOPYTQMPEFTZUDLIIBZAZSZAPNILMIKMPKXJIRHRQMFSTJKAPIIQWOFYQ" -."HGANJGJSUGDIENDVEQFEMUJBGMZBPHLOARCVGMUUCHLCDDNKSJSCKYSALUAGUZFN" -."YVURVLREBESGXPANIDKGLPJZGXLKFKTPEQBQEINOYYZTBMPFBLBKIKVPAPFDKKRZ" -."YMVUBYCYTRXCIICUPTXKGQOIJSVSWPYVALIROWGVXDXGNSRVZOLEJHNRSUKHNTRJ" -."LQZQKBEFXYKIPXJRZMQMJKUGCNUKBZBWABPLHMAJJZVBCWOQYCLSGDUKJSTHTVXV" -."OUGJVADGJWGVNBNXYRZDSNLOZDIQRKOQAKJJDKXRMMTXRVTLOMTETNROPDYNXAGR"; -?> + log_load("index_rd_ifra_init.php"); + + if (($from = gpcs_var('from', $get, $post, $cookie)) === FALSE) + $from = ""; + if (($stat = gpcs_var('stat', $get, $post, $cookie)) === FALSE) + $stat = ""; + if (($subst = gpcs_var('subst', $get, $post, $cookie)) === FALSE) + $subst = ""; + if (($step = gpcs_var('step', $get, $post, $cookie)) === FALSE) + unset($step); + + $user->rd_data_set(time() + STREAM_TIMEOUT, $stat, $subst, $step, $from); + + $body .= sprintf(" - - - + + - -"); + $body .= sprintf("\n", $G_four_rnd_string); -echo("\n"); -mop_flush(); - -if (!isset($from)) - $from = ""; -if (!isset($subst)) - $subst = ""; -log_rd2("FROM OUTSIDE - STAT: ".$stat." SUBST: ".$subst." STEP: ".$step." FROM: ".$from. "IS_PAGE:" . $is_page_streaming); - - -$endtime = time() + STREAM_TIMEOUT; -$old_stat = $stat; -$old_subst = $subst; -$old_step = $ext_step = $step; - -$no_data = TRUE; -for ($i = 0, $script_step = 0 ; time() < $endtime ; $i++) { - // log_rd("PRE MAIN ".$step);; - $pre_main = gettimeofday(TRUE); - if (($ret = maincheck($sess, $old_stat, $old_subst, $old_step, &$stat, &$subst, &$step)) != FALSE) { - $no_data = FALSE; - if (0 == 1) { - echo '@BEGIN@'; - // log_rd2(sprintf("\nSESS: [%s]\nOLD_STAT: [%s] OLD_SUBST: [%s] OLD_STEP: [%s] \nSTAT: [%s] SUBST: [%s] STEP: [%s] \nCOMM: [%s]\n", $sess, $old_stat, $old_subst, $old_step, $stat, $subst, $step, $ret)); - echo "$ret"; - echo ' @END@'; - } - printf("", $script_step++, escpush($ret) ); - - log_send("IS_PAGE: ".($is_page_streaming == TRUE ? "TRUE" : "FALSE")." EXT_STEP: ".$ext_step." ENDTIME: [".$endtime."] ".$ret); - mop_flush(); - log_rd2(0, 'index_rd.php: after mop_flush (begin: '.sprintf("%f", $pre_main).')'); - if ($is_page_streaming) - break; - } - $old_stat = $stat; - $old_subst = $subst; - $old_step = $step; - // log_rd("POST MAIN ".$step);; - usleep(400000); - if (($i % 10) == 0) { - if ($no_data == TRUE) { - // log_rd2("TIME: ".time()); - printf("", $script_step++); - mop_flush(); - log_crit("flush"); - } - $no_data = TRUE; - } + return TRUE; } -$s = ""; -$tr = 0; -$tw = 0; -foreach ($S_load_stat as $key => $value) { - $s .= sprintf("%s: %d - ", $key, $value); - if (substr($key, 0, 1) == "w") - $tw += $value; - else if (substr($key, 0, 1) == "r") - $tr += $value; +function index_rd_ifra_main(&$room, &$user, &$body) +{ + GLOBAL $is_page_streaming; + + $is_page_streaming = FALSE; + log_rd2("FROM OUTSIDE - STAT: ".$user->rd_stat." SUBST: ".$user->rd_subst." STEP: ".$user->rd_step." FROM: ".$user->rd_from. "IS_PAGE:" . $is_page_streaming); + + + // $no_data = TRUE; + // for ($i = 0, $script_step = 0 ; time() < $endtime ; $i++) { + // log_rd("PRE MAIN ".$step);; + + $pre_main = gettimeofday(TRUE); + + $old_stat = $user->rd_stat; + $old_subst = $user->rd_subst; + $old_step = $user->rd_step; + if (($ret = maincheck($room, $user, $old_stat, $old_subst, $old_step, $user->rd_stat, $user->rd_subst, $user->rd_step)) != FALSE) { + // $no_data = FALSE; + if (0 == 1) { + echo '@BEGIN@'; + // log_rd2(sprintf("\nSESS: [%s]\nOLD_STAT: [%s] OLD_SUBST: [%s] OLD_STEP: [%s] \nSTAT: [%s] SUBST: [%s] STEP: [%s] \nCOMM: [%s]\n", $sess, $old_stat, $old_subst, $old_step, $stat, $subst, $step, $ret)); + echo "$ret"; + echo ' @END@'; + } + $body .= sprintf("", $user->rd_scristp++, escpush($ret) ); + + // log_send("IS_PAGE: ".($is_page_streaming == TRUE ? "TRUE" : "FALSE")." ENDTIME: [".$endtime."] ".$ret); + // mop_flush(); + log_rd2(0, 'index_rd.php: after mop_flush (begin: '.sprintf("%f", $pre_main).')'); + if ($is_page_streaming) + return TRUE; + } + /* $old_stat = $stat; */ + /* $old_subst = $subst; */ + /* $old_step = $step; */ + // log_rd("POST MAIN ".$step);; + // usleep(400000); +/* if (($i % 10) == 0 && 1 == 0) { // TODO: reenable push(null); */ +/* if ($no_data == TRUE) { */ +/* // log_rd2("TIME: ".time()); */ +/* printf("", $script_step++); */ +/* // mop_flush(); */ +/* log_crit("flush"); */ +/* } */ +/* $no_data = TRUE; */ +/* } */ + // } + + /* $s = ""; */ + /* $tr = 0; */ + /* $tw = 0; */ + /* foreach ($S_load_stat as $key => $value) { */ + /* $s .= sprintf("%s: %d - ", $key, $value); */ + /* if (substr($key, 0, 1) == "w") */ + /* $tw += $value; */ + /* else if (substr($key, 0, 1) == "r") */ + /* $tr += $value; */ + /* } */ + /* $s = sprintf("index_rd.php stats: R: %d W: %d - %s", $tr, $tw, $s); */ + /* log_crit($s); */ + + return TRUE; } -$s = sprintf("index_rd.php stats: R: %d W: %d - %s", $tr, $tw, $s); -log_crit($s); ?> diff --git a/web/index_wr.php b/web/index_wr.php index 6dfeea6..22f2587 100644 --- a/web/index_wr.php +++ b/web/index_wr.php @@ -22,8 +22,6 @@ * */ -$G_base = ""; - require_once("Obj/brisk.phh"); require_once("Obj/auth.phh"); // require_once("Obj/proxyscan.phh"); @@ -81,597 +79,609 @@ $mlang_indwr = array( 'btn_backtotab' => array( 'it' => 'Torna ai tavoli.', ); -log_load("index_wr.php"); - -if (DEBUGGING == "local" && $_SERVER['REMOTE_ADDR'] != '127.0.0.1') { - echo "Debugging time!"; - exit; -} - -/* - * 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(0, 'index_wr.php: COMM: '.xcapemesg($mesg)); -log_wr('COMM: '.xcapemesg($mesg)); - -$curtime = time(); -$dt = date("H:i ", $curtime); - -$sem = Room::lock_data(TRUE); -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) { - Room::unlock_data($sem); - $argz = explode('|', xcapemesg($mesg)); - - if ($argz[0] == 'getchallenge') { - GLOBAL $cli_name; - if (($a_sem = Challenges::lock_data(TRUE)) != FALSE) { - log_main("chal lock data success"); - - if (($chals = &Challenges::load_data()) != FALSE) { - - $token = uniqid(""); - // echo '2|'.$argz[1].'|'.$token.'|'.$_SERVER['REMOTE_ADDR'].'|'.$curtime.'|'; - // exit; - - if (($login_new = validate_name(urldecode($cli_name))) != FALSE) { - if ($chals->add($login_new, $token, $_SERVER['REMOTE_ADDR'], $curtime) != FALSE) { - log_send("SUCCESS: token:".$token); - echo '0|'.$token; - } - else { - log_send("getchallenge FAILED"); - echo '1|'; - } - } - else { - log_send("getchallenge FAILED"); - echo '1|'; - } - if ($chals->ismod()) { - Challenges::save_data(&$chals); - } - } - - - Challenges::unlock_data($a_sem); - } - } - else if ($argz[0] == 'auth') { - printf("challenge|ok"); - } - else if ($argz[0] == 'help') { - /* MLANG: "torna ai tavoli" */ - echo show_notify(str_replace("\n", " ", $G_room_help[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 600, 500); - } - else if ($argz[0] == 'about') { - echo show_notify(str_replace("\n", " ", $G_room_about[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 220); - } - else if ($argz[0] == 'passwdhowto') { - echo show_notify(str_replace("\n", " ", $G_room_passwdhowto[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 200); - } - else if ($argz[0] == 'roadmap') { - echo show_notify(str_replace("\n", " ", $G_room_roadmap[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 200); - } - else if ($argz[0] == 'placing') { - require_once("briskin5/Obj/briskin5.phh"); - require_once("briskin5/Obj/placing.phh"); - - echo show_notify(str_replace("\n", " ", placings_show(FALSE)), 0, $mlang_indwr['btn_close'][$G_lang], 800, 600); - } - else if ($argz[0] == 'whysupport') { - echo show_notify(str_replace("\n", " ", $G_room_whysupport[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lng], 400, 200); - } - else { - log_wr("Get User Error"); - echo "Get User Error:" + $argz[0]; - } - exit; -} -$argz = explode('|', xcapemesg($mesg)); - -log_wr('POSTSPLIT: '.$argz[0]); +function index_wr_main(&$room, $remote_addr, $get, $post, $cookie) +{ + GLOBAL $G_black_list; -log_wr($user->step, 'index_wr.php: after get_user()'); + log_load("index_wr.php"); -if ($argz[0] == 'shutdown') { - log_auth($user->sess, "Shutdown session."); + if (($mesg = gpcs_var('mesg', $get, $post, $cookie)) === FALSE) + unset($mesg); - $user->reset(); - - log_rd2("AUTO LOGOUT."); - if ($user->subst == 'sitdown' || $user->stat == 'table') - $room->room_wakeup($user); - else if ($user->subst == 'standup') - $room->room_outstandup(&$user); - else { - log_rd2("SHUTDOWN FROM WHAT ???"); - } -} -else if ($argz[0] == 'warranty') { - GLOBAL $cli_name, $cli_email; - - $mesg_to_user = ""; - - log_wr("INFO:SKIP:argz == warranty name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); - if ($user->flags & USER_FLAG_AUTH) { - if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) { - if (($fp = @fopen(LEGAL_PATH."/warrant.txt", 'a')) != FALSE) { - /* Unix time | session | nickname | IP | where was | mesg */ - fwrite($fp, sprintf("%ld|%s|%s|%s|\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_name)), xcapelt(urldecode($cli_email)))); - fclose($fp); - } - Warrant::unlock_data($wa_lock); - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - /* MLANG: "
Il nominativo è stato inoltrato all\'amministratore.

Nell\'arco di pochi giorni vi verrà

notificata l\'avvenuta registrazione." */ - $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['warrrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 150); - $user->step_inc(); - echo "1"; - } - else { - /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); + + if (DEBUGGING == "local" && $remote_addr != '127.0.0.1') { + echo "Debugging time!"; + return (FALSE); } - } - else { - /* MLANG: "Per autenticare qualcuno devi a tua volta essere autenticato." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['warrmust'][$G_lang]); - } - - if ($mesg_to_user != "") { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; + /* + * MAIN + */ - $user->comm[$user->step % COMM_N] .= $mesg_to_user; - $user->step_inc(); - } -} -else if ($argz[0] == 'mesgtoadm') { - GLOBAL $cli_subj, $cli_mesg; + /* if the IP is banned, exit without do nothing */ + if (array_search($remote_addr, $G_black_list) !== FALSE) { + sleep(5); + return (FALSE); + } + + $is_spawn = FALSE; - $mesg_to_user = ""; + log_wr(0, 'index_wr.php: COMM: '.xcapemesg($mesg)); + log_wr('COMM: '.xcapemesg($mesg)); - log_wr("INFO:SKIP:argz == mesgtoadm name: [".$user->name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); - if ($user->flags & USER_FLAG_AUTH) { - if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) { - if (($bdb = BriskDB::create()) != FALSE) { - $bdb->users_load(); + $curtime = time(); + $dt = date("H:i ", $curtime); + + if (($user = $room->get_user($sess, &$idx)) == FALSE) { + $argz = explode('|', xcapemesg($mesg)); + + if ($argz[0] == 'getchallenge') { + if (isset($get['cli_name'])) + $cli_name = $get['cli_name']; + if (($a_sem = Challenges::lock_data(TRUE)) != FALSE) { + log_main("chal lock data success"); - if (($ema = $bdb->getmail($user->name)) != FALSE) { - // mail("nastasi", - mail("brisk@alternativeoutput.it", urldecode($cli_subj), urldecode($cli_mesg), sprintf("From: %s <%s>", $user->name, $ema)); + if (($chals = &Challenges::load_data()) != FALSE) { + + $token = uniqid(""); + // echo '2|'.$argz[1].'|'.$token.'|'.$remote_addr.'|'.$curtime.'|'; + // exit; + + if (($login_new = validate_name(urldecode($cli_name))) != FALSE) { + if ($chals->add($login_new, $token, $remote_addr, $curtime) != FALSE) { + log_send("SUCCESS: token:".$token); + echo '0|'.$token; + } + else { + log_send("getchallenge FAILED"); + echo '1|'; + } + } + else { + log_send("getchallenge FAILED"); + echo '1|'; + } + if ($chals->ismod()) { + Challenges::save_data(&$chals); + } } - if (($fp = @fopen(LEGAL_PATH."/messages.txt", 'a')) != FALSE) { - /* Unix time | session | nickname | IP | where was | mesg */ - fwrite($fp, sprintf("%ld|%s|%s|%s\n", $curtime, $user->name, - xcapelt(urldecode($cli_subj)), xcapelt(urldecode($cli_mesg)))); - fclose($fp); - } - Warrant::unlock_data($wa_lock); - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - /* MLANG: "" */ - $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['mesgrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); - $user->step_inc(); - echo "1"; + + Challenges::unlock_data($a_sem); } else { - /* MLANG: "Il database è temporaneamente irraggiungibile, riprova più tardi o contatta l\'amministratore." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['coerrdb'][$G_lang]); - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; + echo "CHALLENGE LOCK FAILED\n"; + return FALSE; } } - else { - /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); - } + /* else if ($argz[0] == 'auth') { */ + /* printf("challenge|ok"); */ + /* } */ + /* else if ($argz[0] == 'help') { */ + /* /\* MLANG: "torna ai tavoli" *\/ */ + /* echo show_notify(str_replace("\n", " ", $G_room_help[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 600, 500); */ + /* } */ + /* else if ($argz[0] == 'about') { */ + /* echo show_notify(str_replace("\n", " ", $G_room_about[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 220); */ + /* } */ + /* else if ($argz[0] == 'passwdhowto') { */ + /* echo show_notify(str_replace("\n", " ", $G_room_passwdhowto[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 200); */ + /* } */ + /* else if ($argz[0] == 'roadmap') { */ + /* echo show_notify(str_replace("\n", " ", $G_room_roadmap[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lang], 400, 200); */ + /* } */ + /* else if ($argz[0] == 'placing') { */ + /* require_once("briskin5/Obj/briskin5.phh"); */ + /* require_once("briskin5/Obj/placing.phh"); */ + + /* echo show_notify(str_replace("\n", " ", placings_show(FALSE)), 0, $mlang_indwr['btn_close'][$G_lang], 800, 600); */ + /* } */ + /* else if ($argz[0] == 'whysupport') { */ + /* echo show_notify(str_replace("\n", " ", $G_room_whysupport[$G_lang]), 0, $mlang_indwr['btn_close'][$G_lng], 400, 200); */ + /* } */ + else { + log_wr("Get User Error"); + echo "Get User Error:" + $argz[0]; + return FALSE; + } + return TRUE; } - else { - /* MLANG: "Per autenticare qualcuno devi a tua volta essere autenticato." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['mesgmust'][$G_lang]); - } + + + +/* $argz = explode('|', xcapemesg($mesg)); */ + +/* log_wr('POSTSPLIT: '.$argz[0]); */ + +/* log_wr($user->step, 'index_wr.php: after get_user()'); */ + +/* if ($argz[0] == 'shutdown') { */ +/* log_auth($user->sess, "Shutdown session."); */ + +/* $user->reset(); */ + +/* log_rd2("AUTO LOGOUT."); */ +/* if ($user->subst == 'sitdown' || $user->stat == 'table') */ +/* $room->room_wakeup($user); */ +/* else if ($user->subst == 'standup') */ +/* $room->room_outstandup(&$user); */ +/* else { */ +/* log_rd2("SHUTDOWN FROM WHAT ???"); */ +/* } */ +/* } */ +/* else if ($argz[0] == 'warranty') { */ +/* GLOBAL $cli_name, $cli_email; */ + +/* $mesg_to_user = ""; */ + +/* log_wr("INFO:SKIP:argz == warranty name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); */ +/* if ($user->flags & USER_FLAG_AUTH) { */ +/* if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) { */ +/* if (($fp = @fopen(LEGAL_PATH."/warrant.txt", 'a')) != FALSE) { */ +/* /\* Unix time | session | nickname | IP | where was | mesg *\/ */ +/* fwrite($fp, sprintf("%ld|%s|%s|%s|\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_name)), xcapelt(urldecode($cli_email)))); */ +/* fclose($fp); */ +/* } */ +/* Warrant::unlock_data($wa_lock); */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* /\* MLANG: "
Il nominativo è stato inoltrato all\'amministratore.

Nell\'arco di pochi giorni vi verrà

notificata l\'avvenuta registrazione." *\/ */ +/* $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['warrrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 150); */ +/* $user->step_inc(); */ +/* echo "1"; */ +/* } */ +/* else { */ +/* /\* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); */ +/* } */ + +/* } */ +/* else { */ +/* /\* MLANG: "Per autenticare qualcuno devi a tua volta essere autenticato." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['warrmust'][$G_lang]); */ +/* } */ + +/* if ($mesg_to_user != "") { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ - if ($mesg_to_user != "") { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; +/* $user->comm[$user->step % COMM_N] .= $mesg_to_user; */ +/* $user->step_inc(); */ +/* } */ +/* } */ +/* else if ($argz[0] == 'mesgtoadm') { */ +/* GLOBAL $cli_subj, $cli_mesg; */ + +/* $mesg_to_user = ""; */ + +/* log_wr("INFO:SKIP:argz == mesgtoadm name: [".$user->name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); */ +/* if ($user->flags & USER_FLAG_AUTH) { */ +/* if (($wa_lock = Warrant::lock_data(TRUE)) != FALSE) { */ +/* if (($bdb = BriskDB::create()) != FALSE) { */ +/* $bdb->users_load(); */ + +/* if (($ema = $bdb->getmail($user->name)) != FALSE) { */ +/* // mail("nastasi", */ +/* mail("brisk@alternativeoutput.it", urldecode($cli_subj), urldecode($cli_mesg), sprintf("From: %s <%s>", $user->name, $ema)); */ +/* } */ + +/* if (($fp = @fopen(LEGAL_PATH."/messages.txt", 'a')) != FALSE) { */ +/* /\* Unix time | session | nickname | IP | where was | mesg *\/ */ +/* fwrite($fp, sprintf("%ld|%s|%s|%s\n", $curtime, $user->name, */ +/* xcapelt(urldecode($cli_subj)), xcapelt(urldecode($cli_mesg)))); */ +/* fclose($fp); */ +/* } */ +/* Warrant::unlock_data($wa_lock); */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* /\* MLANG: "" *\/ */ +/* $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['mesgrepl'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); */ +/* $user->step_inc(); */ +/* echo "1"; */ +/* } */ +/* else { */ +/* /\* MLANG: "Il database è temporaneamente irraggiungibile, riprova più tardi o contatta l\'amministratore." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['coerrdb'][$G_lang]); */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* } */ +/* } */ +/* else { */ +/* /\* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); */ +/* } */ - $user->comm[$user->step % COMM_N] .= $mesg_to_user; - $user->step_inc(); - } -} +/* } */ +/* else { */ +/* /\* MLANG: "Per autenticare qualcuno devi a tua volta essere autenticato." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['mesgmust'][$G_lang]); */ +/* } */ + +/* if ($mesg_to_user != "") { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ + +/* $user->comm[$user->step % COMM_N] .= $mesg_to_user; */ +/* $user->step_inc(); */ +/* } */ +/* } */ -else if ($argz[0] == 'poll') { - GLOBAL $G_with_poll, $G_poll_name, $cli_choose, $cli_poll_name; +/* else if ($argz[0] == 'poll') { */ +/* GLOBAL $G_with_poll, $G_poll_name, $cli_choose, $cli_poll_name; */ - $poll_lock = FALSE; - $mesg_to_user = ""; +/* $poll_lock = FALSE; */ +/* $mesg_to_user = ""; */ - $fp = FALSE; - $echont = "0"; - - /* - DONE - autorizzato ? - DONE - ci sono poll attivi ? - - verifica che il poll_name del client sia uguale a quello sul server - DONE - lock - DONE - apro file r+ con fallback in w+ - DONE - vedo se ha già votato - DONE - se si: messaggio di voto già dato - se no: accetto il voto e lo segno; messaggio - chiudo file - */ - - $dobreak = FALSE; - do { - log_wr("INFO:SKIP:argz == poll name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); - if (($user->flags & USER_FLAG_AUTH) != USER_FLAG_AUTH) { - // MLANG: Per partecipare al sondaggio devi essere autenticato. - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['pollmust'][$G_lang]); - log_wr("break1"); - break; - } - - if ($G_with_poll == FALSE && $G_poll_name != FALSE && $G_poll_name != "") { - $mesg_to_user = show_notify($mlang_indwr['pollnone'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); - log_wr("break2"); - break; - } +/* $fp = FALSE; */ +/* $echont = "0"; */ + +/* /\* */ +/* DONE - autorizzato ? */ +/* DONE - ci sono poll attivi ? */ +/* - verifica che il poll_name del client sia uguale a quello sul server */ +/* DONE - lock */ +/* DONE - apro file r+ con fallback in w+ */ +/* DONE - vedo se ha già votato */ +/* DONE - se si: messaggio di voto già dato */ +/* se no: accetto il voto e lo segno; messaggio */ +/* chiudo file */ +/* *\/ */ + +/* $dobreak = FALSE; */ +/* do { */ +/* log_wr("INFO:SKIP:argz == poll name: [".$cli_name."] AUTH: ".($user->flags & USER_FLAG_AUTH)); */ +/* if (($user->flags & USER_FLAG_AUTH) != USER_FLAG_AUTH) { */ +/* // MLANG: Per partecipare al sondaggio devi essere autenticato. */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['pollmust'][$G_lang]); */ +/* log_wr("break1"); */ +/* break; */ +/* } */ + +/* if ($G_with_poll == FALSE && $G_poll_name != FALSE && $G_poll_name != "") { */ +/* $mesg_to_user = show_notify($mlang_indwr['pollnone'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); */ +/* log_wr("break2"); */ +/* break; */ +/* } */ - if ($cli_choose == "" || !isset($cli_choose)) { - $mesg_to_user = show_notify($mlang_indwr['pollchoo'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); - log_wr("break2.5"); - break; - } +/* if ($cli_choose == "" || !isset($cli_choose)) { */ +/* $mesg_to_user = show_notify($mlang_indwr['pollchoo'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); */ +/* log_wr("break2.5"); */ +/* break; */ +/* } */ - if (($poll_lock = Poll::lock_data(TRUE)) == FALSE) { - /* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." */ - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); - log_wr("break3"); - break; - } +/* if (($poll_lock = Poll::lock_data(TRUE)) == FALSE) { */ +/* /\* MLANG: "E\' occorso un errore durante il salvataggio, riprova o contatta l\'amministratore." *\/ */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); */ +/* log_wr("break3"); */ +/* break; */ +/* } */ - if (($fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'r+')) == FALSE) - $fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'w+'); +/* if (($fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'r+')) == FALSE) */ +/* $fp = @fopen(LEGAL_PATH."/".$G_poll_name.".txt", 'w+'); */ - if ($fp == FALSE) { - $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); - log_wr("break4"); - break; - } +/* if ($fp == FALSE) { */ +/* $mesg_to_user = sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['commerr'][$G_lang]); */ +/* log_wr("break4"); */ +/* break; */ +/* } */ - log_wr("poll: cp"); - fseek($fp, 0); +/* log_wr("poll: cp"); */ +/* fseek($fp, 0); */ - log_wr("poll: cp2"); - while (!feof($fp)) { - log_wr("poll: cp3"); - $bf = fgets($fp, 4096); - log_wr("poll: cp3.1"); - $arli = csplitter($bf, '|'); - if (count($arli) == 0) - break; - log_wr("poll: cp3.2"); - if (strcasecmp($arli[1], $user->name) == 0) { - $mesg_to_user = show_notify($mlang_indwr['pollagai'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); - $dobreak = TRUE; - break; - } - } - log_wr("poll: cp4"); - - if ($dobreak) { - log_wr("break5"); - break; - } +/* log_wr("poll: cp2"); */ +/* while (!feof($fp)) { */ +/* log_wr("poll: cp3"); */ +/* $bf = fgets($fp, 4096); */ +/* log_wr("poll: cp3.1"); */ +/* $arli = csplitter($bf, '|'); */ +/* if (count($arli) == 0) */ +/* break; */ +/* log_wr("poll: cp3.2"); */ +/* if (strcasecmp($arli[1], $user->name) == 0) { */ +/* $mesg_to_user = show_notify($mlang_indwr['pollagai'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); */ +/* $dobreak = TRUE; */ +/* break; */ +/* } */ +/* } */ +/* log_wr("poll: cp4"); */ + +/* if ($dobreak) { */ +/* log_wr("break5"); */ +/* break; */ +/* } */ - /* Unix time | nickname | choose */ - fwrite($fp, sprintf("%ld|%s|%s\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_choose)))); - fflush($fp); - $mesg_to_user = show_notify($mlang_indwr['pollrec'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); - $echont = "1"; - log_wr("poll: cp5"); - } while (0); - - if ($fp != FALSE) - fclose($fp); - - if ($poll_lock != FALSE) - Poll::unlock_data($poll_lock); +/* /\* Unix time | nickname | choose *\/ */ +/* fwrite($fp, sprintf("%ld|%s|%s\n", $curtime, xcapelt($user->name), xcapelt(urldecode($cli_choose)))); */ +/* fflush($fp); */ +/* $mesg_to_user = show_notify($mlang_indwr['pollrec'][$G_lang], 0, $mlang_indwr['btn_close'][$G_lang], 400, 110); */ +/* $echont = "1"; */ +/* log_wr("poll: cp5"); */ +/* } while (0); */ + +/* if ($fp != FALSE) */ +/* fclose($fp); */ + +/* if ($poll_lock != FALSE) */ +/* Poll::unlock_data($poll_lock); */ - if ($mesg_to_user != "") { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; +/* if ($mesg_to_user != "") { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ - $user->comm[$user->step % COMM_N] .= $mesg_to_user; - $user->step_inc(); - } - - echo "$echont"; -} - -/****************** - * * - * STAT: room * - * * - ******************/ -else if ($user->stat == 'room') { - $user->laccwr = time(); - - if ($argz[0] == 'help') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_help[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 600, 500); - - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* $user->comm[$user->step % COMM_N] .= $mesg_to_user; */ +/* $user->step_inc(); */ +/* } */ + +/* echo "$echont"; */ +/* } */ + +/* /\****************** */ +/* * * */ +/* * STAT: room * */ +/* * * */ +/* ******************\/ */ +/* else if ($user->stat == 'room') { */ +/* $user->laccwr = time(); */ + +/* if ($argz[0] == 'help') { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_help[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 600, 500); */ + +/* log_wr($user->comm[$user->step % COMM_N]); */ +/* $user->step_inc(); */ - } - else if ($argz[0] == 'passwdhowto') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_passwdhowto[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 600, 500); +/* } */ +/* else if ($argz[0] == 'passwdhowto') { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_passwdhowto[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 600, 500); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* log_wr($user->comm[$user->step % COMM_N]); */ +/* $user->step_inc(); */ - } - else if ($argz[0] == 'splash') { - GLOBAL $G_with_splash, $G_splash_content, $G_splash_interval, $G_splash_idx; - GLOBAL $G_splash_w, $G_splash_h, $G_splash_timeout; - $CO_splashdate = "CO_splashdate".$G_splash_idx; - GLOBAL $$CO_splashdate; +/* } */ +/* else if ($argz[0] == 'splash') { */ +/* GLOBAL $G_with_splash, $G_splash_content, $G_splash_interval, $G_splash_idx; */ +/* GLOBAL $G_splash_w, $G_splash_h, $G_splash_timeout; */ +/* $CO_splashdate = "CO_splashdate".$G_splash_idx; */ +/* GLOBAL $$CO_splashdate; */ - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ - $user->comm[$user->step % COMM_N] .= show_notify_ex(str_replace("\n", " ", $G_splash_content[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], $G_splash_w, $G_splash_h, true, 0); +/* $user->comm[$user->step % COMM_N] .= show_notify_ex(str_replace("\n", " ", $G_splash_content[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], $G_splash_w, $G_splash_h, true, 0); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); - } - else if ($argz[0] == 'about') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_about[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); +/* log_wr($user->comm[$user->step % COMM_N]); */ +/* $user->step_inc(); */ +/* } */ +/* else if ($argz[0] == 'about') { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* $user->comm[$user->step % COMM_N] .= show_notify(str_replace("\n", " ", $G_room_about[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* log_wr($user->comm[$user->step % COMM_N]); */ +/* $user->step_inc(); */ - } +/* } */ - else if ($argz[0] == 'placing') { +/* else if ($argz[0] == 'placing') { */ - require_once("briskin5/Obj/briskin5.phh"); - require_once("briskin5/Obj/placing.phh"); +/* require_once("briskin5/Obj/briskin5.phh"); */ +/* require_once("briskin5/Obj/placing.phh"); */ - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= show_notify_ex(str_replace("\n", " ", placings_show($user)), 0, $mlang_indwr['btn_backtotab'][$G_lang], 800, 600, TRUE, 0); +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* $user->comm[$user->step % COMM_N] .= show_notify_ex(str_replace("\n", " ", placings_show($user)), 0, $mlang_indwr['btn_backtotab'][$G_lang], 800, 600, TRUE, 0); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* 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[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); +/* 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[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* 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[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); +/* } */ +/* 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[$G_lang]), 0, $mlang_indwr['btn_backtotab'][$G_lang], 400, 200); */ - log_wr($user->comm[$user->step % COMM_N]); - $user->step_inc(); +/* log_wr($user->comm[$user->step % COMM_N]); */ +/* $user->step_inc(); */ - } - else if ($argz[0] == 'chatt') { - $room->chatt_send(&$user, xcapemesg($mesg)); - } - /********************** - * * - * SUBST: standup * - * * - **********************/ - else if ($user->subst == 'standup') { +/* } */ +/* else if ($argz[0] == 'chatt') { */ +/* $room->chatt_send(&$user, xcapemesg($mesg)); */ +/* } */ +/* /\********************** */ +/* * * */ +/* * SUBST: standup * */ +/* * * */ +/* **********************\/ */ +/* else if ($user->subst == 'standup') { */ - if ($argz[0] == 'sitdown') { - log_wr("SITDOWN command"); - - if ($user->the_end == TRUE) { - log_wr("INFO:SKIP:argz == sitdown && ->the_end == TRUE => ignore request."); - Room::unlock_data($sem); - exit; - } - - // Take parameters - $table_idx = (int)$argz[1]; - $table = &$room->table[$table_idx]; +/* if ($argz[0] == 'sitdown') { */ +/* log_wr("SITDOWN command"); */ + +/* if ($user->the_end == TRUE) { */ +/* log_wr("INFO:SKIP:argz == sitdown && ->the_end == TRUE => ignore request."); */ +/* Room::unlock_data($sem); */ +/* exit; */ +/* } */ + +/* // Take parameters */ +/* $table_idx = (int)$argz[1]; */ +/* $table = &$room->table[$table_idx]; */ - if ($G_shutdown || $table->wakeup_time > $curtime || - ($table->auth_only && (($user->flags & USER_FLAG_AUTH) == 0)) ) { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - - /* MLANG: "Il server sta per essere riavviato, non possono avere inizio nuove partite.", "Il tavolo a cui volevi sederti richiede autentifica.", "Il tavolo si è appena liberato, ci si potrà sedere tra %d secondi." */ - if ($G_shutdown) { - $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['shutmsg'][$G_lang]); - } - else if ($table->auth_only && (($user->flags & USER_FLAG_AUTH) == 0)) { - $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['mustauth'][$G_lang]); - } - else { - $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s%d%s");', $dt, NICKSERV, $mlang_indwr['tabwait_a'][$G_lang], $table->wakeup_time - $curtime, $mlang_indwr['tabwait_b'][$G_lang]); - } - $user->step_inc(); - Room::save_data($room); - Room::unlock_data($sem); - exit; - } - - /* TODO: refact to a function */ - // if ($user->bantime > $user->laccwr) { - require_once("Obj/hardban.phh"); - - if (($bantime = Hardbans::check(($user->flags & USER_FLAG_AUTH ? $user->name : FALSE), - $user->ip, $user->sess)) != -1) { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - /* MLANG: "
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.", "resta in piedi.", "
Tu o qualcuno col tuo stesso indirizzo IP si è alzato da un tavolo senza il consenso degli altri giocatori.

Dovrai aspettare ancora ".secstoword($bantime - $user->laccwr)." prima di poterti sedere nuovamente.

Se non sei stato tu ad alzarti e possiedi un login con password, autenticandoti con quello, potrai accedere." */ - if ($user->flags & USER_FLAG_AUTH) { - $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['badwake_a'][$G_lang].secstoword($user->bantime - $user->laccwr).$mlang_indwr['badwake_b'][$G_lang], 2000, $mlang_indwr['btn_stays'][$G_lang], 400, 100); - } - else { - $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['badsit_a'][$G_lang].secstoword($bantime - $user->laccwr).$mlang_indwr['badsit_a'][$G_lang], 2000, $mlang_indwr['btn_stays'][$G_lang], 400, 180); - } - $user->step_inc(); - Room::save_data($room); - Room::unlock_data($sem); - exit; - } +/* if ($G_shutdown || $table->wakeup_time > $curtime || */ +/* ($table->auth_only && (($user->flags & USER_FLAG_AUTH) == 0)) ) { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ + +/* /\* MLANG: "Il server sta per essere riavviato, non possono avere inizio nuove partite.", "Il tavolo a cui volevi sederti richiede autentifica.", "Il tavolo si è appena liberato, ci si potrà sedere tra %d secondi." *\/ */ +/* if ($G_shutdown) { */ +/* $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['shutmsg'][$G_lang]); */ +/* } */ +/* else if ($table->auth_only && (($user->flags & USER_FLAG_AUTH) == 0)) { */ +/* $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s");', $dt, NICKSERV, $mlang_indwr['mustauth'][$G_lang]); */ +/* } */ +/* else { */ +/* $user->comm[$user->step % COMM_N] .= sprintf('chatt_sub("%s", [2, "%s"],"%s%d%s");', $dt, NICKSERV, $mlang_indwr['tabwait_a'][$G_lang], $table->wakeup_time - $curtime, $mlang_indwr['tabwait_b'][$G_lang]); */ +/* } */ +/* $user->step_inc(); */ +/* Room::save_data($room); */ +/* Room::unlock_data($sem); */ +/* exit; */ +/* } */ + +/* /\* TODO: refact to a function *\/ */ +/* // if ($user->bantime > $user->laccwr) { */ +/* require_once("Obj/hardban.phh"); */ + +/* if (($bantime = Hardbans::check(($user->flags & USER_FLAG_AUTH ? $user->name : FALSE), */ +/* $user->ip, $user->sess)) != -1) { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* /\* MLANG: "
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.", "resta in piedi.", "
Tu o qualcuno col tuo stesso indirizzo IP si è alzato da un tavolo senza il consenso degli altri giocatori.

Dovrai aspettare ancora ".secstoword($bantime - $user->laccwr)." prima di poterti sedere nuovamente.

Se non sei stato tu ad alzarti e possiedi un login con password, autenticandoti con quello, potrai accedere." *\/ */ +/* if ($user->flags & USER_FLAG_AUTH) { */ +/* $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['badwake_a'][$G_lang].secstoword($user->bantime - $user->laccwr).$mlang_indwr['badwake_b'][$G_lang], 2000, $mlang_indwr['btn_stays'][$G_lang], 400, 100); */ +/* } */ +/* else { */ +/* $user->comm[$user->step % COMM_N] .= show_notify($mlang_indwr['badsit_a'][$G_lang].secstoword($bantime - $user->laccwr).$mlang_indwr['badsit_a'][$G_lang], 2000, $mlang_indwr['btn_stays'][$G_lang], 400, 180); */ +/* } */ +/* $user->step_inc(); */ +/* Room::save_data($room); */ +/* Room::unlock_data($sem); */ +/* exit; */ +/* } */ - if ($table->player_n == PLAYERS_N) { - log_wr("WARN:FSM: Sitdown unreachable, table full."); - Room::unlock_data($sem); - exit; - } +/* if ($table->player_n == PLAYERS_N) { */ +/* log_wr("WARN:FSM: Sitdown unreachable, table full."); */ +/* Room::unlock_data($sem); */ +/* exit; */ +/* } */ - // set new status - $user->subst = "sitdown"; - $user->table = $table_idx; - $user->table_pos = $table->user_add($idx); +/* // set new status */ +/* $user->subst = "sitdown"; */ +/* $user->table = $table_idx; */ +/* $user->table_pos = $table->user_add($idx); */ - log_wr("MOP before"); +/* log_wr("MOP before"); */ - if ($table->player_n == PLAYERS_N) { - require_once("briskin5/Obj/briskin5.phh"); - log_wr("MOP inall"); +/* if ($table->player_n == PLAYERS_N) { */ +/* require_once("briskin5/Obj/briskin5.phh"); */ +/* log_wr("MOP inall"); */ - // Start game for this table. - log_wr("Start game!"); +/* // Start game for this table. */ +/* log_wr("Start game!"); */ - // - // START THE SPAWN HERE!!!! - // - - // Create new spawned table - $bri_sem = Bin5::lock_data(TRUE, $table_idx); - $table_token = uniqid(""); - $room->table[$table_idx]->table_token = $table_token; - $room->table[$table_idx]->table_start = $curtime; +/* // */ +/* // START THE SPAWN HERE!!!! */ +/* // */ + +/* // Create new spawned table */ +/* $bri_sem = Bin5::lock_data(TRUE, $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, "STAT:CREATE_GAME", $plist); - - log_wr("pre new Bin5"); - if (($bri = new Bin5($room, $table_idx, $table_token)) == FALSE) - log_wr("bri create: FALSE"); - else - log_wr("bri create: ".serialize($bri)); +/* $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, "STAT:CREATE_GAME", $plist); */ + +/* log_wr("pre new Bin5"); */ +/* if (($bri = new Bin5($room, $table_idx, $table_token)) == FALSE) */ +/* log_wr("bri create: FALSE"); */ +/* else */ +/* log_wr("bri create: ".serialize($bri)); */ - log_wr("pre init table"); - // init table - $bri_table = $bri->table[0]; - $bri_table->init($bri->user); - $bri_table->game_init($bri->user); - // - // Init spawned users. - // - // MULTIGAME: here init of selected game instead of hardcabled briskin5 init (look subst status) - // - log_wr("game_init after"); - for ($i = 0 ; $i < $table->player_n ; $i++) { - $bri_user_cur = $bri->user[$i]; - $user_cur = $room->user[$table->player[$i]]; +/* log_wr("pre init table"); */ +/* // init table */ +/* $bri_table = $bri->table[0]; */ +/* $bri_table->init($bri->user); */ +/* $bri_table->game_init($bri->user); */ +/* // */ +/* // Init spawned users. */ +/* // */ +/* // MULTIGAME: here init of selected game instead of hardcabled briskin5 init (look subst status) */ +/* // */ +/* log_wr("game_init after"); */ +/* 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->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(); +/* $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("TRY PRESAVE: ".$bri_user_cur->step." TRANS STEP: ".$bri_user_cur->trans_step); */ - log_wr("Pre if!"); +/* log_wr("Pre if!"); */ - // ARRAY_POP DISABLED - // // CHECK - while (array_pop($user_cur->comm) != NULL); +/* // 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); createCookie("lang", "%s", 24*365, cookiepath); hstm.stop(); window.onunload = null ; window.onbeforeunload = null ; document.location.assign("briskin5/index.php");|', $user_cur->step+1, $table_idx, $table_token, $G_lang); +/* $ret = ""; */ +/* $ret .= sprintf('gst.st_loc++; gst.st=%d; createCookie("table_idx", %d, 24*365, cookiepath); createCookie("table_token", "%s", 24*365, cookiepath); createCookie("lang", "%s", 24*365, cookiepath); hstm.stop(); window.onunload = null ; window.onbeforeunload = null ; document.location.assign("briskin5/index.php");|', $user_cur->step+1, $table_idx, $table_token, $G_lang); */ - $user_cur->comm[$user_cur->step % COMM_N] = $ret; - $user_cur->trans_step = $user_cur->step + 1; - log_wr("TRANS ATTIVATO"); +/* $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"); - Bin5::save_data($bri); - Bin5::unlock_data($bri_sem); - log_wr("postsave bri"); - } - // change room - $room->room_sitdown($user, $table_idx); +/* $user_cur->stat_set('table'); */ +/* $user_cur->subst = 'asta'; */ +/* $user_cur->laccwr = $curtime; */ +/* $user_cur->step_inc(); */ +/* } */ +/* log_wr("presave bri"); */ +/* Bin5::save_data($bri); */ +/* Bin5::unlock_data($bri_sem); */ +/* log_wr("postsave bri"); */ +/* } */ +/* // change room */ +/* $room->room_sitdown($user, $table_idx); */ - log_wr("MOP finish"); - } - else if ($argz[0] == 'logout') { - $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; - $user->comm[$user->step % COMM_N] .= 'postact_logout();'; - $user->the_end = TRUE; - $user->step_inc(); - } - } - /********************** - * * - * SUBST: sitdown * - * * - **********************/ - else if ($user->subst == 'sitdown') { - if ($argz[0] == 'wakeup') { - $room->room_wakeup($user); - } - 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] .= 'postact_logout();'; - $user->the_end = TRUE; - $user->step_inc(); - } - } +/* log_wr("MOP finish"); */ +/* } */ +/* else if ($argz[0] == 'logout') { */ +/* $user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; "; */ +/* $user->comm[$user->step % COMM_N] .= 'postact_logout();'; */ +/* $user->the_end = TRUE; */ +/* $user->step_inc(); */ +/* } */ +/* } */ +/* /\********************** */ +/* * * */ +/* * SUBST: sitdown * */ +/* * * */ +/* **********************\/ */ +/* else if ($user->subst == 'sitdown') { */ +/* if ($argz[0] == 'wakeup') { */ +/* $room->room_wakeup($user); */ +/* } */ +/* 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] .= 'postact_logout();'; */ +/* $user->the_end = TRUE; */ +/* $user->step_inc(); */ +/* } */ +/* } */ +/* } */ +/* log_wr("before save data"); */ +/* Room::save_data($room); */ +/* log_wr($user->step, 'index_wr.php: after save_data()'); */ + +/* Room::unlock_data($sem); */ +/* exit; */ + return (FALSE); } -log_wr("before save data"); -Room::save_data($room); -log_wr($user->step, 'index_wr.php: after save_data()'); - -Room::unlock_data($sem); -exit; ?> diff --git a/web/spush/brisk-spush.php b/web/spush/brisk-spush.php index 1a4dd28..f5c944e 100755 --- a/web/spush/brisk-spush.php +++ b/web/spush/brisk-spush.php @@ -21,16 +21,26 @@ * not, write to the Free Software Foundation, Inc, 59 Temple Place - * Suite 330, Boston, MA 02111-1307, USA. * + * TODO + * setcookie (for tables only) + * keepalive + * chunked + * index_rd.php porting + * index.php auth part + * generic var management from internet */ $G_base = "../"; +require_once("./sac-a-push.phh"); require_once("./brisk-spush.phh"); -require_once("../Obj/brisk.phh"); -require_once("../Obj/auth.phh"); +require_once($G_base."Obj/brisk.phh"); +require_once($G_base."Obj/auth.phh"); // require_once("../Obj/proxyscan.phh"); -require_once("./sac-a-push.phh"); -require_once("../index.php"); +require_once($G_base."index.php"); +require_once($G_base."index_wr.php"); +require_once($G_base."index_rd_ifra.php"); +require_once($G_base."briskin5/Obj/briskin5.phh"); define('SITE_PREFIX', '/brisk/'); @@ -119,13 +129,20 @@ function user_get_sess($user_arr, $sess) return FALSE; } -function headers_get() +function headers_render($header) { + $s = ""; $s .= "HTTP/1.1 200 OK\r\n"; - $s .= sprintf("Date: %s\r\n", date(DATE_RFC822)); - $s .= "Connection: close\r\n"; - $s .= "Content-Type: text/html\r\n"; + if (!isset($header['Date'])) + $s .= sprintf("Date: %s\r\n", date(DATE_RFC822)); + if (!isset($header['Connection'])) + $s .= "Connection: close\r\n"; + if (!isset($header['Content-Type'])) + $s .= "Content-Type: text/html\r\n"; + foreach($header as $key => $value) { + $s .= sprintf("%s: %s\r\n", $key, $value); + } $s .= "Mop: was/here\r\n"; $s .= "\r\n"; @@ -138,16 +155,7 @@ function headers_get() * to a var and than send it with more calm */ $G_headers = ""; -$G_content = ""; - -function spu_store($s) -{ - GLOBAL $G_content; - $G_content .= $s; - - return ''; -} function shutta() { log_rd2("SHUTTA [".connection_status()."] !"); @@ -162,7 +170,7 @@ $shutdown = FALSE; function main() { - GLOBAL $G_headers, $G_content; + GLOBAL $G_headers; GLOBAL $shutdown; $main_loop = TRUE; @@ -237,8 +245,9 @@ function main() $new_unix = stream_socket_accept($list); $stream_info = ""; $method = ""; - $get = ""; - $post = ""; + $get = array(); + $post = array(); + $cookie = array(); if (($new_socket = ancillary_getstream($new_unix, $stream_info)) !== FALSE) { printf("RECEIVED HEADER:\n%s", $stream_info); $path = spu_process_info($stream_info, $method, $header, $get, $post, $cookie); @@ -255,14 +264,54 @@ function main() switch ($path) { case SITE_PREFIX: case SITE_PREFIX."index.php": - $G_headers = ""; + $header_out = array(); ob_start(); - index_main($room); + index_main($room, $header_out, $get, $post, $cookie); $content = ob_get_flush(); - printf("OUT: [%s]\n", $G_content); - fwrite($new_socket, headers_get().$content); + // printf("OUT: [%s]\n", $G_content); + fwrite($new_socket, headers_render($header_out).$content); + fclose($new_socket); + break; + case SITE_PREFIX."index_wr.php": + $G_headers = ""; + ob_start(); + index_wr_main($room, socket_getpeername($$new_socket), $get, $post, $cookie); + $content = ob_get_flush(); + + // printf("OUT: [%s]\n", $G_content); + fwrite($new_socket, headers_render($header_out).$content); fclose($new_socket); + break; + case SITE_PREFIX."index_rd_ifra.php": + do { + if (!isset($cookie['sess'])) { + fclose($new_socket); + break; + } + if (($user = $room->get_user($cookie['sess'], $idx)) == FALSE) { + fclose($new_socket); + break; + } + if (($prev = $user->rd_socket_get()) != NULL) { + unset($s2u[intval($user->rd_socket_get())]); + unset($socks[intval($user->rd_socket_get())]); + fclose($user->rd_socket_get()); + $user->rd_socket_set(NULL); + } + + $header_out = array(); + $body = ""; + index_rd_ifra_init($room, $user, $header_out, $body, $get, $post, $cookie); + stream_set_blocking($new_socket, $blocking_mode); // Set the stream to non-blocking + fwrite($new_socket, headers_render($header_out).$body); + fflush($new_socket); + + $s2u[intval($new_socket)] = $idx; + $socks[intval($new_socket)] = $new_socket; + $user->rd_socket_set($new_socket); + } while (FALSE); + break; } @@ -319,8 +368,11 @@ function main() printf("Arrivati %d bytes da stdin\n", strlen($buf)); } else { + // $user_a[$s2u[intval($sock)]]->disable(); + if ($room->user[$s2u[intval($sock)]]->rd_socket_get() != NULL) { + $room->user[$s2u[intval($sock)]]->rd_socket_set(NULL); + } unset($socks[intval($sock)]); - $user_a[$s2u[intval($sock)]]->disable(); unset($s2u[intval($sock)]); fclose($sock); } @@ -353,10 +405,16 @@ function main() - if (0 == 1) { // WRITE PART EXAMPLE - // sleep(3); - foreach ($socks as $k => $sock) { - fwrite($sock, sprintf("DI QUI CI PASSO [%d]\n", $user_a[$s2u[intval($sock)]]->cnt_inc())); + foreach ($socks as $k => $sock) { + if (isset($s2u[intval($sock)])) { + $body = ""; + + + $header_out = array(); + $body = ""; + index_rd_ifra_main($room, $room->user[$s2u[intval($sock)]], $body); + echo "SPIA: [$body]\n"; + fwrite($sock, headers_render($header_out).$body); fflush($sock); } } diff --git a/web/spush/sac-a-push.phh b/web/spush/sac-a-push.phh index 1e9abb6..fef79ac 100644 --- a/web/spush/sac-a-push.phh +++ b/web/spush/sac-a-push.phh @@ -14,7 +14,6 @@ function spu_process_info($stream_info, $method, &$header, &$get, &$post, &$cook } $req = explode(" ", $header['The-Request']); $method = $req[0]; - $path = $req[1]; if (isset($header['Cookie'])) { $cookies = explode(";", $header['Cookie']); @@ -29,6 +28,7 @@ function spu_process_info($stream_info, $method, &$header, &$get, &$post, &$cook } // GET params management $get_vars = explode('?', $req[1], 2); + $path = $get_vars[0]; if (count($get_vars) > 1) { $a = explode('&', $get_vars[1]); printf("A COUNT: [%s] %d\n", $a[0], count($a)); @@ -63,4 +63,17 @@ function spu_process_info($stream_info, $method, &$header, &$get, &$post, &$cook return $path; } +function gpcs_var($name, $get, $post, $cookie) +{ + if (isset($GLOBALS[$name])) + return FALSE; + else if (isset($cookie[$name])) + return ($cookie[$name]); + else if (isset($post[$name])) + return ($post[$name]); + else if (isset($get[$name])) + return ($get[$name]); + + return FALSE; +} ?> -- 2.17.1