arguments management added to be able to run sap without listen on stdin
[brisk.git] / web / spush / brisk-spush.php
index 19741b9..35c2584 100755 (executable)
  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
  * Suite 330, Boston, MA 02111-1307, USA.
  *
- * TODO
- *
- *
- *   - BUG: logout failed
- *   - BUG: fast loop on stream index_rd_ifra page
- *
- *   - manage and test cross forwarder between table and room
- *   TEST - garbage management
- *   - log_legal address fix
- *   - setcookie (for tables only)
- *
- *   DONE/FROZEN - problema con getpeer (HOSTADDR)
- *
- *   DONE - app level keep-alive
- *   DONE - index_wr other issues
- *   DONE - from room to table
- *   DONE - from table to room
- *   DONE - chunked
- *   DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
- *   DONE - partial write for normal page management
- *   DONE - index_rd_ifra: last_clean issue
- *   DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
- *   DONE - bug: after restart index_rd.php receive from prev clients a lot of req
- *   DONE - index_wr.php::chat
- *   DONE - index_wr.php::exit
- *   DONE - index_rd.php porting
- *   DONE - generic var management from internet
- *   DONE - index.php auth part
- *   ABRT - index_wr.php::reload - reload is js-only function
- *   ABRT - keepalive management - not interesting for our purposes
  */
 
 $G_base = "../";
@@ -60,6 +30,7 @@ require_once("./brisk-spush.phh");
 require_once($G_base."Obj/user.phh");
 require_once($G_base."Obj/brisk.phh");
 require_once($G_base."Obj/auth.phh");
+require_once($G_base."Obj/zlibstream.phh");
 // require_once("../Obj/proxyscan.phh");
 require_once($G_base."index.php");
 require_once($G_base."index_wr.php");
@@ -68,21 +39,27 @@ require_once($G_base."briskin5/index.php");
 require_once($G_base."briskin5/index_wr.php");
 
 
-function main()
+function main($argv)
 {
-    if (($room = Room::create()) == FALSE) {
-        log_crit("room::create failed");
-        exit(1);
-    }
+    pid_save();
+    do {
+        if (($room = Room::create(LEGAL_PATH."/brisk-crystal.data")) == FALSE) {
+            log_crit("room::create failed");
+            $ret = 1;
+            break;
+        }
 
-    if (($s_a_p = Sac_a_push::create($room, "/tmp/brisk.sock", 0, 0)) === FALSE) {
-        exit(1);
-    }
+        if (($s_a_p = Sac_a_push::create($room, USOCK_PATH, 0, 0, $argv)) === FALSE) {
+            $ret = 2;
+            break;
+        }
 
-    $s_a_p->run();
+        $ret = $s_a_p->run();
+    } while (0);
 
-    exit(0);
+    pid_remove();
+    exit($ret);
 }
 
-main();
+main($argv);
 ?>