X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=1ff1f9f21eace19d1b93f4e12c436d95908d85b9;hb=e620dd90d1922e518c6e685c6b56d72ebced708f;hp=fb88f57595a996aea2a2fc39a69a3053d22e6865;hpb=0d44b8d10c6223a55e61caff12030879d429048c;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index fb88f57..1ff1f9f 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -286,7 +286,9 @@ Copyright 2006-2009 Matteo Nasta function mop_flush() { - ob_flush(); + for ($i = 0; $i < ob_get_level(); $i++) + ob_end_flush(); + ob_implicit_flush(1); flush(); } @@ -690,7 +692,9 @@ define('USER_FLAG_TY_SUPER', 0x020000); // done define('USER_FLAG_TY_SUSPEND', 0x400000); // done define('USER_FLAG_TY_DISABLE', 0x800000); // done -define('RD_STREAM_TIMEOUT', 4); +// 240 is the right value, 600 is for fwrite error test +define('RD_ENDTIME_DELTA', 240); +define('RD_KEEPALIVE_TOUT', 4); class User { var $idx; // index in the users array when you are in game @@ -714,7 +718,8 @@ class User { var $rd_step; // actual step of push stream var $rd_from; // referer var $rd_scristp; // current script step (for each session) - var $rd_tout; // if no message are sent after RD_STREAM_TIMEOUT secs we send a keepalive from server + var $rd_kalive; // if no message are sent after RD_KEEPALIVE_TOUT secs we send a keepalive from server + var $rd_cache; // place where store failed fwrite data var $comm; // commands array // var $asta_card; // @@ -767,7 +772,8 @@ class User { $thiz->rd_step = -1; $thiz->rd_from = ""; $thiz->rd_scristp = -1; - $thiz->rd_tout = -1; + $thiz->rd_kalive = -1; + $thiz->rd_cache = ""; $thiz->asta_card = -2; $thiz->asta_pnt = -1; @@ -903,13 +909,13 @@ class User { function rd_data_set($curtime, $stat, $subst, $step, $from) { - $this->rd_endtime = $curtime + STREAM_TIMEOUT; + $this->rd_endtime = $curtime + RD_ENDTIME_DELTA; $this->rd_stat = $stat; $this->rd_subst = $subst; $this->rd_step = $step; $this->rd_from = $from; $this->rd_scristp = 0; - $this->rd_tout = $curtime + RD_STREAM_TIMEOUT; + $this->rd_kalive = $curtime + RD_KEEPALIVE_TOUT; } function rd_socket_get() { @@ -920,31 +926,41 @@ class User { $this->rd_socket = $sock; } - function rd_tout_get() + function rd_kalive_get() { - return ($this->rd_tout); + return ($this->rd_kalive); } - function rd_tout_set($tm) + function rd_kalive_set($tm) { - $this->rd_tout = $tm; + $this->rd_kalive = $tm; } - function rd_tout_is_expired($tm) + function rd_kalive_is_expired($tm) { - // printf("rd_tout %d tm %d\n", $this->rd_tout, $tm); - return ($this->rd_tout < $tm); + // printf("rd_kalive %d tm %d\n", $this->rd_kalive, $tm); + return ($this->rd_kalive < $tm); } function rd_endtime_is_expired($tm) { - // printf("rd_endtime %d tm %d\n", $this->rd_tout, $tm); + // printf("rd_endtime %d tm %d\n", $this->rd_kalive, $tm); return ($this->rd_endtime < $tm); } - function rd_tout_reset($tm) + function rd_kalive_reset($tm) { - $this->rd_tout = $tm + RD_STREAM_TIMEOUT; + $this->rd_kalive = $tm + RD_KEEPALIVE_TOUT; + } + + function rd_cache_get() + { + return ($this->rd_cache); + } + + function rd_cache_set($cache) + { + $this->rd_cache = $cache; } function idx_get() { @@ -1045,7 +1061,7 @@ class User { function reset() { $curtime = time(); - log_legal($curtime, $this, "STAT:LOGOUT", ''); + log_legal($curtime, 'xxx', $this, "STAT:LOGOUT", ''); $tmp_sess = $this->sess; $this->sess = ""; @@ -1291,7 +1307,7 @@ class Room { $user_cur->bantime = $bri_user->bantime; } - log_legal($curtime, $user_cur, "STAT:DESTROY_GAME", $plist); + log_legal($curtime, 'xxx', $user_cur, "STAT:DESTROY_GAME", $plist); $this->room_join_wakeup($user_cur, FALSE, 0); $table_cur->table_token = ""; @@ -1330,7 +1346,7 @@ class Room { for ($i = 0 ; $i < $table_cur->player_n ; $i++) { $plist .= '|'.$this->user[$table_cur->player[$i]]->sess; } - log_legal($curtime, $user_cur, "STAT:DESTROY_GAME(RECOVERY)", $plist); + log_legal($curtime, 'xxx', $user_cur, "STAT:DESTROY_GAME(RECOVERY)", $plist); $this->room_join_wakeup($user_cur, TRUE, -2); $table_cur->table_token = ""; @@ -2017,7 +2033,7 @@ class Room { $to_room = $to_user; } - log_legal($curtime, $user, + log_legal($curtime, 'xxx', $user, ($user->stat == 'room' ? 'room' : 'table '.$user->table),$msg); $user->chat_lst = "$msg"; @@ -3046,15 +3062,14 @@ function log_shme($log) // function log_legal($curtime, $sess, $name, $where, $mesg) -function log_legal($curtime, $user, $where, $mesg) +function log_legal($curtime, $addr, $user, $where, $mesg) { - GLOBAL $_SERVER; if (($fp = @fopen(LEGAL_PATH."/legal.log", 'a')) != FALSE) { /* Unix time | session | nickname | IP | where was | mesg */ fwrite($fp, sprintf("%ld|%s|%s|%s|%s|%s|%s|\n", $curtime, $user->sess, ($user->flags & USER_FLAG_AUTH ? 'A' : 'N'), - $user->name, $_SERVER['REMOTE_ADDR'], $where , $mesg)); + $user->name, $addr, $where , $mesg)); fclose($fp); } }