From 509ca889c999f36127d64e2bfb763a453c267e15 Mon Sep 17 00:00:00 2001 From: Evgeny Yurchenko Date: Sat, 21 May 2011 15:35:35 +0000 Subject: Adding gui to choose media options for interfaces. --- usr/local/www/interfaces.php | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'usr/local/www') diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index ead78cc..f7c80f8 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -711,6 +711,15 @@ if ($_POST['apply']) { } else { $wancfg['mss'] = $_POST['mss']; } + if (empty($_POST['mediaopt'])) { + unset($wancfg['media']); + unset($wancfg['mediaopt']); + } else { + $mediaopts = explode(' ', $_POST['mediaopt']); + if ($mediaopts[0] != ''){ $wancfg['media'] = $mediaopts[0]; } + if ($mediaopts[1] != ''){ $wancfg['mediaopt'] = $mediaopts[1]; } + else { unset($wancfg['mediaopt']); } + } if (isset($wancfg['wireless'])) { handle_wireless_post(); } @@ -897,6 +906,21 @@ function check_wireless_mode() { } } +// Find all possible media options for the interface +$mediaopts_list = array(); +$intrealname = $config['interfaces'][$if]['if']; +exec("/sbin/ifconfig -m $intrealname | 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]); + } +} + $pgtitle = array(gettext("Interfaces"), $pconfig['descr']); $statusurl = "status_interfaces.php"; @@ -1153,6 +1177,26 @@ $types = array("none" => gettext("None"), "static" => gettext("Static"), "dhcp" "header size) will be in effect."); ?> + 0){ + $mediaopt_from_config = $config['interfaces'][$if]['media'] . ' ' . $config['interfaces'][$if]['mediaopt']; + echo ""; + echo '' . gettext("Speed and duplex") . ''; + echo ''; + echo '
'; + echo gettext("Here you can explicitely set up speed and duplex mode for the interface."); + echo ''; + echo ''; + } + ?> -- cgit v1.1 From 6e2a15e677fa0558ba0c9b1700be38f4065a76f6 Mon Sep 17 00:00:00 2001 From: Evgeny Yurchenko Date: Fri, 27 May 2011 15:21:25 +0000 Subject: Hiding mediaopt under Advanced button --- usr/local/www/interfaces.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'usr/local/www') diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index f7c80f8..9992830 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -1183,6 +1183,14 @@ $types = array("none" => gettext("None"), "static" => gettext("Static"), "dhcp" echo ""; echo '' . gettext("Speed and duplex") . ''; echo ''; + echo '"; + echo '
"; + else echo '>'; echo '
'; echo gettext("Here you can explicitely set up speed and duplex mode for the interface."); + echo '
'; echo ''; echo ''; } @@ -2201,6 +2210,11 @@ $types = array("none" => gettext("None"), "static" => gettext("Static"), "dhcp" report_failure(); } } + function show_advanced_media() { + document.getElementById("showadvmediabox").innerHTML=''; + aodiv = document.getElementById('showmediaadv'); + aodiv.style.display = "block"; + }