From a0e43d9fb99f65c0f6c9357d9fbaccab36deec5a Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 11 Jan 2017 12:19:20 +0100 Subject: [statistics/locations] Update/set subnetlocationid field in DB if the DB has been updated --- modules-available/locations/page.inc.php | 33 ++------------------------------ 1 file changed, 2 insertions(+), 31 deletions(-) (limited to 'modules-available/locations/page.inc.php') diff --git a/modules-available/locations/page.inc.php b/modules-available/locations/page.inc.php index 1bb3026a..20af7b63 100644 --- a/modules-available/locations/page.inc.php +++ b/modules-available/locations/page.inc.php @@ -26,35 +26,6 @@ class Page_Locations extends Page } } - private function updateAutoLocationId() - { - if (Module::get('statistics') === false) - return; // Nothing to do - $res = Database::simpleQuery("SELECT machineuuid, clientip FROM machine"); - $updates = array(); - $nulls = array(); - while ($row = $res->fetch(PDO::FETCH_ASSOC)) { - $loc = Location::mapIpToLocation($row['clientip']); - if ($loc === false) { - $nulls[] = $row['machineuuid']; - } else { - if (!isset($updates[$loc])) { - $updates[$loc] = array(); - } - $updates[$loc][] = $row['machineuuid']; - } - } - if (!empty($nulls)) { - $qs = '?' . str_repeat(',?', count($nulls) - 1); - Database::exec("UPDATE machine SET subnetlocationid = NULL WHERE machineuuid IN ($qs)", $nulls); - } - foreach ($updates as $lid => $machines) { - $qs = '?' . str_repeat(',?', count($machines) - 1); - $lid = (int)$lid; - Database::exec("UPDATE machine SET subnetlocationid = $lid WHERE machineuuid IN ($qs)", $machines); - } - } - private function updateSubnets() { $count = 0; @@ -84,7 +55,7 @@ class Page_Locations extends Page $count += $stmt->rowCount(); } } - $this->updateAutoLocationId(); + AutoLocation::rebuildAll(); Message::addSuccess('subnets-updated', $count); Util::redirect('?do=Locations'); } @@ -155,7 +126,7 @@ class Page_Locations extends Page $change |= $this->updateLocationData($location); if ($change) { // In case subnets or tree layout changed, recalc this - $this->updateAutoLocationId(); + AutoLocation::rebuildAll(); } Util::redirect('?do=Locations'); } -- cgit v1.2.3-55-g7522