}
else {
$login_exists = $bdb->login_exists(strtolower($name_new));
+/*
+TO ENABLE USER-LOGIN ONLY
+- $login_exists = $bdb->login_exists(strtolower($name_new));
++ // $login_exists = $bdb->login_exists(strtolower($name_new));
++ // Force access with login and password
++ $idx = -3;
++ return (FALSE);
+*/
}
}
else {
* brisk - Obj/sac-a-push.phh
*
* Copyright (C) 2012-2014 Matteo Nastasi
- * mailto: nastasi@alternativeoutput.it
+ * mailto: nastasi@alternativeoutput.it
* matteo.nastasi@milug.org
* web: http://www.alternativeoutput.it
*
// if (content-type is wrong || content-length isn't set)
// return false
- if ($header['Content-Type'] != 'application/x-www-form-urlencoded'
+ if ($header['Content-Type'] != 'application/x-www-form-urlencoded'
|| !isset($header['Content-Length'])) {
return FALSE;
}
function gpcs_var($name, $get, $post, $cookie)
{
- if (isset($GLOBALS[$name]))
+ if (isset($GLOBALS[$name]))
return FALSE;
- else if (isset($cookie[$name]))
+ else if (isset($cookie[$name]))
return ($cookie[$name]);
- else if (isset($post[$name]))
+ else if (isset($post[$name]))
return ($post[$name]);
- else if (isset($get[$name]))
+ else if (isset($get[$name]))
return ($get[$name]);
return FALSE;
static $cnt_slave = NULL;
var $provider_proxy; // list of provider/browser that offer proxy service
-
+
var $file_socket;
var $unix_socket;
var $direct_socket; // socket where read direct commands
exit(1);
}
break;
- case SIGHUP:
+ case SIGHUP:
if (static::$cnt_master != NULL) {
fwrite(static::$cnt_master, "\nreload\n");
fflush(static::$cnt_master);
}
static function create(&$app, $sockname, $debug, $blocking_mode, $provider_proxy, $argv)
- {
+ {
$thiz = new Sac_a_push();
-
+
$thiz->app = $app;
$thiz->provider_proxy = ProviderProxy::create();
else
$thiz->rndstr .= chr(mt_rand(65, 90));
}
-
+
if (file_exists($thiz->file_socket)) {
unlink($thiz->file_socket);
}
if (file_exists($thiz->file_socket."2")) {
unlink($thiz->file_socket."2");
}
-
+
$old_umask = umask(0);
if (($thiz->list_web = stream_socket_server($thiz->unix_socket, $err, $errs)) === FALSE) {
return (FALSE);
if ($this->main_loop) {
return (FALSE);
}
-
+
$this->main_loop = TRUE;
-
+
$lastime = 0;
$dump_users = TRUE;
while ($this->main_loop) {
if ($lastime != ($this->curtime >> 2)) {
fprintf(STDERR, "\nIN LOOP: Current opened: %d pending_pages: %d\n", count($this->socks), count($this->pending_pages));
}
-
+
/* Prepare the read array */
/* // when we manage it ... */
/* if ($shutdown) */
else {
$read = $pre_read;
}
-
+
if ($this->debug > 1) {
printf("PRE_SELECT\n");
print_r($read);
$write = NULL;
$except = NULL;
$num_changed_sockets = @stream_select($read, $write, $except, 0, 500000);
-
+
if ($num_changed_sockets == 0) {
// printf(" no data in 5 secs, splash [%d]\n", $G_with_splash);
;
- }
+ }
else if ($num_changed_sockets > 0) {
if ($lastime != ($this->curtime >> 2)) {
printf("num sock %d num_of_socket: %d\n", $num_changed_sockets, count($read));
else { // data arrived from not special socket
$key = array_search("$sock", $this->socks);
// fprintf(STDERR, "Arrivati %d bytes dalla socket n. %d\n", mb_strlen($buf, "ASCII"), $key);
+
+ if (isset($this->s2u[$id])) {
+ $user = $this->s2u[$id];
+
+ // fprintf(STDERR, 'POST USER');
+ if ($user && $user->rd_transp && strpos($user->rd_transp->type, "websocket") !== FALSE) {
+ $clie_cmd = $user->rd_transp->unchunk($buf);
+ $clie_cmd = json_decode($clie_cmd, TRUE);
+ // fprintf(STDERR, "HERE WE ARE INCOMING DATA [%s]\n", print_r($clie_cmd, TRUE));
+
+ ob_start();
+ // complete: index_wr_main($this->app, $addr, $get, $post, $cookie);
+ index_wr_main($this->app, $addr, $clie_cmd, NULL, NULL);
+ $content = ob_get_contents();
+ ob_end_clean();
+
+ // $this->pendpage_try_addflush($new_socket, 20, $enc, $header_out, $content);
+ // FIXME ^
+ // fprintf(STDERR, "RETURNED CONTENT [%s]\n", $content);
+ }
+ }
+ else {
+ fprintf(STDERR, "User associated with ID: %s not found\n", $id);
+ }
+
+ if (isset($this->s2u[$id])) {
+ $user = $this->s2u[$id];
+
+ fprintf(STDERR, 'POST USER');
+ if ($user && $user->rd_transp && strpos($user->rd_transp->type, "websocket") !== FALSE) {
+ fprintf(STDERR, "HERE WE ARE INCOMING DATA [%s]\n", $user->rd_transp->deframe($buf));
+
+ }
+ }
+ else {
+ fprintf(STDERR, "REC ID: %s\n", $id);
+ }
if (isset($this->s2p[$id])) {
$this->s2p[$id]->rest -= mb_strlen($buf, "ASCII");
$this->s2p[$id]->cont .= $buf;
unset($this->pending_pages[$k]);
}
}
-
+
/*
$response: raw stream data not sent
$content: html consistent data (<script bla bla>)
$response = $user->chunked_content($content);
}
}
-
+
if ($response != "") {
// echo "SPIA: [".substr($response, 0, 60)."...]\n";
// echo "SPIA: [".$response."]\n";
}
$user->rd_kalive_reset($this->curtime);
}
-
+
// close socket after a while to prevent client memory consumption
if ($user->rd_endtime_is_expired($this->curtime)) {
if ($this->s2u[$id]->rd_socket_get() != NULL) {
protected $magicGUID = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
function Transport_websocket($secure = FALSE) {
+ $this->type = ($secure == FALSE ? "websocket" : "websocketsec");
$this->headerOriginRequired = false;
$this->headerSecWebSocketProtocolRequired = false;
$this->headerSecWebSocketExtensionsRequired = false;
+ $this->handlingPartialPacket = false;
+
$this->sendingContinuous = false;
- $this->sendingContinuous = false;
- $this->partialMessage = "";
- $this->hasSentClose = false;
+ $this->handlingPartialPacket = false;
+ $this->partialMessage = "";
+
+ $this->hasSentClose = false;
}
protected function extractHeaders($message) {
return $strout . "\n";
}
+ function unchunk($cont)
+ {
+ // fprintf(STDERR, "CHUNK: [%s]\n", $cont);
+ return $this->deframe($cont);
+ }
+
function chunk($step, $cont)
{
// fprintf(STDERR, "CHUNK: [%s]\n", $cont);
class Transport_xhr {
function Transport_xhr() {
+ $this->type = 'xhr';
}
function init($enc, $header, &$header_out, $init_string, $base, $step)
class Transport_iframe {
function Transport_iframe() {
+ $this->type = 'iframe';
}
function init($enc, $header, &$header_out, $init_string, $base, $step)
}
class Transport_htmlfile extends Transport_iframe {
+ function Transport_htmlfile() {
+ $this->type = 'htmlfile';
+ }
}
class Transport {
require_once('rules.phh');
+// FOR TORNEO TURN IT TO BIN5_TOURNAMENT_TOGETHER17
define('BIN5_TOURNAMENT_CURRENT', BIN5_TOURNAMENT_NO_DRAW);
$mlang_bin5_bin5 = array(
$ret = "<select id='select_rules'>\n";
foreach (rules_keys() as $key) {
$value = rules_id2descr($key, $G_lang);
- $ret .= sprintf("<option value='%d'>%s</option>\n", $key, $value);
+ $ret .= sprintf("<option value='%d'%s>%s</option>\n", $key, ($key == BIN5_TOURNAMENT_CURRENT ? " selected='selected'" : ""), $value);
}
$ret .= "</select>\n";
var fo = function () {
fn.apply(window,param);
};
- return nativeSetTimeout(fo,ms);
+ return nativeSetTimeout(fo,ms);
})(fn,ms,param);
}
else if(typeof(fn)=='string')
return null;
}
-function send_mesg(mesg)
+function send_mesg(mesg, content)
{
var is_conn = (sess == "not_connected" ? false : true);
if (is_conn && xstm && xstm.transp_type.startsWith('websocket')) {
- var target = window.location.href.substring(
- 0, window.location.href.lastIndexOf('/') + 1) + 'index_wr.php';
- var ws_msg = {target: target, mesg: mesg, stp:gst.st, sess:sess};
+ if (typeof(content) != 'undefined') {
+ mesg = mesg + content;
+ }
+ var target = window.location.href.substring(0,
+ window.location.href.lastIndexOf('/') + 1) + 'index_wr.php';
+ var ws_msg = JSON.stringify({target: target, mesg: mesg, stp:gst.st, sess:sess});
+ console.log(ws_msg);
xstm.transp.ws.send(ws_msg);
}
else {
- var xhr_wr = createXMLHttpRequest();
-
- // alert("xhr_wr: "+xhr_wr+" is_conn: "+is_conn);
- xhr_wr.open('GET', 'index_wr.php?&'+(is_conn ? 'sess='+sess : '')+'&stp='+gst.st+'&mesg='+mesg, (is_conn ? true : false));
- xhr_wr.setRequestHeader("If-Modified-Since", new Date().toUTCString());
- xhr_wr.onreadystatechange = function() { return; };
- if (typeof(g_debug) == 'number' && g_debug > 0
- && typeof(console) == 'object' && typeof(console.log) == 'function') {
+ var xhr_wr = createXMLHttpRequest();
+
+ if (typeof(content) != 'undefined') {
+ mesg = mesg + encodeURIComponent(content);
+ }
+ // alert("xhr_wr: "+xhr_wr+" is_conn: "+is_conn);
+ xhr_wr.open('GET', 'index_wr.php?&'+(is_conn ? 'sess='+sess : '')+'&stp='+gst.st+'&mesg='+mesg, (is_conn ? true : false));
+ xhr_wr.setRequestHeader("If-Modified-Since", new Date().toUTCString());
+ xhr_wr.onreadystatechange = function() { return; };
+ if (typeof(g_debug) == 'number' && g_debug > 0
+ && typeof(console) == 'object' && typeof(console.log) == 'function') {
var ldate = new Date();
console.log(ldate.getTime()+':MESG:'+mesg);
- }
- xhr_wr.send(null);
-
- if (!is_conn) {
- if (xhr_wr.responseText != null) {
- eval(xhr_wr.responseText);
- }
+ }
+ xhr_wr.send(null);
+
+ if (!is_conn) {
+ if (xhr_wr.responseText != null) {
+ eval(xhr_wr.responseText);
}
}
+ }
}
/*
if (xhr_wr.responseText != null) {
// console.log("server_request:resp: "+xhr_wr.responseText);
return (xhr_wr.responseText);
- }
+ }
else
return (null);
}
info_show(value.substring(6));
}
else {
- send_mesg("chatt|"+encodeURIComponent(value));
+ send_mesg("chatt|", value);
}
/*
obj.disabled = true;
function act_tav()
{
- act_chatt('/tav '+$('txt_in').value);
+ act_chatt('/tav '+$('txt_in').value);
$('txt_in').value = '';
}
function postact_logout()
{
// alert("postact_logout");
- try {
+ try {
xstm.abort();
} catch (e) {}
}
slowimg.prototype = {
- img: null,
+ img: null,
st: null,
x0: 0,
y0: 0,
},
- settime: function(time)
+ settime: function(time)
{
this.time = (time < this.deltat ? this.deltat : time);
this.step_n = parseInt(this.time / this.deltat);
notitag: null,
toutid: null,
clo: null,
- clodiv: null,
+ clodiv: null,
butt: null,
tblkid: null,
function italizer(ga)
{
var pre, pos;
- if (ga[0] & 2)
+ if (ga[0] & 2)
return "<i>"+ga[1]+"</i>";
else
return ga[1];
function room_checkspace(emme,tables,inpe)
{
nome = "<b>";
- for (i = 0 ; i < emme ; i++)
+ for (i = 0 ; i < emme ; i++)
nome += "m";
nome += "</b>";
alta = "";
- for (i = 0 ; i < 5 ; i++)
+ for (i = 0 ; i < 5 ; i++)
alta += nome+"<br>";
for (i = 0 ; i < tables ; i++) {