From b52de577b5f72fd102bf00a29756103c37963728 Mon Sep 17 00:00:00 2001
From: Daniel <git@myrandor.com>
Date: Thu, 16 Mar 2023 15:27:41 -0400
Subject: [PATCH] Fix saving the mac address

---
 app/subnets/scan/subnet-scan-execute-update-snmp-arp.php | 2 +-
 functions/classes/class.Scan.php                         | 8 ++++++--
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/app/subnets/scan/subnet-scan-execute-update-snmp-arp.php b/app/subnets/scan/subnet-scan-execute-update-snmp-arp.php
index a22a8af1..6f958929 100644
--- a/app/subnets/scan/subnet-scan-execute-update-snmp-arp.php
+++ b/app/subnets/scan/subnet-scan-execute-update-snmp-arp.php
@@ -72,7 +72,7 @@ if (sizeof($all_subnet_hosts)>0) {
                            $result[$Subnets->transform_address($r['ip'], "decimal")]['code'] = 0;
                            $result[$Subnets->transform_address($r['ip'], "decimal")]['status'] = "Online";
                            // update alive time and mac address
-                           @$Scan->ping_update_lastseen($result[$Subnets->transform_address($r['ip'], "decimal")]['id'], $r['mac']);
+                           @$Scan->ping_update_lastseen($result[$Subnets->transform_address($r['ip'], "decimal")]['id'], null, $r['mac']);
                        }
                    }
                }
diff --git a/functions/classes/class.Scan.php b/functions/classes/class.Scan.php
index aecf0263..0f1e92dd 100644
--- a/functions/classes/class.Scan.php
+++ b/functions/classes/class.Scan.php
@@ -587,11 +587,15 @@ class Scan extends Common_functions {
 	 * @param datetime $datetime
 	 * @return void
 	 */
-	public function ping_update_lastseen ($id, $mac = null, $datetime = null) {
+	public function ping_update_lastseen ($id, $datetime = null, $mac = null) {
     	# set datetime
     	$datetime = is_null($datetime) ? date("Y-m-d H:i:s") : $datetime;
 		# execute
-		try { $this->Database->updateObject("ipaddresses", array("id"=>$id, "mac"=>$mac, "lastSeen"=>$datetime), "id"); }
+		$update_ipaddress = array("id"=>$id, "lastSeen"=>$datetime);
+		if (!is_null($mac)) {
+			$update_ipaddress["mac"] = $mac;
+		}
+		try { $this->Database->updateObject("ipaddresses", $update_ipaddress, "id"); }
 		catch (Exception $e) {
 			!$this->debugging ? : $this->Result->show("danger", $e->getMessage(), false);
 			# log
-- 
GitLab