diff --git a/src/etc/inc/interfaces.lib.inc b/src/etc/inc/interfaces.lib.inc index 330b6bbe6..7ddc205c7 100644 --- a/src/etc/inc/interfaces.lib.inc +++ b/src/etc/inc/interfaces.lib.inc @@ -232,6 +232,7 @@ function legacy_interfaces_details($intf = null) $result[$current_interface]["macaddr"] = "00:00:00:00:00:00"; $result[$current_interface]["ipv4"] = []; $result[$current_interface]["ipv6"] = []; + $result[$current_interface]["supported_media"] = []; if (preg_match("/ mtu ([0-9]*).*$/", $line, $matches)) { $result[$current_interface]["mtu"] = $matches[1]; } @@ -323,6 +324,8 @@ function legacy_interfaces_details($intf = null) $result[$current_interface]['media'] = $matches[1]; } $result[$current_interface]['media_raw'] = substr(trim($line), 7); + } elseif (preg_match("/media (.*)/", $line, $matches)) { + $result[$current_interface]["supported_media"][] = str_replace(" mediaopt ", " ", trim($matches[1])); } elseif (preg_match("/status: (.*)$/", $line, $matches)) { $result[$current_interface]['status'] = $matches[1]; } elseif (preg_match("/channel (\S*)/", $line, $matches)) { diff --git a/src/www/interfaces.php b/src/www/interfaces.php index c4cac9de8..198c3f5c9 100644 --- a/src/www/interfaces.php +++ b/src/www/interfaces.php @@ -1390,21 +1390,7 @@ if (isset($a_interfaces[$if]['wireless'])) { } // Find all possible media options for the interface -$mediaopts_list = array(); -$optlist_intf = get_parent_interface($pconfig['if']); -if (count($optlist_intf) > 0) { - exec("/sbin/ifconfig -m {$optlist_intf[0]} | grep \"media \"", $mediaopts); - foreach ($mediaopts as $mediaopt){ - preg_match("/media (.*)/", $mediaopt, $matches); - if (preg_match("/(.*) mediaopt (.*)/", $matches[1], $matches1)){ - // there is media + mediaopt like "media 1000baseT mediaopt full-duplex" - array_push($mediaopts_list, $matches1[1] . " " . $matches1[2]); - } else { - // there is only media like "media 1000baseT" - array_push($mediaopts_list, $matches[1]); - } - } -} +$mediaopts_list = legacy_interface_details($pconfig['if'])['supported_media']; include("head.inc"); ?> @@ -1907,7 +1893,7 @@ include("head.inc"); 0):?> + if (count($mediaopts_list) > 1):?> @@ -1957,6 +1943,8 @@ include("head.inc"); + 1):?>
@@ -2029,6 +2017,8 @@ include("head.inc");
+