From 791e97b746a5e00318006d073ab82c6e2fcb7226 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Tue, 29 Aug 2023 17:56:40 +0100 Subject: [PATCH] #1099 missing join to device_port when searching for device using mac address --- lib/App/Netdisco/DB/ResultSet/Device.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/App/Netdisco/DB/ResultSet/Device.pm b/lib/App/Netdisco/DB/ResultSet/Device.pm index f3638ea8..cd7e1779 100644 --- a/lib/App/Netdisco/DB/ResultSet/Device.pm +++ b/lib/App/Netdisco/DB/ResultSet/Device.pm @@ -294,6 +294,11 @@ sub search_by_field { and (($mac->as_ieee eq '00:00:00:00:00:00') or ($mac->as_ieee !~ m/$RE{net}{MAC}/))); + my @joins = ( + ($mac ? qw/ports/ : ()), + (($p->{dns} or $p->{ip}) ? qw/device_ips/ : ()), + ); + return $rs ->search_rs({}, $attrs) ->search({ @@ -337,8 +342,8 @@ sub search_by_field { }, { order_by => [qw/ me.dns me.ip /], - (($p->{dns} or $p->{ip}) ? ( - join => [qw/device_ips ports/], + ((scalar @joins) ? ( + join => \@joins, distinct => 1, ) : ()), }