add globals checker
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Tue, 15 Dec 2015 12:06:00 +0000 (13:06 +0100)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.it>
Tue, 15 Dec 2015 12:06:00 +0000 (13:06 +0100)
TODO.txt
bin/get_globals.sh [new file with mode: 0755]
sql/sql.d/900-anagr_devel.sql
web/Obj/brisk.conf-templ.pho
web/Obj/sac-a-push.phh

index 1a94fbb..486d33e 100644 (file)
--- a/TODO.txt
+++ b/TODO.txt
@@ -5,7 +5,7 @@
  ------+
    DONE - Not sequence of 3 same chars
    DONE   . check server side with test
-   - Global vars checker
+   DONE - Global vars checker
    <release>
    - usermgmt: add user delete
    DONE - 10002 message when already clicked
diff --git a/bin/get_globals.sh b/bin/get_globals.sh
new file mode 100755 (executable)
index 0000000..f235dfb
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+glob="$(grep  '$G_'  $(find -type f -name '*.ph*') | sed 's/\$G_/\n\$G_/g' | grep '^\$G_' | sed 's/[^\$a-zA-Z0-9_].*//g'  | sort | uniq | sed 's/\$//g' )"
+
+li=""
+for i in $glob ; do
+   if [ $(echo "${li}, '$i'," | wc -c) -gt 80 ]; then
+       echo $li
+       li=""
+   fi
+   if [ "$li" = "" ]; then
+       li="'${i}', "
+   else
+       li="${li} '${i}',"
+   fi
+done
+
+
index d1a5def..9ed830e 100644 (file)
@@ -41,5 +41,7 @@ DELETE FROM #PFX#users WHERE code = 10112;
 INSERT INTO #PFX#users (code, login, pass, email, type, guar_code) VALUES (10112, 'sino', md5('sino'), 'sino@pluto.com', CAST (X'00010000' as integer), 10103);
 DELETE FROM #PFX#users WHERE code = 10113;
 INSERT INTO #PFX#users (code, login, pass, email, type, guar_code) VALUES (10113, 'doub', md5('boub'), 'doub@pluto.com', CAST (X'00010000' as integer), 10103);
+DELETE FROM #PFX#users WHERE code = 10114;
+INSERT INTO #PFX#users (code, login, pass, email, type, guar_code) VALUES (10114, 'selfguar', md5('self'), 'self@pluto.com', CAST (X'00010000' as integer), 10103);
 
-ALTER SEQUENCE #PFX#users_code_seq RESTART WITH 10114;
+ALTER SEQUENCE #PFX#users_code_seq RESTART WITH 10115;
index 8d4858c..837e4ed 100644 (file)
@@ -17,6 +17,7 @@ else {
 // 26 hours between 2 successive registration from this area
 $G_selfreg_mask = 0xfffff000;
 $G_selfreg_tout = 93600;
+$G_notguar_code = 10114;
 
 // G_dbasetype value can be "pgsql" or "file"
 $G_dbasetype="pgsql";
index 62eb860..619d0b2 100644 (file)
@@ -30,6 +30,22 @@ define('DIRECT_ST_WRITE', 2);
 
 declare(ticks = 1);
 
+/* this list is created with bin/get_globals.sh */
+$_globals_list = array(
+'G_admin_mail', 'G_alarm_passwd', 'G_all_points', 'G_ban_list', 'G_base',
+'G_black_list', 'G_brisk_version', 'G_btrace_pref_sub', 'G_cloud_smasher',
+'G_crypt_key', 'G_dbasetype', 'G_dbauth', 'G_dbpfx', 'G_doc_path',
+'G_domain', 'G_donors_all', 'G_donors_cur', 'G_is_local', 'G_lang', 'G_lng',
+'G_mail_seed', 'G_notguar_code', 'G_PG_cons', 'G_PG_cons_n', 'G_PG_vow',
+'G_PG_vow_n', 'G_poll_entries', 'G_poll_name', 'G_poll_title',
+'G_provider_proxy', 'G_proxy_white_list', 'G_room_about', 'G_room_help',
+'G_room_passwdhowto', 'G_room_roadmap', 'G_room_whysupport',
+'G_selfreg_mask', 'G_selfreg_tout', 'G_shutdown', 'G_sidebanner',
+'G_sidebanner_idx', 'G_splash_content', 'G_splash_contents',
+'G_splash_cont_idx', 'G_splash_h', 'G_splash_idx', 'G_splash_interval',
+'G_splash_timeout', 'G_splash_w', 'G_topbanner', 'G_tos_dthard',
+'G_tos_dtsoft', 'G_tos_fname', 'G_tos_idx', 'G_tos_vers', 'G_webbase');
+
 function global_dump()
 {
     GLOBAL $G_alarm_passwd, $G_ban_list, $G_black_list, $G_btrace_pref_sub, $G_dbauth;
@@ -629,6 +645,18 @@ class Sac_a_push {
         $this->app->users_cleanup();
     }
 
+    function check_globals()
+    {
+        GLOBAL $_globals_list;
+        foreach ($_globals_list as $g) {
+            if (!array_search($g, $GLOBALS) || !isset($GLOBALS[$g])) {
+                error_log(sprintf("Global [%s] not declared", $g));
+                return FALSE;
+            }
+        }
+        return TRUE;
+    }
+
     function run()
     {
         GLOBAL $DOCUMENT_ROOT, $HTTP_HOST;
@@ -645,6 +673,11 @@ class Sac_a_push {
         GLOBAL $G_with_topbanner;
         GLOBAL $G_tos_vers, $G_tos_fname, $G_tos_dtsoft, $G_tos_dthard, $G_tos_idx, $G_doc_path;
 
+        if (!$this->check_globals()) {
+            fprintf(STDERR, "Take a look to the phplog file, GLOBALS missing!\n");
+            sleep(10);
+        }
+
         if ($this->main_loop) {
             return (FALSE);
         }
@@ -816,6 +849,10 @@ class Sac_a_push {
                                     $this->reload(FALSE, $G_provider_proxy);
                                     $this->app->reload(FALSE, $G_ban_list, $G_black_list,
                                                        $G_cloud_smasher);
+                                    if (!$this->check_globals()) {
+                                        fprintf(STDERR, "Take a look to the phplog file, GLOBALS missing!\n");
+                                        sleep(10);
+                                    }
                                     global_dump();
                                 }
                                 else if ($line == "shutdown" || $line == "sd") {