X-Git-Url: http://git.pjr.cc/?p=CBFWR.git;a=blobdiff_plain;f=bin%2Fcbfwrd.php;h=b8360e59edff9d8079bc2bf1f1d2981ae09f24ca;hp=d2a0e833e8ac671f106ebf74ccb24c801dfa19a1;hb=0f5458e4a9c18595f7d9501880011369e4e65942;hpb=6bbd32f7123ad8e964156bbb42909e47eeeef0c1 diff --git a/bin/cbfwrd.php b/bin/cbfwrd.php index d2a0e83..b8360e5 100644 --- a/bin/cbfwrd.php +++ b/bin/cbfwrd.php @@ -21,6 +21,7 @@ error_log("CBFWRD starting"); $config = new Config(); +global $config; if(isset($argv[1])) { if($argv[1] == "boot") { @@ -35,13 +36,13 @@ $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; - - $config->loadConfig(); - $comms->putConfig($config->getConfig()); - $msg = $comms->waitForMessage(); //echo "Got message: $msg\n"; @@ -52,6 +53,37 @@ while($cont) { function cbfwd_commandProcessor($command) { + global $config; + $cmds = explode(" ", $command); + $comms = new Comms; + $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