X-Git-Url: http://git.pjr.cc/?p=CBFWR.git;a=blobdiff_plain;f=libcbfwr%2Fweb.php;h=289fe19bb7a967223335c3a6406f973455cc125c;hp=8e4967cdcea57ec062370699f7ba4562555fc557;hb=cb45585d92144a65ff25bc1109cde4cbf60913de;hpb=9d42ecae8d0c5139e119af983a5fe65f4b0fe149 diff --git a/libcbfwr/web.php b/libcbfwr/web.php index 8e4967c..289fe19 100644 --- a/libcbfwr/web.php +++ b/libcbfwr/web.php @@ -1,12 +1,16 @@ 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": - $bodycontent = CBFWZonesPage($url_s); + CBFWZonesPage($url_s); break; case "interfaces": - $bodycontent = CBFWInterfacesPage($url_s); + CBFWInterfacesPage($url_s); break; case "objects": - $bodycontent = CBFWObjectsPage($url_s); + CBFWObjectsPage($url_s); + break; + case "routing": + CBFWRoutingPage($url_s); break; case "rules": - $bodycontent = CBFWRulesPage($url_s); + $bodyFunction = "CBFWRulesPage"; + break; + case "changes": + CBFWChangesPage($url_s); + break; + case "admin": + CBFWAdminPage($url_s); break; default: - $bodycontent = findUrl($url_s); + $bodyFunction = findUrl($url_s); } + } else { + $bodyFunction = "CBFBuildHomePage"; } - CBFWpageBuilder(null, null, $bodycontent); + 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"; + + $comms = new Comms(); + + + CBFWAddMessage("1", "i am a message"); + echo "
";
+	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($comms->getConfig(3));
+	echo "\n\n\n";
+	print_r($comms->getConfig(4));
+	echo "\n\n\n";
+	print_r($comms->getConfig(5));
+	echo "
"; + +} + function CBFWMenuBuilder() { global $BASE_URL, $MENU_ITEMS; @@ -76,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; @@ -128,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 "
"; @@ -143,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 "
"; @@ -181,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; @@ -196,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; @@ -291,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