error_log("CBFWRD starting");
+
$config = new Config();
+global $config;
+
+if(isset($argv[1])) {
+ if($argv[1] == "boot") {
+ // we get called here on boot.
+ $config->bootHardware();
+ exit(0);
+ }
+}
// now we got into daemon modes
$cont = true;
// setup our sem/shm stuff
-// this stuff needs to go in comms
+// do the initial stuff
+$comms = new Comms;
+$config->loadConfig();
+$rawconf = $config->getConfig();
+$comms->putConfig($rawconf);
+
while($cont) {
- $comms = new Comms;
-
- $comms->putConfig($config->getConfig());
-
$msg = $comms->waitForMessage();
//echo "Got message: $msg\n";
+ if($msg == "quit") $cont = false;
+ else cbfwd_commandProcessor($msg);
+}
+
+
+function cbfwd_commandProcessor($command)
+{
+ global $config;
+ $cmds = explode(" ", $command);
+ $comms = new Comms;
- $cont = false;
+ $comms->lockConfigs();
+ switch($cmds[0]) {
+ case "goodone":
+ break;
+
+ // interface change requests
+ case "interface":
+ $int = $cmds[1];
+ if($cmds[2] == "changename") {
+ $rawconf = $comms->getConfig();
+ if(isset($rawconf["interface"]["$int"]["name"])) $rawconf["interface"]["$int"]["name"] = $cmds[3];
+ $comms->putConfig($rawconf);
+ }
+ break;
+
+ case "zone":
+ $cmd = $cmds[1];
+ switch($cmd) {
+ case "add":
+ $zonename = $cmds[2];
+ $rawconf = $comms->getConfig();
+ $rawconf["zone"][$zonename]["name"] = 1;
+ $comms->putConfig($rawconf);
+ break;
+
+ }
+ }
+ $comms->unlockConfigs();
}
?>
\ No newline at end of file