X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2FObj%2Fbrisk.phh;h=000722b685c053b8c6de2d668139aa6eaba5f883;hb=27185d840648e6857ab197900e3cb11baf5a3692;hp=19e8cb0752216821c7e376ebd60ebd0fbb8e5e2c;hpb=34ccc0593731592021bee6ab1661f8eb5ab5b1a4;p=brisk.git diff --git a/web/Obj/brisk.phh b/web/Obj/brisk.phh index 19e8cb0..000722b 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(); } @@ -657,455 +659,6 @@ class Table { } // end class Table -// User flags -define(USER_FLAG_AUTH, 0x02); - -define(USER_FLAG_MAP_AUTH, 0x0c); -define(USER_FLAG_LISTAUTH, 0x04); -define(USER_FLAG_ISOLAUTH, 0x08); - -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 - -/* 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 -// ... other usefull status ... -define(USER_FLAG_TY_SUSPEND, 0x400000); // done -define(USER_FLAG_TY_DISABLE, 0x800000); // done - -class User { - var $idx; // index in the users array when you are in game - var $idx_orig; // index in the users array when you aren't in game - var $code; // authentication code - var $name; // name of the user - var $sess; // session of the user - var $ip; // ip of the user - var $lacc; // last access (for the cleanup) - var $laccwr; // last access (for the cleanup) - var $bantime; // timeout to temporary ban - var $stat; // status (outdoor, room, table, game, ...) - 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 $comm; // commands array - // var $asta_card; // - // var $asta_pnt; // - // var $handpt; // Total card points at the beginning of the current hand. - // var $exitislock; // Player can exit from the table ? - - // FIXME: the table_orig field must be removed after table field verify of index management (in spawned table - // it is allways ZERO - var $table; // id of the current table when you are in game - var $table_orig; // id of the current table when you aren't in game - var $table_pos; // idx on the table - var $table_token;// token that identify a game on a table - var $flags; // Bitfield with: AUTHENTICATE: 0x02 - var $the_end; // Flag to change the end of the session - - var $chat_lst; // Last chat line - var $chattime; // Array of chat times - var $chat_cur; // Current chat line number - var $chat_ban; // Time for ban chat - var $chat_dlt; // Delta t for ban - var $shm_sz; - - function User() { - } - - function create($idx, $name, $sess, $stat = "", $subst = "", $table = -1, $ip="0.0.0.0") { - if (($thiz = new User()) == FALSE) - return (FALSE); - - $thiz->idx = $idx; - $thiz->idx_orig = $idx; - $thiz->code = -1; - $thiz->name = $name; - $thiz->sess = $sess; - $thiz->ip = $ip; - $thiz->lacc = time(); - $thiz->laccwr = time(); - $thiz->bantime = 0; - $thiz->stat = $stat; - $thiz->subst = $subst; - $thiz->step = 1; - $thiz->trans_step = -1; - $thiz->comm = array(); - $thiz->asta_card = -2; - $thiz->asta_pnt = -1; - $thiz->handpt = -1; - $thiz->exitislock = TRUE; - - $thiz->flags = 0x00; - - $thiz->chattime = array_fill(0, CHAT_N, 0); - $thiz->chat_cur = 0; - $thiz->chat_lst = ""; - $thiz->chat_ban = 0; - $thiz->chat_dlt = 0; - - $thiz->table_orig = $table; - $thiz->table = $table; - $thiz->table_pos = -1; - $thiz->table_token= ""; - $thiz->shm_sz = SHM_DIMS_U_MIN; - return ($thiz); - } - - function copy($from) - { - $this->idx = $from->idx; - $this->idx_orig = $from->idx; - $this->code = $from->code; - $this->name = $from->name; - $this->sess = $from->sess; - $this->ip = $from->ip; - $this->lacc = $from->lacc; - $this->laccwr = $from->laccwr; - $this->bantime = $from->bantime; - $this->stat = $from->stat; - $this->subst = $from->subst; - $this->step = $from->step; - $this->trans_step = $from->trans_step; - $this->comm = array(); - - $i_start = (1 > ($from->step - COMM_N) ? 1 : ($from->step - COMM_N)); - for ($i = $i_start ; $i < $from->step ; $i++) { - $ii = $i % COMM_N; - if (isset($from->comm[$ii])) { - $this->comm[$ii] = $from->comm[$ii]; - } - } - $this->asta_card = $from->asta_card; - $this->asta_pnt = $from->asta_pnt; - $this->handpt = $from->handpt; - $this->exitislock = $from->exitislock; - - $this->flags = $from->flags; - - $this->chattime = array(); - for ($i = 0 ; $i < CHAT_N ; $i++) - $this->chattime[$i] = $from->chattime[$i]; - $this->chat_cur = $from->chat_cur; - $this->chat_lst = $from->chat_lst; - $this->chat_ban = $from->chat_ban; - $this->chat_dlt = $from->chat_dlt; - - $this->table_orig = $from->table_orig; - $this->table = $from->table; - $this->table_pos = $from->table_pos; - $this->table_token = $from->table_token; - $this->the_end = $from->the_end; - $this->shm_sz = $from->shm_sz; - return (TRUE); - } - - - function myclone($from) - { - if (($thiz = new User()) == FALSE) - return (FALSE); - - $thiz->copy($from); - - return ($thiz); - } - - function spawn($from, $table, $table_pos) - { - if (($thiz = new User()) == FALSE) - return (FALSE); - - $thiz->idx = $from->idx; - $thiz->idx_orig = $from->idx; - $thiz->code = $from->code; - $thiz->name = $from->name; - $thiz->sess = $from->sess; - $thiz->ip = $from->ip; - $thiz->lacc = $from->lacc; - $thiz->laccwr = $from->laccwr; - $thiz->bantime = $from->bantime; - $thiz->stat = $from->stat; - $thiz->subst = $from->subst; - $thiz->step = $from->step; - $thiz->trans_step = $from->trans_step; - $thiz->comm = array(); - - /* - $i_start = (1 > ($from->step - COMM_N) ? 1 : ($from->step - COMM_N)); - for ($i = $i_start ; $i < $from->step ; $i++) { - log_wr("TRY PUSH:".$i); - $ii = $i % COMM_N; - $thiz->comm[$ii] = $from->comm[$ii]; - } - */ - $thiz->asta_card = $from->asta_card; - $thiz->asta_pnt = $from->asta_pnt; - $thiz->handpt = $from->handpt; - $thiz->exitislock = $from->exitislock; - $thiz->the_end = $from->the_end; - - $thiz->flags = $from->flags; - - $thiz->chattime = array_fill(0, CHAT_N, 0); - $thiz->chat_cur = 0; - $thiz->chat_lst = ""; - $thiz->chat_ban = 0; - $thiz->chat_dlt = 0; - - - $thiz->table_orig = $table; - $thiz->table = 0; - $thiz->table_pos = $table_pos; - $thiz->table_token = $from->table_token; - $thiz->shm_sz = $from->shm_sz; - - return ($thiz); - } - - function idx_get() { - return ($this->idx); - } - - function code_get() { - return ($this->code); - } - - function stat_set($stat) { - log_main("sess: [".$this->sess. "] NEW STAT: [".$stat."]"); - $this->stat = "$stat"; - - /* - if (validate_sess($this->sess)) { - if (file_exists(PROXY_PATH) == FALSE) - mkdir(PROXY_PATH, 0775, TRUE); - $fp = @fopen(PROXY_PATH."/".$this->sess.".stat", 'w'); - fwrite($fp, sprintf("%s\n",$this->stat)); - fclose($fp); - } - */ - } - - function step_set($step) - { - $this->step = $step & 0x7fffffff; - - return (TRUE); - } - - function step_inc($delta = 1) { - $this->step += $delta; - /* modularization because unpack() not manage unsigned 32bit int correctly */ - $this->step &= 0x7fffffff; - - return TRUE; - } - - function save_step() - { - do { - if (validate_sess($this->sess) == FALSE) - break; - if (file_exists(PROXY_PATH) == FALSE) - mkdir(PROXY_PATH, 0775, TRUE); - if (($fp = @fopen(PROXY_PATH."/".$this->sess.".step", 'w')) == FALSE) - break; - fwrite($fp, pack("LL",$this->step, $this->idx)); - fclose($fp); - - log_main("step_set [".$this->sess. "] [".$this->step."]"); - - return (TRUE); - } while (0); - - return (FALSE); - } - - static function load_step($sess) - { - $fp = FALSE; - do { - if (validate_sess($sess) == FALSE) - break; - - if (file_exists(PROXY_PATH) == FALSE) - mkdir(PROXY_PATH, 0775, TRUE); - if (($fp = @fopen(PROXY_PATH."/".$sess.".step", 'rb')) == FALSE) - break; - if (($s = fread($fp, 8)) == FALSE) - break; - if (mb_strlen($s, "ASCII") != 8) - break; - $arr = unpack('Ls/Li', $s); - fclose($fp); - - // log_rd2("A0: ".$arr[0]." A1: ".$arr[1]); - return ($arr); - } while (0); - - if ($fp != FALSE) - fclose($fp); - - log_rd2("STEP_GET [".$sess."]: return false "); - - return (FALSE); - } - - static function unproxy_step($sess) { - log_rd2("UNPROXY: ".PROXY_PATH."/".$sess.".step"); - if (file_exists(PROXY_PATH) == FALSE) - return; - @unlink(PROXY_PATH."/".$sess.".step"); - } - - function reset() { - $curtime = time(); - log_legal($curtime, $this, "STAT:LOGOUT", ''); - - $tmp_sess = $this->sess; - $this->sess = ""; - self::unproxy_step($tmp_sess); - $this->name = ""; // OK here - while (array_pop($this->comm) != NULL); - $this->step = 0; - $this->chattime = array_fill(0, CHAT_N, 0); - $this->chat_cur = 0; - $this->chat_lst = ""; - $this->chat_ban = 0; - $this->chat_dlt = 0; - $this->the_end = FALSE; - } - - static function load_data($id, $sess) - { - log_main("load_data: id [".$id."] sess [".($sess == FALSE ? "FALSE" : $sess)."] "); - - do { - if (($tok = @ftok(FTOK_PATH."/user".$id, "B")) == -1) { - log_main("ftok failed"); - break; - } - - if (($shm_sz = sharedmem_sz($tok)) == -1) { - log_main("shmop_open failed"); - } - - if ($shm_sz == -1) - $shm_sz = SHM_DIMS_U_MIN; - - if ($shm = shm_attach($tok, $shm_sz)) { - if (($user = @shm_get_var($shm, $tok)) == FALSE) { - break; - } - if ($sess != FALSE && $user->sess != $sess) { - break; - } - log_only("user == ".($user == FALSE ? "FALSE" : "TRUE")." user === ".($user === FALSE ? "FALSE" : "TRUE")." user isset ".(isset($user) ? "TRUE" : "FALSE")); - - if ($user == FALSE) { - log_only("INIT MAIN DATA"); - - // SHSPLIT FIXME: init_data for User class ?? - $user = User::create($id, "", ""); - if (@shm_put_var($shm, $tok, $user) == FALSE) { - log_only("PUT_VAR FALLITA ".strlen(serialize($user))); - log_only(serialize($user)); - } - log_shme("User::save_data2"); - } - else { - if ($sess != FALSE) { - /* - * NOTE: this part is for check only, theoretically - * user->step anch proxy_step are set allways at the same value - */ - $old_step = $user->step; - $arr = User::load_step($sess); - $user->step = $arr['s']; - if ($old_step != $user->step) { - log_crit("steps are diffetents User->step ".$user->step." Old_step: ".$old_step); - } - } - } - $user->shm_sz = $shm_sz; - - shm_detach($shm); - } - - // - // SHSPLIT: load users from the shared memory - // - return ($user); - } while (0); - - return (FALSE); - } - - - static function save_data($user, $id) - { - GLOBAL $sess; - - $shm = FALSE; - - if (($tok = @ftok(FTOK_PATH."/user".$id, "B")) == -1) { - return (FALSE); - } - while ($user->shm_sz < SHM_DIMS_U_MAX) { - if (($shm = shm_attach($tok, $user->shm_sz)) == FALSE) - break; - - // log_only("PUT_VAR DI ".strlen(serialize($user))); - if (@shm_put_var($shm, $tok, $user) != FALSE) { - shm_detach($shm); - if ($user->sess != "") - $user->save_step(); - - log_shme("User::save_data"); - - log_main("User[".$id."] saved."); - return (TRUE); - } - if (shm_remove($shm) === FALSE) { - log_only("REMOVE FALLITA"); - break; - } - shm_detach($shm); - $user->shm_sz += SHM_DIMS_U_DLT; - } - - if ($shm) - shm_detach($shm); - - return (FALSE); - } - - function myname_innerHTML() - { - $class_id = ($this->flags & USER_FLAG_AUTH) + 1; - - return (sprintf('$("myname").innerHTML = "%s";', $class_id, - xcape($this->name,ENT_COMPAT,"UTF-8"))); - } - -} // end class User - class Room { @@ -1123,7 +676,7 @@ class Room { $this->table = array(); for ($i = 0 ; $i < MAX_PLAYERS ; $i++) { - $this->user[$i] = User::create($i, "", ""); + $this->user[$i] = User::create($this, $i, "", ""); } for ($i = 0 ; $i < TABLES_N ; $i++) { @@ -1222,7 +775,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 +814,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 +1501,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"; @@ -2616,6 +2169,80 @@ class Room { return (FALSE); } + function request_mgr(&$s_a_p, &$header_out, &$new_socket, $path, $addr, $get, $post, $cookie) + { + printf("NEW_SOCKET (root): %d\n", intval($new_socket)); + + switch ($path) { + case SITE_PREFIX: + case SITE_PREFIX."index.php": + ob_start(); + index_main($this, $header_out, $addr, $get, $post, $cookie); + $content = ob_get_contents(); + ob_end_clean(); + + $s_a_p->pgflush_try_add($new_socket, 20, $header_out, $content); + return TRUE; + + break; + case SITE_PREFIX."index_wr.php": + ob_start(); + index_wr_main($this, $addr, $get, $post, $cookie); + $content = ob_get_contents(); + ob_end_clean(); + + $s_a_p->pgflush_try_add($new_socket, 20, $header_out, $content); + return TRUE; + + break; + case SITE_PREFIX."index_rd_ifra.php": + do { + if (!isset($cookie['sess']) + || (($user = $this->get_user($cookie['sess'], $idx)) == FALSE)) { + $content = User::stream_fini(TRUE); + + $s_a_p->pgflush_try_add($new_socket, 20, $header_out, $content); + return TRUE; + + break; + } + // close a previous opened index_read_ifra socket, if exists + if (($prev = $user->rd_socket_get()) != NULL) { + $s_a_p->socks_unset($user->rd_socket_get()); + fclose($user->rd_socket_get()); + printf("CLOSE AND OPEN AGAIN ON IFRA2\n"); + $user->rd_socket_set(NULL); + } + + $content = ""; + $user->stream_init($header_out, $content, $get, $post, $cookie); + + $response = headers_render($header_out, -1).chunked_content($content); + $response_l = mb_strlen($response, "ASCII"); + + $wret = @fwrite($new_socket, $response, $response_l); + if ($wret < $response_l) { + printf("TROUBLES WITH FWRITE: %d\n", $wret); + $user->rd_cache_set(mb_substr($content, $wret, $response_l - $wret, "ASCII")); + } + else { + $user->rd_cache_set(""); + } + fflush($new_socket); + + + $s_a_p->socks_set($new_socket, $user); + $user->rd_socket_set($new_socket); + printf(" - qui ci siamo - "); + return TRUE; + } while (FALSE); + + return FALSE; + break; + } + + return (FALSE); + } } // end class Room @@ -2939,7 +2566,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 +2604,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 +2730,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); }