X-Git-Url: http://mop.ddnsfree.com/gitweb/?a=blobdiff_plain;f=web%2Fbriskin5%2FObj%2Fbriskin5.phh;h=41cacfdd553e4466551152a7b60d4f3265ae6a65;hb=b3865c1e32776904f4e5b383d7d8de028b93d671;hp=94840679fe438ce82e2592f1dc7b025939191d3a;hpb=6a7088b090b78123ccfaa3ba00e1ea81647b173c;p=brisk.git
diff --git a/web/briskin5/Obj/briskin5.phh b/web/briskin5/Obj/briskin5.phh
index 9484067..41cacfd 100644
--- a/web/briskin5/Obj/briskin5.phh
+++ b/web/briskin5/Obj/briskin5.phh
@@ -527,8 +527,8 @@ class Bin5_user extends User {
if (validate_sess($sess) == FALSE)
break;
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/".$sess.".step", 'rb')) == FALSE)
break;
if (($s = fread($fp, 8)) == FALSE)
@@ -555,8 +555,8 @@ class Bin5_user extends User {
do {
if (validate_sess($this->sess) == FALSE)
break;
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (file_exists(BIN5_PROXY_PATH."/table".$this->table_orig) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$this->table_orig, 0775, TRUE);
if (($fp = @fopen(BIN5_PROXY_PATH."/table".$this->table_orig."/".$this->sess.".step", 'w')) == FALSE)
break;
fwrite($fp, pack("LL",$this->step, $this->idx));
@@ -994,30 +994,16 @@ class Bin5 {
static function lock_data($is_exclusive, $table_idx)
{
- GLOBAL $sess;
-
- log_main("lockinfo: DATA ".FTOK_PATH."/bin5/table".$table_idx."/table");
- // echo "LOCK: ".FTOK_PATH."/main";
- // exit;
- // WARNING monitor this step
- if (($tok = @ftok(FTOK_PATH."/bin5/table".$table_idx."/table", "B")) == -1) {
- return (FALSE);
- }
- // WARNING monitor this step
- if (($res = @sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
+ if (($res = file_lock(FTOK_PATH."/bin5/table".$table_idx."/table", $is_exclusive)) != FALSE) {
+ self::$delta_t = microtime(TRUE);
+ log_lock("LOCK table [".$table_idx."] [".self::$delta_t[$table_idx]."]");
+
+ return (new Vect(array('res' => $res, 'tab' => $table_idx)));
+ }
+
return (FALSE);
- }
- if (sem_acquire($res)) {
- self::$delta_t[$table_idx] = microtime(TRUE);
- log_lock("LOCK table [".$table_idx."] [".self::$delta_t[$table_idx]."]");
-
- return (new Vect(array('res' => $res, 'tab' => $table_idx)));
- }
- else {
- log_lock("LOCK table ".$table_idx.":FAILED");
- return (FALSE);
- }
}
+
static function unlock_data($res_vect)
{
@@ -1028,7 +1014,7 @@ class Bin5 {
log_lock("UNLOCK table [".$tab."] [".(microtime(TRUE) - (self::$delta_t[$tab]))."]");
- return (sem_release($res));
+ file_unlock($res);
}
@@ -1065,7 +1051,7 @@ class Bin5 {
// if ($user_cur->sess == '' || $user_cur->stat != 'room')
if ($user_cur->sess == '')
continue;
- if ($user_cur->name == $name_new) {
+ if (strcasecmp($user_cur->name, $name_new) == 0) {
$user->comm[$user->step % COMM_N] = "gst.st = ".($user->step+1)."; ";
$premsg = sprintf($mlang_brisk['nickdupl'][$G_lang], xcape($name_new));
@@ -1119,10 +1105,7 @@ class Bin5 {
(BIN5_PLAYERS_N == 3 ? 0: $this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->flags),
(BIN5_PLAYERS_N == 3 ? "" : xcape($this->user[$table->player[($user_cur->table_pos+4) % BIN5_PLAYERS_N]]->name)));
if ($user_cur == $user) {
- $itin = ($user->flags & USER_FLAG_AUTH ? "" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "" : "");
- $user_cur->comm[$user_cur->step % COMM_N] .= sprintf('$("myname").innerHTML = "%s%s%s";',
- $itin, xcape($user->name,ENT_COMPAT,"UTF-8"), $itou);
+ $user_cur->comm[$user_cur->step % COMM_N] .= $user_cur->myname_innerHTML();
}
$user_cur->step_inc();
}
@@ -1208,8 +1191,8 @@ class Bin5 {
$ret = TRUE;
$fp = FALSE;
do {
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/garbage_time.expired", 'rb')) == FALSE)
break;
if (($s = fread($fp, 4)) == FALSE)
@@ -1232,8 +1215,8 @@ class Bin5 {
static function garbage_time_expire_set($tab_id, $tm)
{
do {
- if (file_exists(BIN5_PROXY_PATH) == FALSE)
- mkdir(BIN5_PROXY_PATH, 0775, TRUE);
+ if (file_exists(BIN5_PROXY_PATH."/table".$tab_id) == FALSE)
+ mkdir(BIN5_PROXY_PATH."/table".$tab_id, 0775, TRUE);
if (($fp = @fopen(BIN5_PROXY_PATH."/table".$tab_id."/garbage_time.expired", 'wb')) == FALSE)
break;
fwrite($fp, pack("L",$tm));
@@ -1386,10 +1369,7 @@ function show_table(&$room, &$user, $sendstep, $is_transition, $is_again)
$ret .= "background_set();";
/* USERS INFO */
- $itin = ($user->flags & USER_FLAG_AUTH ? "" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "" : "");
-
- $ret .= sprintf('$("myname").innerHTML = "%s%s%s";', $itin, xcape($user->name), $itou);
+ $ret .= $user->myname_innerHTML();
$ret .= sprintf('set_names([%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"], [%d, "%s"]); ',
$room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->flags,
xcape($room->user[$table->player[($table_pos) % BIN5_PLAYERS_N]]->name),