pass $header and $ghost to underline function that require them
[brisk.git] / web / Obj / brisk.phh
index 881e9a3..41653d1 100644 (file)
@@ -2,7 +2,7 @@
 /*
  *  brisk - brisk.phh
  *
- *  Copyright (C) 2006-2013 Matteo Nastasi
+ *  Copyright (C) 2006-2014 Matteo Nastasi
  *                          mailto: nastasi@alternativeoutput.it
  *                                  matteo.nastasi@milug.org
  *                          web: http://www.alternativeoutput.it
@@ -1007,18 +1007,7 @@ class Brisk
 
     function Brisk()
     {
-        // create cds
-        $this->cds = new Curl_de_sac();
-
-        // create tor_chk_cls
-        $tor_chk_cls = new tor_chk_cmd_cls();
-
-        // registrer tor_chk_cls
-        printf("MAIN: Register 'tor_chk_cls'\n");
-        if (($this->cds->cmd_cls_register($tor_chk_cls)) == FALSE) {
-            fprintf(STDERR, "MAIN: 'tor_chk_cls' registration failed\n");
-            exit(1);
-        }
+        $this->cds = NULL;
     }
 
     // constructor
@@ -1028,7 +1017,7 @@ class Brisk
                 fprintf(STDERR, "ROOM FROM FILE\n");
                 rename($crystal_filename, $crystal_filename.".old");
 
-                $brisk->reload($ban_list, $black_list);
+                $brisk->reload(TRUE, $ban_list, $black_list);
 
                 return($brisk);
             }
@@ -1045,11 +1034,6 @@ class Brisk
         $thiz->ban_list = NULL;
         $thiz->black_list = NULL;
 
-        fprintf(STDERR, "PRE IPCLASS_UPDATE (%d, %d)\n", count($ban_list), count($black_list));
-        $thiz->ipclass_update('ban_list', $ban_list);
-        $thiz->ipclass_update('black_list', $black_list);
-        fprintf(STDERR, "POST IPCLASS_UPDATE %d %d\n", count($thiz->ban_list), count($thiz->black_list));
-
         for ($i = 0 ; $i < MAX_PLAYERS ; $i++) {
             $thiz->user[$i] = User::create($thiz, $i, "", "");
         }
@@ -1064,6 +1048,8 @@ class Brisk
 
         static::$sess_cur = FALSE;
 
+        $thiz->reload(TRUE, $ban_list, $black_list);
+
         return ($thiz);
     }
 
@@ -1088,15 +1074,22 @@ class Brisk
         }
     }
 
-    function reload($ban_list, $black_list)
+    function reload($is_first, $ban_list, $black_list)
     {
         fprintf(STDERR, "RELOAD STUFF (%d)(%d)\n", count($ban_list), count($black_list));
 
+        if (defined('CURL_DE_SAC_VERS')) {
+            if (brisk_cds_reload($this) == FALSE) {
+                exit(12);
+            }
+        }
         $this->ipclass_update("ban_list", $ban_list);
         $this->ipclass_update("black_list", $black_list);
 
-        $this->banned_kickoff();
-        $this->garbage_manager(TRUE);
+        if (!$is_first) {
+            $this->banned_kickoff();
+            $this->garbage_manager(TRUE);
+        }
     }
 
     function banned_kickoff()
@@ -2150,7 +2143,7 @@ class Brisk
   }
 
   /*
-   * function add_user(&$brisk, &$sess, &$idx, $name, $pass, $ip)
+   * function add_user(&$brisk, &$sess, &$idx, $name, $pass, $ip, $header, $cookie)
    *
    * RETURN VALUE:
    *   if ($idx >  -1    && ret == FALSE)  =>  duplicated nick
@@ -2161,7 +2154,7 @@ class Brisk
    *   if ($idx == -$idx && ret == user)   =>  SUCCESS (but the login exists in the auth db)
    */
 
-  function add_user(&$sess, &$idx, $name, $pass, $ip, $cookie)
+  function add_user(&$sess, &$idx, $name, $pass, $ip, $header, $cookie)
   {
     GLOBAL $G_base;
 
@@ -2270,6 +2263,9 @@ class Brisk
       }
 
       $idx = $ghost;
+      if (defined('CURL_DE_SAC_VERS')) {
+          brisk_cds_execute($this, $ghost, $real_idx, $sess, $ip, $authenticate, $header);
+      }
       return ($this->user[$ghost]);
     }
     else if ($idx != -1 && $i == MAX_PLAYERS) {
@@ -2369,10 +2365,9 @@ class Brisk
       log_main(sprintf("TROVATO LIBERO A [%d] sess [%s] name [%s] count [%d] name [%s] code [%s]", $idx, $sess, $name_new, count($this->user),$this->user[$real_idx]->name, $this->user[$real_idx]->code));
 
       $ret = $this->user[$real_idx];
-      if ($this->cds->execute("tor_chk", $this, $real_idx, $sess, $ip) == FALSE) {
-          log_main("cds_execute failed");
+      if (defined('CURL_DE_SAC_VERS')) {
+          brisk_cds_execute($this, $ghost, $real_idx, $sess, $ip, $authenticate, $header);
       }
-
       return ($ret);
     }
 
@@ -2533,7 +2528,7 @@ class Brisk
       case "":
       case "index.php":
           ob_start();
-          index_main($this, $transp_type, $header_out, $addr, $get, $post, $cookie);
+          index_main($this, $transp_type, $header, $header_out, $addr, $get, $post, $cookie);
           $content = ob_get_contents();
           ob_end_clean();