From 351295ecba0680ebc0fbaa0a14facfb5592a0110 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 6 Dec 2021 13:48:52 +0100 Subject: [PATCH] interfaces: configure_interface_hardware() can take previous details --- src/etc/inc/interfaces.inc | 4 ++-- src/etc/inc/interfaces.lib.inc | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 83645ddf9..4f0637f60 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2439,9 +2439,9 @@ function interface_configure($verbose = false, $interface = 'wan', $reload = fal } /* apply interface hardware settings (tso, lro, ..) */ - /* XXX pass down $ifconfig_details */ /* XXX maybe spoofmac, media and promisc can live here too? */ - configure_interface_hardware($realhwif); + /* XXX a lagg or vlan or bridge could be resolved inside this function */ + configure_interface_hardware($realhwif, $ifconfig_details); switch ($wancfg['ipaddr']) { case 'dhcp': diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index edb376e0f..8d1a64097 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -414,7 +414,7 @@ function legacy_interface_details($intf) * configure interface hardware settings * @param string $ifs interface name */ -function configure_interface_hardware($ifs) +function configure_interface_hardware($ifs, $intf_details = null) { global $config; @@ -425,9 +425,13 @@ function configure_interface_hardware($ifs) return; } - $intf_details = legacy_interface_details($ifs); + if ($intf_details !== null) { + $intf_details = $intf_details[$ifs]; + } else { + $intf_details = legacy_interface_details($ifs); + } - // interface overwrites + /* interface overwrites */ foreach ($config['interfaces'] as $iface => $ifconf) { if (!empty($ifconf['if']) && $ifconf['if'] == $ifs) { if (!empty($ifconf['hw_settings_overwrite'])) {