projects
/
brisk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
uset user moved before load ancestor data
[brisk.git]
/
web
/
Obj
/
hardban.phh
diff --git
a/web/Obj/hardban.phh
b/web/Obj/hardban.phh
index
99b7033
..
477a410
100644
(file)
--- a/
web/Obj/hardban.phh
+++ b/
web/Obj/hardban.phh
@@
-44,6
+44,8
@@
class Hardban {
}
class Hardbans {
}
class Hardbans {
+ static $delta_t;
+
var $item;
var $item_n;
var $mod;
var $item;
var $item_n;
var $mod;
@@
-66,8
+68,8
@@
class Hardbans {
log_auth("xxx", sprintf("Hardbans::add [%s]\n", $login));
log_auth("xxx", sprintf("Hardbans::add [%s]\n", $login));
- if (($chal = new Hardban($login, $ip, $session, $timeout)) ==
null
) {
- return (
$G_false
);
+ if (($chal = new Hardban($login, $ip, $session, $timeout)) ==
FALSE
) {
+ return (
FALSE
);
}
$this->item[$this->item_n] = $chal;
}
$this->item[$this->item_n] = $chal;
@@
-143,7
+145,7
@@
class Hardbans {
}
// Static functions
}
// Static functions
- static function
&
create()
+ static function create()
{
$chal =& new Hardbans();
{
$chal =& new Hardbans();
@@
-152,14
+154,13
@@
class Hardbans {
return $chal;
}
return $chal;
}
- function
&
load_data()
+ function load_data()
{
{
- GLOBAL $
G_false, $
sess;
- $doexit = FALSE;
+ GLOBAL $sess;
+
do {
if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
log_main("ftok failed");
do {
if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
log_main("ftok failed");
- $doexit = TRUE;
break;
}
break;
}
@@
-171,7
+172,7
@@
class Hardbans {
$shm_sz = HBAN_SHM_DIMS_MIN;
if ($shm = shm_attach($tok, $shm_sz)) {
$shm_sz = HBAN_SHM_DIMS_MIN;
if ($shm = shm_attach($tok, $shm_sz)) {
- $hban = @shm_get_var($shm, $tok);
+ $hban = @shm_get_var($shm, $tok); // CHECKED BELOW
log_only("hardban == ".($hban == FALSE ? "FALSE" : "TRUE")." hardban === ".($hban === FALSE ? "FALSE" : "TRUE")." hardban isset ".(isset($hban) ? "TRUE" : "FALSE"));
log_only("hardban == ".($hban == FALSE ? "FALSE" : "TRUE")." hardban === ".($hban === FALSE ? "FALSE" : "TRUE")." hardban isset ".(isset($hban) ? "TRUE" : "FALSE"));
@@
-183,6
+184,8
@@
class Hardbans {
log_only("PUT_VAR FALLITA ".strlen(serialize($hban)));
log_only(serialize($hban));
}
log_only("PUT_VAR FALLITA ".strlen(serialize($hban)));
log_only(serialize($hban));
}
+ log_shme("Hardban::save_data2");
+
}
$hban->shm_sz = $shm_sz;
}
$hban->shm_sz = $shm_sz;
@@
-191,18
+194,14
@@
class Hardbans {
$hban->garbage_manager(TRUE);
$hban->garbage_manager(TRUE);
- $ret = &$hban;
- return ($ret);
+ return ($hban);
} while (0);
} while (0);
- if ($doexit)
- exit();
-
- return ($G_false);
+ return (FALSE);
}
}
- function save_data(
&
$hban)
+ function save_data($hban)
{
$shm = FALSE;
$oldmod = $hban->mod;
{
$shm = FALSE;
$oldmod = $hban->mod;
@@
-218,8
+217,9
@@
class Hardbans {
log_only("hardban count ".count($hban->item)." _n: ".$hban->item_n);
$hban->mod = FALSE;
log_only("hardban count ".count($hban->item)." _n: ".$hban->item_n);
$hban->mod = FALSE;
- if (shm_put_var($shm, $tok, $hban) != FALSE) {
+ if (
@
shm_put_var($shm, $tok, $hban) != FALSE) {
shm_detach($shm);
shm_detach($shm);
+ log_shme("Hardban::save_data");
return (TRUE);
}
$hban->mod = $oldmod;
return (TRUE);
}
$hban->mod = $oldmod;
@@
-238,28
+238,29
@@
class Hardbans {
return (FALSE);
}
return (FALSE);
}
-
function lock_data(
)
+
static function lock_data($is_exclusive
)
{
if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
return (FALSE);
}
// echo "FTOK ".$tok."<br>";
{
if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
return (FALSE);
}
// echo "FTOK ".$tok."<br>";
- if (($res = sem_get($tok)) == FALSE) {
+ if (($res = sem_get($tok
, ($is_exclusive ? 1 : LOCK_SHARE_MAX)
)) == FALSE) {
return (FALSE);
}
if (sem_acquire($res)) {
return (FALSE);
}
if (sem_acquire($res)) {
- log_lock("LOCK hardbans");
+ self::$delta_t = microtime(TRUE);
+ log_lock("LOCK hardbans [".self::$delta_t."]");
return ($res);
}
else
return (FALSE);
}
return ($res);
}
else
return (FALSE);
}
- function unlock_data($res)
+
static
function unlock_data($res)
{
GLOBAL $sess;
{
GLOBAL $sess;
- log_lock("UNLOCK hardbans");
+ log_lock("UNLOCK hardbans
[".(microtime(TRUE) - (self::$delta_t))."]
");
return (sem_release($res));
}
return (sem_release($res));
}
@@
-269,7
+270,7
@@
class Hardbans {
{
$bantime = -1;
/* if it exists check for a valid challenge */
{
$bantime = -1;
/* if it exists check for a valid challenge */
- if (($a_sem = Hardbans::lock_data()) != FALSE) {
+ if (($a_sem = Hardbans::lock_data(
TRUE
)) != FALSE) {
if (($hban = &Hardbans::load_data()) != FALSE) {
for ($e = 0 ; $e < $hban->item_n ; $e++) {
if (($hban = &Hardbans::load_data()) != FALSE) {
for ($e = 0 ; $e < $hban->item_n ; $e++) {
@@
-303,7
+304,7
@@
class Hardbans {
{
$found = FALSE;
/* if it exists check for a valid challenge */
{
$found = FALSE;
/* if it exists check for a valid challenge */
- if (($a_sem = Hardbans::lock_data()) != FALSE) {
+ if (($a_sem = Hardbans::lock_data(
TRUE
)) != FALSE) {
if (($hban = &Hardbans::load_data()) != FALSE) {
if (($hban = &Hardbans::load_data()) != FALSE) {