X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=1ff1f9f21eace19d1b93f4e12c436d95908d85b9;hb=e792c3a8e2ecd4ca1c6c44ad99a420aad490353a;hp=19e8cb0752216821c7e376ebd60ebd0fbb8e5e2c;hpb=34ccc0593731592021bee6ab1661f8eb5ab5b1a4;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index 19e8cb0..1ff1f9f 100644 --- a/web/Obj/brisk.phh +++ b/web/Obj/brisk.phh @@ -23,62 +23,62 @@ */ -define(BRISK_CONF, "brisk.conf.pho"); -define(FTOK_PATH, "/var/lib/brisk"); -define(LEGAL_PATH, "/tmp/legal_brisk"); -define(PROXY_PATH, "/var/lib/brisk_proxy"); -define(TABLES_N, 36); -define(TABLES_AUTH_N, 4); -define(PLAYERS_N, 3); -define(MAX_POINTS, 5); -define(MAX_PLAYERS, (20 + (PLAYERS_N * TABLES_N))); -define(SHM_DIMS_MIN, (50000 + 10000 * TABLES_N + 15000 * MAX_PLAYERS)); -define(SHM_DIMS_MAX, SHM_DIMS_MIN + 1048576); -define(SHM_DIMS_DLT, 65536); - -define(SHM_DIMS_U_MIN, 4096); -define(SHM_DIMS_U_MAX, 65536); -define(SHM_DIMS_U_DLT, 4096); - -define(COMM_N, 18); -define(COMM_GEN_N, 50); - -define(CHAT_N, 3); -define(CHAT_ILL_TIME, 6); - -define(SESS_LEN, 13); -define(STREAM_TIMEOUT, 20); -define(EXPIRE_TIME_RD, 180); -define(EXPIRE_TIME_SMAMMA, 360); -define(EXPIRE_TIME_WAG, 10); -define(WAKEUP_TIME, 12); +define('BRISK_CONF', "brisk.conf.pho"); +define('FTOK_PATH', "/var/lib/brisk"); +define('LEGAL_PATH', "/tmp/legal_brisk"); +define('PROXY_PATH', "/var/lib/brisk_proxy"); +define('TABLES_N', 36); +define('TABLES_AUTH_N', 4); +define('PLAYERS_N', 3); +define('MAX_POINTS', 5); +define('MAX_PLAYERS', (20 + (PLAYERS_N * TABLES_N))); +define('SHM_DIMS_MIN', (50000 + 10000 * TABLES_N + 15000 * MAX_PLAYERS)); +define('SHM_DIMS_MAX', SHM_DIMS_MIN + 1048576); +define('SHM_DIMS_DLT', 65536); + +define('SHM_DIMS_U_MIN', 4096); +define('SHM_DIMS_U_MAX', 65536); +define('SHM_DIMS_U_DLT', 4096); + +define('COMM_N', 18); +define('COMM_GEN_N', 50); + +define('CHAT_N', 3); +define('CHAT_ILL_TIME', 6); + +define('SESS_LEN', 13); +define('STREAM_TIMEOUT', 60); +define('EXPIRE_TIME_RD', 180); +define('EXPIRE_TIME_SMAMMA', 360); +define('EXPIRE_TIME_WAG', 10); +define('WAKEUP_TIME', 12); // BAN_TIME da allineare anche in commons.js -define(BAN_TIME, 3600); -define(GARBAGE_TIMEOUT, 10); -define(NICKSERV, "BriskServ"); - -define(LOCK_SHARE_MAX, 10000); - -define(DBG_ONL2, 0x0001); -define(DBG_ONLY, 0x0002); -define(DBG_MAIN, 0x0004); -define(DBG_READ, 0x0008); -define(DBG_REA2, 0x0010); -define(DBG_SEND, 0x0020); -define(DBG_LOCK, 0x0040); -define(DBG_WRIT, 0x0080); -define(DBG_LOAD, 0x0100); -define(DBG_AUTH, 0x0200); -define(DBG_CRIT, 0x0400); -define(DBG_LMOP, 0x0800); -define(DBG_TRAC, 0x1000); -define(DBG_SHME, 0x2000); +define('BAN_TIME', 3600); +define('GARBAGE_TIMEOUT', 10); +define('NICKSERV', "BriskServ"); + +define('LOCK_SHARE_MAX', 10000); + +define('DBG_ONL2', 0x0001); +define('DBG_ONLY', 0x0002); +define('DBG_MAIN', 0x0004); +define('DBG_READ', 0x0008); +define('DBG_REA2', 0x0010); +define('DBG_SEND', 0x0020); +define('DBG_LOCK', 0x0040); +define('DBG_WRIT', 0x0080); +define('DBG_LOAD', 0x0100); +define('DBG_AUTH', 0x0200); +define('DBG_CRIT', 0x0400); +define('DBG_LMOP', 0x0800); +define('DBG_TRAC', 0x1000); +define('DBG_SHME', 0x2000); // NOTE: BRISK DEBUG must be a numerical constant, not the result of operations on symbols -define(BRISK_DEBUG, 0x0800); +define('BRISK_DEBUG', 0x0800); -define(BRISK_SINGLE_DEBUG,0); -define(BRISK_SINGLE_SESS, ""); -// define(DEBUGGING, "local"); +define('BRISK_SINGLE_DEBUG',0); +define('BRISK_SINGLE_SESS', ""); +define('DEBUGGING', "no-debugging"); require_once("$DOCUMENT_ROOT/Etc/".BRISK_CONF); @@ -275,7 +275,7 @@ $G_room_about = array( 'it' => '
briscola chiamata in salsa ajax
version '.$G_brisk_version.'

-Copyright 2006-2009 Matteo Nastasi (aka mop)

', +Copyright 2006-2012 Matteo Nastasi (aka mop)

', 'en' => '
@@ -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(); } @@ -658,37 +660,41 @@ class Table { // User flags -define(USER_FLAG_AUTH, 0x02); +define('USER_FLAG_AUTH', 0x02); -define(USER_FLAG_MAP_AUTH, 0x0c); -define(USER_FLAG_LISTAUTH, 0x04); -define(USER_FLAG_ISOLAUTH, 0x08); +define('USER_FLAG_MAP_AUTH', 0x0c); +define('USER_FLAG_LISTAUTH', 0x04); +define('USER_FLAG_ISOLAUTH', 0x08); -define(USER_FLAG_DBFAILED, 0x10); +define('USER_FLAG_DBFAILED', 0x10); // user status -define(USER_FLAG_S_NORM, 0x000); // done -define(USER_FLAG_S_PAU, 0x100); // done -define(USER_FLAG_S_OUT, 0x200); // done -define(USER_FLAG_S_DOG, 0x300); // done -define(USER_FLAG_S_EAT, 0x400); // done -define(USER_FLAG_S_WRK, 0x500); // done -define(USER_FLAG_S_SMK, 0x600); // done -define(USER_FLAG_S_EYE, 0x700); // done -define(USER_FLAG_S_RABB, 0x800); // done -define(USER_FLAG_S_SOCC, 0x900); // done -define(USER_FLAG_S_BABY, 0xa00); // done -define(USER_FLAG_S_MOP, 0xb00); // done - -define(USER_FLAG_S_ALL, 0xf00); // done +define('USER_FLAG_S_NORM', 0x000); // done +define('USER_FLAG_S_PAU', 0x100); // done +define('USER_FLAG_S_OUT', 0x200); // done +define('USER_FLAG_S_DOG', 0x300); // done +define('USER_FLAG_S_EAT', 0x400); // done +define('USER_FLAG_S_WRK', 0x500); // done +define('USER_FLAG_S_SMK', 0x600); // done +define('USER_FLAG_S_EYE', 0x700); // done +define('USER_FLAG_S_RABB', 0x800); // done +define('USER_FLAG_S_SOCC', 0x900); // done +define('USER_FLAG_S_BABY', 0xa00); // done +define('USER_FLAG_S_MOP', 0xb00); // done + +define('USER_FLAG_S_ALL', 0xf00); // done /* type of user normal, supporter etc ... */ -define(USER_FLAG_TY_ALL, 0xff0000); // done -define(USER_FLAG_TY_NORM, 0x010000); // done -define(USER_FLAG_TY_SUPER, 0x020000); // done +define('USER_FLAG_TY_ALL', 0xff0000); // done +define('USER_FLAG_TY_NORM', 0x010000); // done +define('USER_FLAG_TY_SUPER', 0x020000); // done // ... other usefull status ... -define(USER_FLAG_TY_SUSPEND, 0x400000); // done -define(USER_FLAG_TY_DISABLE, 0x800000); // done +define('USER_FLAG_TY_SUSPEND', 0x400000); // done +define('USER_FLAG_TY_DISABLE', 0x800000); // done + +// 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 @@ -704,6 +710,17 @@ 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 $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; // // var $asta_pnt; // @@ -747,6 +764,17 @@ 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->rd_kalive = -1; + $thiz->rd_cache = ""; + $thiz->asta_card = -2; $thiz->asta_pnt = -1; $thiz->handpt = -1; @@ -879,6 +907,62 @@ class User { return ($thiz); } + function rd_data_set($curtime, $stat, $subst, $step, $from) + { + $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_kalive = $curtime + RD_KEEPALIVE_TOUT; + } + + function rd_socket_get() { + return ($this->rd_socket); + } + + function rd_socket_set($sock) { + $this->rd_socket = $sock; + } + + function rd_kalive_get() + { + return ($this->rd_kalive); + } + + function rd_kalive_set($tm) + { + $this->rd_kalive = $tm; + } + + function rd_kalive_is_expired($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_kalive, $tm); + return ($this->rd_endtime < $tm); + } + + function rd_kalive_reset($tm) + { + $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() { return ($this->idx); } @@ -917,6 +1001,7 @@ class User { return TRUE; } + function save_step() { do { @@ -976,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 = ""; @@ -1222,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 = ""; @@ -1261,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 = ""; @@ -1948,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"; @@ -2939,7 +3024,7 @@ function log_auth($sess, $log) if (( (BRISK_DEBUG | ($sess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_AUTH) == 0) return; - if ((BRISK_DEBUG | ($ssess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_TRAC) + if ((BRISK_DEBUG | ($sess == BRISK_SINGLE_SESS ? BRISK_SINGLE_DEBUG : 0) ) & DBG_TRAC) $btrace = btrace_line(debug_backtrace()); else $btrace = ""; @@ -2977,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); } } @@ -3104,7 +3188,7 @@ function sharedmem_sz($tok) $shm_sz = shmop_size($shm_id); shmop_close($shm_id); - log_main("shm_sz: ".$shm_sz." SHM_DIMS: ".SHM_DIMS); + // log_main("shm_sz: ".$shm_sz." SHM_DIMS: ".SHM_DIMS); return ($shm_sz); }