X-Git-Url: http://git.pjr.cc/?p=CBFWR.git;a=blobdiff_plain;f=libcbfwr%2Fweb.php;h=289fe19bb7a967223335c3a6406f973455cc125c;hp=aa039a80ea85526c98d97c734494c9eeee811f19;hb=cb45585d92144a65ff25bc1109cde4cbf60913de;hpb=175dadf56670772f8d889276df67471354a36f21 diff --git a/libcbfwr/web.php b/libcbfwr/web.php index aa039a8..289fe19 100644 --- a/libcbfwr/web.php +++ b/libcbfwr/web.php @@ -5,8 +5,12 @@ $MENU_ITEMS["20_Objects"]["link"] = "$BASE_URL/objects"; $MENU_ITEMS["20_Objects"]["name"] = "Objects"; $MENU_ITEMS["30_Rules"]["link"] = "$BASE_URL/rules"; $MENU_ITEMS["30_Rules"]["name"] = "Rules"; +$MENU_ITEMS["15_Routes"]["link"] = "$BASE_URL/routing"; +$MENU_ITEMS["15_Routes"]["name"] = "Routing"; $MENU_ITEMS["10_Interfaces"]["link"] = "$BASE_URL/interfaces"; $MENU_ITEMS["10_Interfaces"]["name"] = "Interfaces"; +$MENU_ITEMS["05_Admin"]["link"] = "$BASE_URL/admin"; +$MENU_ITEMS["05_Admin"]["name"] = "Admin"; // if i believed in name spacing in php, i'd use it. error_log("cbfwweb loaded"); @@ -22,46 +26,83 @@ class CBFWWeb { { $url = "/"; $bodycontent = null; + + $conf = new Config(); + $comms = new Comms(); + $conf->loadConfig($comms->getConfig(0)); + $rconfig = $conf->getConfig(); + + if($rconfig["status"] != "conf") { + if($rconfig["status"] == "nodir") { + cbfw_startnodir(); + return 0; + } + cbfw_startinstaller(); + return 0; + } + + if(isset($_REQUEST["q"])) { $url = $_REQUEST["q"]; // ok, now we try and find the basics $url_s = explode("/", $url); + $bodyFunction = null; switch($url_s[0]) { case "zones": - $bodyFunction = "CBFWZonesPage"; + CBFWZonesPage($url_s); break; case "interfaces": - $bodyFunction = "CBFWInterfacesPage"; + CBFWInterfacesPage($url_s); break; case "objects": - $bodyFunction = "CBFWObjectsPage"; + CBFWObjectsPage($url_s); + break; + case "routing": + CBFWRoutingPage($url_s); break; case "rules": $bodyFunction = "CBFWRulesPage"; break; + case "changes": + CBFWChangesPage($url_s); + break; + case "admin": + CBFWAdminPage($url_s); + break; default: $bodyFunction = findUrl($url_s); } } else { $bodyFunction = "CBFBuildHomePage"; } - CBFWpageBuilder(null, $bodyFunction); + if($bodyFunction != null) CBFWpageBuilder(null, $bodyFunction); } } + function CBFBuildHomePage($urls) { echo "Must remember this, gotta rules could apply to multiple zones not just one
"; echo "i.e.: add rule reject from object/host/hostname to address6/2003::123 in zones Zone/zonename/rulenum Zone/zonename/rulenum"; - $conf = new Config(); - $conf->loadConfig(); + $comms = new Comms(); + + + CBFWAddMessage("1", "i am a message"); echo "
";
-	print_r($conf->getConfig());
+	print_r($comms->getConfig(0));
+	echo "\n\n\n";
+	print_r($comms->getConfig(1));
+	echo "\n\n\n";
+	print_r($comms->getConfig(2));
 	echo "\n\n\n";
-	print_r($conf->getBootConfig());
+	print_r($comms->getConfig(3));
+	echo "\n\n\n";
+	print_r($comms->getConfig(4));
+	echo "\n\n\n";
+	print_r($comms->getConfig(5));
 	echo "
"; } @@ -93,15 +134,50 @@ function gcam($m, $s) function CBFWAddMessage($messagelev, $message) { + $comms = new Comms(); + $msgs = $comms->getConfig(6); + $cnum = 0; + if($msgs != false) { + foreach($msgs as $key=>$val) { + if($key >= $cnum) $cnum = $key+1; + } + } else { + $msgs = array(); + } + $msgs[$cnum]["timestamp"] = time(); + $msgs[$cnum]["level"] = $messagelev; + $msgs[$cnum]["message"] = $message; + $comms->putConfig($msgs, 6); } function CBFWMessageBuilder() { - + // show only 10 messages on this page + $maxshow = 6; + + $comms = new Comms(); + + $msgs = $comms->getConfig(6); + if($msgs != false) { + krsort($msgs); + } + $show = 0; + if(count($msgs) > 0) { + echo ""; + foreach($msgs as $key => $val) { + $datetime = $val["timestamp"]; + $sev = $val["level"]; + $message = $val["message"]; + echo ""; + $show++; + if($show >= $maxshow) break; + } + echo "
$datetime$sev$message
"; + } } -function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="CBFW") +function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="CBFW", $bodyfunctiondata=null) { global $WEB_ROOT_FS, $BASE_URL; @@ -145,9 +221,11 @@ function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="C // page top echo "

CBFW


"; - echo "
"; + echo "
"; CBFWMessageBuilder(); - echo "
"; + echo ""; + CBFWConfigStatus(); + echo "
"; // menu, then body echo "
"; @@ -160,9 +238,9 @@ function CBFWpageBuilder($bodyClass, $bodyFunction, $bodycontent=null, $title="C } if($bodyClass != null) { - $bodyClass->$bodyFunction($url); + $bodyClass->$bodyFunction($bodyfunctiondata); } else if( $bodyFunction != null) { - $bodyFunction($url); + $bodyFunction($bodyfunctiondata); } else echo $bodycontent; echo "
"; @@ -198,6 +276,36 @@ function cbfw_getLastSeen($ip, $data) } +function CBFWConfigStatus() +{ + global $WEB_ROOT_FS, $BASE_URL; + + $comms = new Comms(); + + $conf0 = $comms->getConfig(0); + $conf1 = $comms->getConfig(2); + $conf2 = $comms->getConfig(3); + + if($conf1["status"] == "nochange") { + $saved = "Current"; + $running = "Current"; + } else { + $saved = "Old"; + $running = "Current"; + } + if($conf2["status"] == "nochange") { + $client = "Current"; + } else { + $ch = $conf2["status"]; + $client = "$ch Changes Show"; + } + + + echo "Saved Config: $saved
"; + echo "Running Config: $running
"; + echo "Client Config: $client
"; +} + function cbfw_tdiffToAgo($time_in_sec) { $tdiff = $time_in_sec; @@ -213,45 +321,6 @@ function cbfw_tdiffToAgo($time_in_sec) return $last; } -function cbfw_isRemoteDir($url) -{ - file_get_contents($url); - //error_log("did file_get_contents on $url"); - foreach($http_response_header as $key => $val) { - //error_log("got header of $key for $val"); - if(preg_match("/.*Location:.*/", $val)) { - //error_log("in details apt got location as $val from $url"); - $realloc = preg_replace("/.*: /", "", $val); - $urlwithslash = $url."/"; - //echo "
in comp with
$urlwithslash
$realloc
"; - if(strcasecmp($realloc,$urlwithslash)==0) { - //error_log("I believe $realloc is a directory redir for $url"); - return true; - } else { - //error_log("I dont believe $realloc is a directory redir for $url"); - } - } - } - return false; -} - -function cbfw_fileExists($url) -{ - $fp = fopen($url, "r"); - //error_og("did file_get_contents on $url"); - $retval = false; - foreach($http_response_header as $key => $val) { - //error_log("got header of $key for $val"); - if(preg_match("/.*HTTP\/.*200.*/", $val)) { - //echo "is true\n"; - - $retval = true; - } - } - fclose($fp); - return $retval; -} - function cbfw_startInstaller() { global $WEB_ROOT_FS, $BASE_URL; @@ -308,5 +377,15 @@ Now, tell me where you want me to create the webconfig file:
+ +

Cant Run

+There is no config and no directory where i can store one. Login to the server and either create /var/run/cbfwr or /var + + \ No newline at end of file