configuration file management fixed (add console 'reload' command)
[brisk.git] / web / spush / brisk-spush.php
1 #!/usr/bin/php
2 <?php
3 /*
4  *  brisk - spush/brisk-spush.php
5  *
6  *  Copyright (C) 2012 Matteo Nastasi
7  *                          mailto: nastasi@alternativeoutput.it 
8  *                                  matteo.nastasi@milug.org
9  *                          web: http://www.alternativeoutput.it
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License as published by
13  * the Free Software Foundation; either version 2 of the License, or
14  * (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful, but
17  * WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABLILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19  * General Public License for more details. You should have received a
20  * copy of the GNU General Public License along with this program; if
21  * not, write to the Free Software Foundation, Inc, 59 Temple Place -
22  * Suite 330, Boston, MA 02111-1307, USA.
23  *
24  * TODO
25  *
26  *   DISABLED_TO_FIX - DNS access (perform blocking dns requests, must be fixed)
27  *
28  *   TEST - database connection fails after a while, check close and try PGSQL_CONNECT_FORCE_NEW.
29  *   TEST - images flickering on slow windows: try to poll stream every 300 ms
30  *
31  *   - centralize all '<script ...' incapsulation to allow multiple transport system.
32  *
33  *   - WIP (half tested) manage and test cross forwarder between table and room
34  *   - log_legal address fix
35  *   - setcookie (for tables only and persist prefs)
36  *   - 404 wrong page management
37  *
38  *   TEST - unneeded garbage_time.expired access
39  *   TEST - BUG: fast loop on stream index_rd_ifra page (js watchdog start without timeout corrupt counts)
40  *   TEST - BUG: lurker are logged out (and remain a pending socket opened (look the spush log)
41  *   TEST - BUG: logout failed (fixed with a garbage_collector wrapper at sac-a-push level
42  *   TEST - garbage management
43  *
44  *   DONE/FROZEN - problema con getpeer (HOSTADDR)
45  *
46  *   DONE - configuration file management
47  *   DONE - app level keep-alive
48  *   DONE - index_wr other issues
49  *   DONE - from room to table
50  *   DONE - from table to room
51  *   DONE - chunked
52  *   DONE - bug: read from a not resource handle (already closed because a new socket substitute it)
53  *   DONE - partial write for normal page management
54  *   DONE - index_rd_ifra: last_clean issue
55  *   DONE - fwrite failed error management (select, buffer where store unsent data, and fwrite check and retry)
56  *   DONE - bug: after restart index_rd.php receive from prev clients a lot of req
57  *   DONE - index_wr.php::chat
58  *   DONE - index_wr.php::exit
59  *   DONE - index_rd.php porting
60  *   DONE - generic var management from internet
61  *   DONE - index.php auth part
62  *   ABRT - index_wr.php::reload - reload is js-only function
63  *   ABRT - keepalive management - not interesting for our purposes
64  */
65
66 $G_base = "../";
67
68 require_once($G_base."Obj/sac-a-push.phh");
69 require_once("./brisk-spush.phh");
70 require_once($G_base."Obj/user.phh");
71 require_once($G_base."Obj/brisk.phh");
72 require_once($G_base."Obj/auth.phh");
73 require_once($G_base."Obj/zlibstream.phh");
74 // require_once("../Obj/proxyscan.phh");
75 require_once($G_base."index.php");
76 require_once($G_base."index_wr.php");
77 require_once($G_base."briskin5/Obj/briskin5.phh");
78 require_once($G_base."briskin5/index.php");
79 require_once($G_base."briskin5/index_wr.php");
80
81
82 function main()
83 {
84     if (($room = Room::create()) == FALSE) {
85         log_crit("room::create failed");
86         exit(1);
87     }
88
89     if (($s_a_p = Sac_a_push::create($room, "/tmp/brisk.sock", 0, 0)) === FALSE) {
90         exit(1);
91     }
92
93     $s_a_p->run();
94
95     exit(0);
96 }
97
98 main();
99 ?>