/*
* brisk - auth.phh
*
- * Copyright (C) 2006-2011 Matteo Nastasi
+ * Copyright (C) 2006-2012 Matteo Nastasi
* mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
*
*/
-define(HBAN_SHM_DIMS_MIN, 16384);
-define(HBAN_SHM_DIMS_MAX, 65536);
-define(HBAN_SHM_DIMS_DLT, 16384);
-define(HBAN_VALID_TIME, 15);
-define(HBAN_GARBAGE_TIMEOUT, 5);
+define('HBAN_SHM_DIMS_MIN', 16384);
+define('HBAN_SHM_DIMS_MAX', 65536);
+define('HBAN_SHM_DIMS_DLT', 16384);
+define('HBAN_VALID_TIME', 15);
+define('HBAN_GARBAGE_TIMEOUT', 5);
class Hardban {
var $login;
GLOBAL $sess;
do {
- if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
+ if (($tok = @ftok(FTOK_PATH."/hardbans", "C")) == -1) {
log_main("ftok failed");
break;
}
-
+ fprintf(STDERR, "hardpans: %x\n", $tok);
if (($shm_sz = sharedmem_sz($tok)) == -1) {
log_main("shmop_open failed");
}
$shm = FALSE;
$oldmod = $hban->mod;
- if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1)
+ if (($tok = @ftok(FTOK_PATH."/hardbans", "C")) == -1)
return (FALSE);
while ($hban->shm_sz < HBAN_SHM_DIMS_MAX) {
static function lock_data($is_exclusive)
{
- if (($tok = @ftok(FTOK_PATH."/hardbans", "B")) == -1) {
- return (FALSE);
- }
- // echo "FTOK ".$tok."<br>";
- if (($res = sem_get($tok, ($is_exclusive ? 1 : LOCK_SHARE_MAX) )) == FALSE) {
- return (FALSE);
- }
- if (sem_acquire($res)) {
- self::$delta_t = microtime(TRUE);
- log_lock("LOCK hardbans [".self::$delta_t."]");
- return ($res);
- }
- else
+ if (($res = file_lock(FTOK_PATH."/hardbans", $is_exclusive)) != FALSE) {
+ self::$delta_t = microtime(TRUE);
+ log_lock("LOCK hardbans [".self::$delta_t."]");
+
+ return ($res);
+ }
+
return (FALSE);
}
log_lock("UNLOCK hardbans [".(microtime(TRUE) - (self::$delta_t))."]");
- return (sem_release($res));
+ file_unlock($res);
}
}
} // for (...
if ($hban->ismod()) {
- Hardbans::save_data(&$hban);
+ Hardbans::save_data($hban);
}
} // if (load_data
Hardbans::unlock_data($a_sem);
$hban->add_item($login, $ip, $session, $timeout);
if ($hban->ismod()) {
- Hardbans::save_data(&$hban);
+ Hardbans::save_data($hban);
}
} // if (load_data
Hardbans::unlock_data($a_sem);
} // End CLASS Hardbans
-?>
\ No newline at end of file
+?>