projects
/
brisk.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f8605f6
)
pull of unix socket to interact with apache2
author
Matteo Nastasi
<nastasi@alternativeoutput.it>
Sat, 4 Apr 2020 11:24:18 +0000
(13:24 +0200)
committer
Matteo Nastasi
<nastasi@alternativeoutput.it>
Sat, 4 Apr 2020 11:24:18 +0000
(13:24 +0200)
INSTALL.sh
patch
|
blob
|
history
web/Obj/sac-a-push.phh
patch
|
blob
|
history
web/spush/brisk-spush.phh
patch
|
blob
|
history
web/spush/brisk-spush.php
patch
|
blob
|
history
web/usermgmt.php
patch
|
blob
|
history
diff --git
a/INSTALL.sh
b/INSTALL.sh
index
81be3e5
..
0266f47
100755
(executable)
--- a/
INSTALL.sh
+++ b/
INSTALL.sh
@@
-18,7
+18,7
@@
brisk_debug="0x0400"
web_path="/home/nastasi/web/brisk"
ftok_path="/home/nastasi/brisk-priv/ftok/brisk"
proxy_path="/home/nastasi/brisk-priv/proxy/brisk"
web_path="/home/nastasi/web/brisk"
ftok_path="/home/nastasi/brisk-priv/ftok/brisk"
proxy_path="/home/nastasi/brisk-priv/proxy/brisk"
-usock_path
="/home/nastasi/brisk-priv/brisk.soc
k"
+usock_path
_pfx="/home/nastasi/brisk-priv/bris
k"
sys_user="www-data"
legal_path="/home/nastasi/brisk-priv/brisk"
prefix_path="/brisk/"
sys_user="www-data"
legal_path="/home/nastasi/brisk-priv/brisk"
prefix_path="/brisk/"
@@
-32,7
+32,7
@@
function usage () {
echo "$1 -h"
echo "$1 chk - run lintian on all ph* files."
echo "$1 pkg - build brisk packages."
echo "$1 -h"
echo "$1 chk - run lintian on all ph* files."
echo "$1 pkg - build brisk packages."
- echo "$1 [-W] [-n 3|5] [-c 2|8] [-t <(n>=4)>] [-T <auth_tab>] [-r <appr_tab>] [-G <cert_tab>] [-A <apache-conf>] [-a <auth_file_name>] [-f <conffile>] [-p <outconf>] [-U <usock_path>] [-u <sys_user>] [-d <TRUE|FALSE>] [-w <web_dir>] [-k <ftok_dir>] [-l <legal_path>] [-y <proxy_path>] [-P <prefix_path>] [-x]"
+ echo "$1 [-W] [-n 3|5] [-c 2|8] [-t <(n>=4)>] [-T <auth_tab>] [-r <appr_tab>] [-G <cert_tab>] [-A <apache-conf>] [-a <auth_file_name>] [-f <conffile>] [-p <outconf>] [-U <usock_path
_pfx
>] [-u <sys_user>] [-d <TRUE|FALSE>] [-w <web_dir>] [-k <ftok_dir>] [-l <legal_path>] [-y <proxy_path>] [-P <prefix_path>] [-x]"
echo " -h this help"
echo " -f use this config file"
echo " -p save preferences in the file"
echo " -h this help"
echo " -f use this config file"
echo " -p save preferences in the file"
@@
-52,7
+52,7
@@
function usage () {
echo " -y dir where place proxy files - def. \"$proxy_path\""
echo " -P prefix path - def. \"$prefix_path\""
echo " -C config filename - def. \"$brisk_conf\""
echo " -y dir where place proxy files - def. \"$proxy_path\""
echo " -P prefix path - def. \"$prefix_path\""
echo " -C config filename - def. \"$brisk_conf\""
- echo " -U unix socket path
- def. \"$usock_path
\""
+ echo " -U unix socket path
prefix - def. \"$usock_path_pfx
\""
echo " -u system user to run brisk dae - def. \"$sys_user\""
echo " -x copy tests as normal php - def. \"$test_add\""
echo
echo " -u system user to run brisk dae - def. \"$sys_user\""
echo " -x copy tests as normal php - def. \"$test_add\""
echo
@@
-183,7
+183,7
@@
while [ $# -gt 0 ]; do
-P*) prefix_path="$(get_param "-P" "$1" "$2")"; sh=$?;;
-C*) brisk_conf="$(get_param "-C" "$1" "$2")"; sh=$?;;
-l*) legal_path="$(get_param "-l" "$1" "$2")"; sh=$?;;
-P*) prefix_path="$(get_param "-P" "$1" "$2")"; sh=$?;;
-C*) brisk_conf="$(get_param "-C" "$1" "$2")"; sh=$?;;
-l*) legal_path="$(get_param "-l" "$1" "$2")"; sh=$?;;
- -U*) usock_path="$(get_param "-U" "$1" "$2")"; sh=$?;;
+ -U*) usock_path
_pfx
="$(get_param "-U" "$1" "$2")"; sh=$?;;
-u*) sys_user="$(get_param "-u" "$1" "$2")"; sh=$?;;
system) action=system ; sh=1;;
-W) web_only="TRUE";;
-u*) sys_user="$(get_param "-u" "$1" "$2")"; sh=$?;;
system) action=system ; sh=1;;
-W) web_only="TRUE";;
@@
-221,7
+221,7
@@
echo " legal_path: \"$legal_path\""
echo " proxy_path: \"$proxy_path\""
echo " prefix_path:\"$prefix_path\""
echo " brisk_conf: \"$brisk_conf\""
echo " proxy_path: \"$proxy_path\""
echo " prefix_path:\"$prefix_path\""
echo " brisk_conf: \"$brisk_conf\""
-echo " usock_path
: \"$usock_path
\""
+echo " usock_path
_pfx: \"$usock_path_pfx
\""
echo " sys_user: \"$sys_user\""
echo " web_only: \"$web_only\""
echo " test_add: \"$test_add\""
echo " sys_user: \"$sys_user\""
echo " web_only: \"$web_only\""
echo " test_add: \"$test_add\""
@@
-246,7
+246,7
@@
if [ ! -z "$outconf" ]; then
echo "legal_path=\"$legal_path\""
echo "prefix_path=\"$prefix_path\""
echo "brisk_conf=\"$brisk_conf\""
echo "legal_path=\"$legal_path\""
echo "prefix_path=\"$prefix_path\""
echo "brisk_conf=\"$brisk_conf\""
- echo "usock_path
=\"$usock_path
\""
+ echo "usock_path
_pfx=\"$usock_path_pfx
\""
echo "sys_user=\"$sys_user\""
echo "web_only=\"$web_only\""
echo "test_add=\"$test_add\""
echo "sys_user=\"$sys_user\""
echo "web_only=\"$web_only\""
echo "test_add=\"$test_add\""
@@
-413,7
+413,7
@@
sed -i "s@define *( *'FTOK_PATH',[^)]*)@define('FTOK_PATH', \"$ftok_path\")@g" $
sed -i "s@define *( *'SITE_PREFIX',[^)]*)@define('SITE_PREFIX', \"$prefix_path\")@g;
s@define *( *'SITE_PREFIX_LEN',[^)]*)@define('SITE_PREFIX_LEN', $prefix_path_len)@g" ${web_path}__/Obj/sac-a-push.phh
sed -i "s@define *( *'SITE_PREFIX',[^)]*)@define('SITE_PREFIX', \"$prefix_path\")@g;
s@define *( *'SITE_PREFIX_LEN',[^)]*)@define('SITE_PREFIX_LEN', $prefix_path_len)@g" ${web_path}__/Obj/sac-a-push.phh
-sed -i "s@define *( *'USOCK_PATH
',[^)]*)@define('USOCK_PATH', \"$usock_path
\")@g" ${web_path}__/spush/brisk-spush.phh
+sed -i "s@define *( *'USOCK_PATH
_PFX',[^)]*)@define('USOCK_PATH_PFX', \"$usock_path_pfx
\")@g" ${web_path}__/spush/brisk-spush.phh
sed -i "s@define *( *'TABLES_N',[^)]*)@define('TABLES_N', $tables_n)@g;
s@define *( *'TABLES_APPR_N',[^)]*)@define('TABLES_APPR_N', $tables_appr_n)@g;
sed -i "s@define *( *'TABLES_N',[^)]*)@define('TABLES_N', $tables_n)@g;
s@define *( *'TABLES_APPR_N',[^)]*)@define('TABLES_APPR_N', $tables_appr_n)@g;
diff --git
a/web/Obj/sac-a-push.phh
b/web/Obj/sac-a-push.phh
index
77c3496
..
c187d91
100644
(file)
--- a/
web/Obj/sac-a-push.phh
+++ b/
web/Obj/sac-a-push.phh
@@
-424,8
+424,8
@@
class Sac_a_push {
var $provider_proxy; // list of provider/browser that offer proxy service
var $provider_proxy; // list of provider/browser that offer proxy service
- var $file_socket;
- var $unix_socket;
+ var $file_socket
_pfx
;
+ var $unix_socket
_pfx
;
var $direct_socket; // socket where read direct commands
var $socks;
var $s2u; // user associated with input socket
var $direct_socket; // socket where read direct commands
var $socks;
var $s2u; // user associated with input socket
@@
-475,7
+475,7
@@
class Sac_a_push {
}
}
}
}
- static function create(&$app, $sockname, $debug, $blocking_mode, $provider_proxy, $argv)
+ static function create(&$app, $sockname
_pfx
, $debug, $blocking_mode, $provider_proxy, $argv)
{
$thiz = new Sac_a_push();
{
$thiz = new Sac_a_push();
@@
-483,10
+483,11
@@
class Sac_a_push {
$thiz->provider_proxy = ProviderProxy::create();
$thiz->provider_proxy = ProviderProxy::create();
- $thiz->file_socket
= $sockname
;
- $thiz->unix_socket
= "unix://$sockname
";
- $thiz->direct_socket = "unix://${sockname}
2
";
+ $thiz->file_socket
_pfx = $sockname_pfx
;
+ $thiz->unix_socket
_pfx = "unix://$sockname_pfx
";
+ $thiz->direct_socket = "unix://${sockname}
_admin.sock
";
$thiz->debug = $debug;
$thiz->debug = $debug;
+ $thiz->list_web = array();
$thiz->socks = array();
$thiz->s2u = array();
$thiz->s2p = array();
$thiz->socks = array();
$thiz->s2u = array();
$thiz->s2p = array();
@@
-519,22
+520,32
@@
class Sac_a_push {
$thiz->rndstr .= chr(mt_rand(65, 90));
}
$thiz->rndstr .= chr(mt_rand(65, 90));
}
- if (file_exists($thiz->file_socket)) {
- unlink($thiz->file_socket);
+ for ($i = 0 ; $i < USOCK_POOL_N ; $i++) {
+ $file_socket = $thiz->file_socket_pfx . sprintf("%d.sock", $i);
+ if (file_exists($file_socket)) {
+ unlink($file_socket);
+ }
}
}
- if (file_exists($thiz->file_socket."2")) {
- unlink($thiz->file_socket."2");
+ $file_socket_admin = $thiz->file_socket_pfx . "_admin.sock";
+ if (file_exists($file_socket_admin)) {
+ unlink($file_socket_admin);
}
$old_umask = umask(0);
}
$old_umask = umask(0);
- if (($thiz->list_web = stream_socket_server($thiz->unix_socket, $err, $errs)) === FALSE) {
- return (FALSE);
+ for ($i = 0 ; $i < USOCK_POOL_N ; $i++) {
+ $unix_socket = sprintf("%s%d.sock", $thiz->unix_socket_pfx, $i);
+ if (($list_sock = stream_socket_server($unix_socket, $err, $errs)) === FALSE) {
+ return (FALSE);
+ }
+ array_push($thiz->list_web, $list_sock);
}
if (($thiz->list_cmd = stream_socket_server($thiz->direct_socket, $err, $errs)) === FALSE) {
return (FALSE);
}
umask($old_umask);
}
if (($thiz->list_cmd = stream_socket_server($thiz->direct_socket, $err, $errs)) === FALSE) {
return (FALSE);
}
umask($old_umask);
- stream_set_blocking($thiz->list_web, $thiz->blocking_mode); # Set the stream to non-blocking
+ for ($i = 0 ; $i < USOCK_POOL_N ; $i++) {
+ stream_set_blocking($thiz->list_web[$i], $thiz->blocking_mode); # Set the stream to non-blocking
+ }
stream_set_blocking($thiz->list_cmd, $thiz->blocking_mode); # Set the stream to non-blocking
if (($thiz->in = fopen("php://stdin", "r")) === FALSE) {
stream_set_blocking($thiz->list_cmd, $thiz->blocking_mode); # Set the stream to non-blocking
if (($thiz->in = fopen("php://stdin", "r")) === FALSE) {
@@
-688,6
+699,11
@@
class Sac_a_push {
$this->main_loop = TRUE;
$this->main_loop = TRUE;
+ $list_web_arr = array();
+ for ($i = 0 ; $i < USOCK_POOL_N ; $i++) {
+ $list_web_arr[intval($this->list_web[$i])] = $this->list_web[$i];
+ }
+
$lastime = 0;
$dump_users = TRUE;
while ($this->main_loop) {
$lastime = 0;
$dump_users = TRUE;
while ($this->main_loop) {
@@
-702,10
+718,10
@@
class Sac_a_push {
/* if ($shutdown) */
/* $read = array_merge(array("$in" => $in), $socks); */
/* else */
/* if ($shutdown) */
/* $read = array_merge(array("$in" => $in), $socks); */
/* else */
- $pre_read = array_merge(
array(intval($this->list_web) => $this->list_web,
-
intval($this->list_cmd) => $this->list_cmd,
-
intval(static::$cnt_slave) => static::$cnt_slave),
-
$this->socks);
+ $pre_read = array_merge(
$list_web_arr, array(
+ intval($this->list_cmd) => $this->list_cmd,
+ intval(static::$cnt_slave) => static::$cnt_slave),
+ $this->socks);
if ($this->is_daemon == FALSE) {
$read = array_merge($pre_read, array(intval($this->in) => $this->in));
}
if ($this->is_daemon == FALSE) {
$read = array_merge($pre_read, array(intval($this->in) => $this->in));
}
@@
-741,9
+757,11
@@
class Sac_a_push {
if (!is_resource($sock)) {
continue;
}
if (!is_resource($sock)) {
continue;
}
- if ($sock === $this->list_web) {
+ $list_web_idx = array_search($sock, $this->list_web, TRUE);
+ if ($list_web_idx !== FALSE) {
+ $list_web_usock = $this->list_web[$list_web_idx];
// printf("NUOVA CONNEX\n");
// printf("NUOVA CONNEX\n");
- if (($new_unix = stream_socket_accept($
this->list_web
)) == FALSE) {
+ if (($new_unix = stream_socket_accept($
list_web_usock
)) == FALSE) {
printf("SOCKET_ACCEPT FAILED\n");
continue;
}
printf("SOCKET_ACCEPT FAILED\n");
continue;
}
@@
-819,7
+837,7
@@
class Sac_a_push {
// printf("INFO: read return false\n");
;
}
// printf("INFO: read return false\n");
;
}
- if (
$sock === $this->list_web
) {
+ if (
array_search($sock, $this->list_web, TRUE) !== FALSE
) {
// printf("Arrivati %d bytes da list\n", mb_strlen($buf, "ASCII"));
return(21);
}
// printf("Arrivati %d bytes da list\n", mb_strlen($buf, "ASCII"));
return(21);
}
@@
-857,7
+875,7
@@
class Sac_a_push {
if ($this->debug > 1) {
print_r($read);
}
if ($this->debug > 1) {
print_r($read);
}
- if (
$sock === $this->list_web
) {
+ if (
array_search($sock, $this->list_web, TRUE) !== FALSE
) {
// printf("Arrivati %d bytes da list\n", mb_strlen($buf, "ASCII"));
;
}
// printf("Arrivati %d bytes da list\n", mb_strlen($buf, "ASCII"));
;
}
@@
-1185,7
+1203,8
@@
class Sac_a_push {
return TRUE;
}
}
return TRUE;
}
}
- usleep(10000);
+ // probably not needed
+ // usleep(10000);
}
fclose($socket);
}
fclose($socket);
diff --git
a/web/spush/brisk-spush.phh
b/web/spush/brisk-spush.phh
index
11e5497
..
8ff55c1
100644
(file)
--- a/
web/spush/brisk-spush.phh
+++ b/
web/spush/brisk-spush.phh
@@
-24,7
+24,8
@@
$DOCUMENT_ROOT="";
$HTTP_HOST="dodo.birds.lan";
$DOCUMENT_ROOT="";
$HTTP_HOST="dodo.birds.lan";
-define('USOCK_PATH', "/tmp/brisk.sock");
+define('USOCK_PATH_PFX', "/tmp/brisk");
+define('USOCK_POOL_N', 10);
define('PENDINGPAGE_CONTINUE', 0);
define('PENDINGPAGE_WAITDATA', 1);
define('PENDINGPAGE_CONTINUE', 0);
define('PENDINGPAGE_WAITDATA', 1);
diff --git
a/web/spush/brisk-spush.php
b/web/spush/brisk-spush.php
index
fe3814f
..
00d3e64
100755
(executable)
--- a/
web/spush/brisk-spush.php
+++ b/
web/spush/brisk-spush.php
@@
-72,7
+72,7
@@
function main($argv)
break;
}
break;
}
- if (($s_a_p = Sac_a_push::create($brisk, USOCK_PATH, 0, 0, $G_provider_proxy, $argv)) === FALSE) {
+ if (($s_a_p = Sac_a_push::create($brisk, USOCK_PATH
_PFX
, 0, 0, $G_provider_proxy, $argv)) === FALSE) {
$ret = 2;
break;
}
$ret = 2;
break;
}
diff --git
a/web/usermgmt.php
b/web/usermgmt.php
index
436b99c
..
57a6ae1
100644
(file)
--- a/
web/usermgmt.php
+++ b/
web/usermgmt.php
@@
-97,7
+97,7
@@
function check_auth()
$cmd_len = mb_strlen($cmd_ser, "ASCII");
do {
$cmd_len = mb_strlen($cmd_ser, "ASCII");
do {
- if (($socket = stream_socket_client(
"unix://".USOCK_PATH."2"
)) == FALSE)
+ if (($socket = stream_socket_client(
'unix://'.USOCK_PATH_PFX.'_admin.sock'
)) == FALSE)
break;
$stp = 1;
if (($rwr = fwrite($socket, $cmd_ser, $cmd_len)) == FALSE
break;
$stp = 1;
if (($rwr = fwrite($socket, $cmd_ser, $cmd_len)) == FALSE