*
*/
-$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,
exit;
}
-function shutta()
-{
- log_rd2("SHUTTA [".connection_status()."] !");
-}
-
-register_shutdown_function(shutta);
-
function blocking_error($is_unrecoverable)
{
GLOBAL $is_page_streaming;
return (sprintf(($is_unrecoverable ? 'hstm.stop(); ' : '').'window.onbeforeunload = null; window.onunload = null; document.location.assign("index.php");'));
}
+// FIXME TO SUPPORT iframe
function page_sync($sess, $page, $table_idx, $table_token)
{
GLOBAL $is_page_streaming;
-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;
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);
// $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)
*/
/* 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()));
$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 {
// Room::save_data($room);
// // $new_step = $user->step;
- Room::unlock_data($sem);
+ /* Room::unlock_data($sem); */
ignore_user_abort(FALSE);
}
}
} /* 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));
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.");
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) { */
return ($ret);
}
+function index_rd_ifra_fini($is_unrecoverable)
+{
+ GLOBAL $G_four_rnd_string;
+
+ // IF IFRAME THEN:
+ $body = "";
+ $body .= sprintf("<html>
+<head>
+<script type=\"text/javascript\" src=\"commons.js\"></script>
+<script type=\"text/javascript\" src=\"xynt-http-streaming-ifra.js\"></script>
+<script type=\"text/javascript\">
+var http_streaming = \"ready\";");
+ $body .= sprintf("
+window.onload = function () { if (http_streaming != \"ready\") { http_streaming.reload(); } };
+</script>
+</head>
+<body>");
+ $body .= sprintf("<!-- \n%s -->\n", $G_four_rnd_string);
+ $body .= sprintf("<script id='hs%d' type='text/javascript'><!--
+push(\"%s\");
+// -->
+</script>", 0, escpush(blocking_error($is_unrecoverable)) );
+ // ELSE IF XHR THEN:
+ // return (blocking_error($is_unrecoverable));
+ return ($body);
+}
+
/*
* MAIN
*/
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);
+ $curtime = time();
-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);
+ $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);
-$ssss =
- "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";
-?><html>
+ $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"';
+
+ 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($curtime, $stat, $subst, $step, $from);
+
+ $body .= sprintf("<html>
<head>
-<script type="text/javascript" src="commons.js"></script>
-<script type="text/javascript" src="xynt-http-streaming-ifra.js"></script>
-<script type="text/javascript">
-var http_streaming = "ready";
-<?php
-if (isset($st)) {
- printf("last_clean = %d;\n", $st);
- }
-?>
-window.onload = function () { if (http_streaming != "ready") { http_streaming.reload(); } };
+<script type=\"text/javascript\" src=\"commons.js\"></script>
+<script type=\"text/javascript\" src=\"xynt-http-streaming-ifra.js\"></script>
+<script type=\"text/javascript\">
+var http_streaming = \"ready\";");
+ if ($user->rd_scristp > 0)
+ $body .= sprintf("last_clean = %d;\n", ($user->rd_scristp-1));
+ $body .= sprintf("
+window.onload = function () { if (http_streaming != \"ready\") { http_streaming.reload(); } };
</script>
</head>
-<body>
-<?php
+<body>");
+ $body .= sprintf("<!-- \n%s -->\n", $G_four_rnd_string);
+
+ return TRUE;
+}
-echo("<!-- ");
-echo($ssss);
-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 ; 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 id='hs%d' type='text/javascript'><!--
+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("<script id='hs%d' type='text/javascript'><!--
push(\"%s\");
// -->
-</script>", $i, 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 id='hs%d' type='text/javascript'><!--
+</script>", $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 id='hs%d' type='text/javascript'><!-- */
+/* push(null); */
+/* // --> */
+/* alert(\"de che\"); */
+/* </script>", $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;
+}
+
+function index_rd_ifra_keepalive(&$user)
+{
+ return (sprintf("<script id='hs%d' type='text/javascript'><!--
push(null);
// -->
-</script>");
- mop_flush();
- log_crit("flush");
- }
- $no_data = TRUE;
- }
-}
+</script>", $user->rd_scristp++));
-$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);
?>