From 85918cc4e0190b237bfbf0c52480c120aef58c86 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Sat, 15 Aug 2026 12:48:08 +1000 Subject: [PATCH] PLG:ADGUARDIMP add static_leases #1746 #1742 --- .../plugins/adguard_import/adguard_import.py | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/server/plugins/adguard_import/adguard_import.py b/server/plugins/adguard_import/adguard_import.py index 46f4610d..48cf6dad 100644 --- a/server/plugins/adguard_import/adguard_import.py +++ b/server/plugins/adguard_import/adguard_import.py @@ -86,7 +86,7 @@ def main(): raw_clients = clients_json.get("auto_clients", []) or [] # ------------------------------------------- - # Fetch DHCP leases if DHCP enabled + # Fetch DHCP leases & static reservations # ------------------------------------------- dhcp_json = ag_request( "/control/dhcp/status", @@ -94,17 +94,29 @@ def main(): ) dhcp_leases = [] - if dhcp_json and dhcp_json.get("enabled"): - dhcp_leases = dhcp_json.get("leases", []) + static_leases = [] + + if dhcp_json: + dhcp_leases = dhcp_json.get("leases", []) or [] + static_leases = dhcp_json.get("static_leases", []) or [] - # Build MAC lookup table for DHCP + # Build MAC lookup table for DHCP (combining dynamic and static leases) dhcp_mac_map = {} + + # Process dynamic leases first for lease in dhcp_leases: ip = lease.get("ip") mac = lease.get("mac") if ip and mac: dhcp_mac_map[ip] = mac.upper() + # Process static leases (overriding or adding to the map) + for lease in static_leases: + ip = lease.get("ip") + mac = lease.get("mac") + if ip and mac: + dhcp_mac_map[ip] = mac.upper() + # ------------------------------------------- # Process devices # ------------------------------------------- @@ -155,4 +167,4 @@ def main(): if __name__ == "__main__": - main() + main() \ No newline at end of file