/*
* brisk - Obj/user.phh
*
- * Copyright (C) 2012 Matteo Nastasi
+ * Copyright (C) 2012-2015 Matteo Nastasi
* mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
define('USER_FLAG_TY_NORM', 0x010000); // done
define('USER_FLAG_TY_SUPER', 0x020000); // done
define('USER_FLAG_TY_CERT', 0x040000); // done
+define('USER_FLAG_TY_APPR', 0x080000); // done
// ... other usefull status ...
define('USER_FLAG_TY_FIRONLY', 0x200000); // done
define('USER_FLAG_TY_ADMIN', 0x400000); // done
var $step; // step of the current status
var $trans_step; // step to enable transition between pages (disable == -1)
var $cl_step; // current step returned by client
+ var $ping_req; // ping is already requested ?
+
+ var $pend_async; // number of async check that must be returned
var $rd_socket; // socket handle of push stream
var $rd_endtime; // end time for push stream
$thiz->step = 1;
$thiz->trans_step = -1;
$thiz->cl_step = -1;
+ $thiz->ping_req = FALSE;
+ $thiz->pend_async = 0;
$thiz->comm = array();
$thiz->rd_socket = NULL;
$this->step = $from->step;
$this->trans_step = $from->trans_step;
$this->cl_step = $from->cl_step;
+ $this->ping_req = $from->ping_req;
+ $this->pend_async = $from->pend_async;
$this->comm = array();
$i_start = (1 > ($from->step - COMM_N) ? 1 : ($from->step - COMM_N));
$thiz->step = $from->step;
$thiz->trans_step = $from->trans_step;
$thiz->cl_step = $from->cl_step;
+ $thiz->ping_req = $from->ping_req;
+ $thiz->pend_async = $from->pend_async;
$thiz->comm = array();
/*
return ($thiz);
}
+ function is_appr()
+ {
+ return ($this->flags & USER_FLAG_TY_APPR);
+ }
+
function is_auth()
{
return ($this->flags & USER_FLAG_AUTH);
log_rd2("do other cur_stat[".$this->rd_stat."] user->stat[".$this->stat."] cur_step[".$this->rd_step."] user_step[".$this->step."]");
- if ($this->rd_step == -1) {
+ fprintf(STDERR, "ASYNC: %d %d\n", $this->rd_step, $this->pend_async);
+ if ($this->rd_step == -1 && $this->pend_async == 0) {
/* if $this->rd_step == -1 load the current state from the main struct */
$S_load_stat['wR_minusone']++;
}
}
-
+ if ($this->pend_async > 0) {
+ return (FALSE);
+ }
/* this part I suppose is read only on $this->room structure */
if ($this->rd_step == -1) {
log_rd2("PRE-NEWSTAT: ".$this->stat);
($is_super ? 0 : $G_splash_timeout));
$ret .= sprintf('|createCookie("CO_splashdate%d", %d, 24*365, cookiepath);', $G_splash_idx, $curtime);
}
+ $this->room->standup_update($this);
$ret .= $this->room->show_room($this->step, $this);
// TODO uncomment and test