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)
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));
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)
{
log_lock("UNLOCK table [".$tab."] [".(microtime(TRUE) - (self::$delta_t[$tab]))."]");
- return (sem_release($res));
+ file_unlock($res);
}
// 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));
(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 ? "<i>" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "</i>" : "");
- $user_cur->comm[$user_cur->step % COMM_N] .= sprintf('$("myname").innerHTML = "<b>%s%s%s</b>";',
- $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();
}
$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)
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));
$ret .= "background_set();";
/* USERS INFO */
- $itin = ($user->flags & USER_FLAG_AUTH ? "<i>" : "");
- $itou = ($user->flags & USER_FLAG_AUTH ? "</i>" : "");
-
- $ret .= sprintf('$("myname").innerHTML = "<b>%s%s%s</b>";', $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),