From e45207eb04184d0ee4c7f7b77bbe74b599c1a003 Mon Sep 17 00:00:00 2001 From: paulr Date: Tue, 9 Aug 2011 18:55:19 +1000 Subject: [PATCH] host group operations work very well now. --- plugins/hosts.php | 114 ++++++++++++++++++++++++++++++++++------------------- 1 files changed, 73 insertions(+), 41 deletions(-) diff --git a/plugins/hosts.php b/plugins/hosts.php index f2e8e44..eb93989 100644 --- a/plugins/hosts.php +++ b/plugins/hosts.php @@ -49,34 +49,83 @@ class GLCASHosts { } + + // TODO: this whole function wont work correctly + // once we move to hosts being in multiple groups.. function doOperation($url) { $operation = $_REQUEST["operation"]; $groupop = $_REQUEST["groupop"]; $hosts = $this->config->getData("hosts"); $groups = $this->config->getData("hostgroups"); + $nogroup = false; + $hosts_to_do = null; + $nhosts = 0; + $groups_to_do = null; + $ngroups = 0; // first check if nogroup is selected if(isset($_REQUEST["nonegroup-selected"])) { - echo "nonegroup operation
"; + //echo "nonegroup operation
"; + $nogroup = true; + } + + foreach($groups as $key=>$val) { + $grpname = $val["category"]; + if(isset($_REQUEST["$grpname-selectgroup"])) { + $group_to_do[$ngroups++] = $grpname; + + } } foreach($hosts as $key=>$val) { + $dohost = false; $hname = $val["category"]; + // this bits annoying TODO: find out why this happens + $thname = preg_replace("/\./", "_", $hname); $hip = $val["name"]; $hg = $val["val"]; - if(isset($_REQUEST["$hname-selecthost"])) { - echo "Select host, $hname true
"; + + echo "
Checking $hname, $hip, $hg
"; + + // check if no group is on + if($nogroup && $hg == "") { + //echo "Set doing true on nogroup
"; + $dohost = true; } - } - - foreach($groups as $key=>$val) { - $grpname = $val["category"]; - if(isset($_REQUEST["$grpname-selectgroup"])) { - echo "Select group, $grpname true
"; + + // check if host was in a group selected + if($group_to_do !== null) foreach($group_to_do as $dothese) { + if($hg == $dothese) $dohost = true; + } + + // directly selected hosts + if(isset($_REQUEST["$thname-selecthost"])) { + //echo "add host $hname
"; + $dohost = true; + } + + // now do the op + if($dohost) { + if($operation == "move") { + $this->config->delData("hosts", "$hname", "$hip", "$hg"); + $this->config->addData("hosts", "$hname", "$hip", "$groupop"); + } + if($operation == "delete") { + $this->config->delData("hosts", "$hname", "$hip", "$hg"); + } } } + /*echo "total to do:
";
+		print_r($hosts_to_do);
+		print_r($_REQUEST);
+		echo "
";*/ + + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + header("Location: $BASE_URL/hosts"); + + } function deleteGroup($url) @@ -109,37 +158,19 @@ class GLCASHosts { } // we just assume class c atm - $ips_v = explode(".", $iprange); - - $ips = $ips_v[0].".".$ips_v[1].".".$ips_v[2]; - - for($i = 1; $i < 32; $i++) { - $hostname = ""; - $ips_me = "$ips.$i"; - echo "Scanning $ips_me
"; - error_log("Scanning $ips_me
"); - flush(); - $hostname = gethostbyaddr($ips_me); - if($hostname != $ips_me) { - echo "Found host on $ips_me as $hostname
"; - error_log("Found host on $ips_me as $hostname"); - flush(); - $hosts = $this->config->getData("hosts"); - $exists = false; - foreach($hosts as $key => $val) { - if($val["category"] == $hostname && $val["name"] == $ips_me) { - echo "Host in db already
"; - $exists = true; - flush(); - } - - } - if(!$exists) $this->config->addData("hosts", "$hostname", "$ips_me", "$hostgroup"); - - - } + error_log("background scanner, start"); + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + if(file_exists("$WEB_ROOT_FS/../bin/scanhelper.php")) { + $scall = "/usr/bin/php $WEB_ROOT_FS/../bin/scanhelper.php '$iprange' '$hostgroup' > /tmp/scanlog 2>&1 &"; + system($scall); + } else { + error_log("cant find download helper... dieing"); } - echo "Finished"; + + global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL; + header("Location: $BASE_URL/hosts"); + + } function deleteHost($url) @@ -215,9 +246,10 @@ class GLCASHosts { echo "
"; echo "Selected hosts operation: "; echo "Group HostIPHost GroupLast SeenControl"; - foreach($hosts as $key => $val) { + if($hosts != false) foreach($hosts as $key => $val) { $hname = $val["category"]; $hip = $val["name"]; $hg = $val["val"]; -- 1.7.0.4